There are no required textbooks for this course. However, the following are quite good, and we recommend them. They may be helpful for reinforcing concepts, practice problems, and delving deeper into some topics than we may go into in class.
git will be your friend in this course and in the future.
We'll be using the following Slack workspace to simplify intra-team communication. Each team will have a private channel created once you select teams.
Whenever you make a commit to your codebase or break submission, you are required to answer the questions based on the relevant competitoin round. Copy each of the appropriate questions (shown in bold) and specify your respective answers in a bulleted list format.
To include the required long commit message in git, simply use the command git commit
, which will redirect you to a command-line text editor where you can enter your full message.
Commits should be atomic as much as possible. That is, they should be focused on adding a single feature or fixing a single bug. This can include changes to multiple files, but should be associated with the same overarching feature or fix.
If it is impossible to split the commit by function or fix, indicate all associated requirements. Err on the side of more commits or ask the instructors for clarification.
Break commit messages should be submitted each time a break is submitted.
A fix commit should be submitted for each vulnerability (this can cover multiple breaks if they all exploit the same vulnerability). The fix commit message can being submitted with an updated to the code to remedy the identified vulnerability or simply with a list of associated breaks. The latter option can be used if you are unable to fix the vulnerability.