| CompSci 308 Spring 2025 |
Advanced Software Design and Implementation |
This exercise will not be explicitly graded, instead its goal is to ensure that you can participate in the course by verifying you
You will be using the most recent Long Term Support (LTS) version of Java in this course and we recommend using IntelliJ as your development environment since it has a wide variety of features to help you improve your program's design.
Videos
Completing this step is vital so everyone starts with the same software versions to remove a possible variable when debugging large programs across multiple people and OSes.
Note, we recommend using the command-line when interacting with GIT, at least for the first half of the course, to make sure you have a firm understanding of the foundational principles.
View → Tool Windows → Terminal, (this first time it would require creating a "dummy" project) git config --global user.name "YOUR NAME"
git config --global user.email NETID@duke.edu
Completing this step is vital so the Teaching Team can identify the code you write during the semester to better give you personalized feedback.
Shibboleth button to log in using your Duke NetIDssh-keygen -t rsa -C NETID@duke.edu -b 4096
coursework): Preferences → SSH Keys → Key Text Area)id_rsa, and press Add keyCompleting this step is vital to allow you to access the course Gitlab server (there is no password option).
Fork (the button is in the right upper corner) to create a version of the project in your own account with the same name (e.g., NetID/lab_bounce)lab_ or example_ repositories. A repository will be provided for you
for project_ or portfolio_ repositories git@coursework.cs.duke.edu:NetID/lab_bounce.git)Clone button on the right side of the page WORKSPACE_FOLDER can be any directory you want on your computer as long as there are no spaces anywhere in the path)cd WORKSPACE_FOLDER
git clone git@coursework.cs.duke.edu:NetID/lab_bounce.git
lab_bounce within your workspace folder that contains configuration information for GIT (e.g., a folder named .git — note that it starts with a period)ls -a lab_bounce
File → Open (or the Open button if the File menu is not available)lab_bounce, and press Opensrc → java → main → bounce to find the Java class MainRun Main.main()Completing these steps verifies your Java and IntelliJ installations are correct and working together.
Within Terminal, your lab_bounce folder should now have the configuration folders for both GIT (e.g., .git) and IntelliJ (e.g., .idea)
ls -a lab_bounce
README.md should already be open in Preview mode. Change it Edit and Preview mode by pressing the middle blue icon in the pane's upper right corner.git status
git add README.md
git commit -m "Included my name in the README"
git push -u origin main
Completing this step verifies you can correctly access the course Gitlab group to submit your work for the semester.
All projects will use Google's Java code format standards.
Set up IntelliJ to do this for you automatically:
PreferencesEditor → Code StyleScheme, click on the gear icon after the Combo Box with the tooltip Show Scheme ActionsImport Scheme → IntelliJ IDEA code style XMLOpenEnable EditorConfig support before clicking OK to close the dialog boxIntelliJ should now monitor your Code Formatting, but you can reformat code in any file to follow these conventions by selecting the menu Code → Reformat Code (especially before pushing it to the remote repository!).