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 key
Completing 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 Open
src → java → main → bounce
to find the Java class Main
Run 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:
Preferences
Editor → Code Style
Scheme
, click on the gear icon after the Combo Box with the tooltip Show Scheme Actions
Import Scheme → IntelliJ IDEA code style XML
Open
Enable 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!).