Final Exam
Study guide for the Final Exam
Where and When
- Where: Congdon Hall 2055
- When: Thursday, December 12, 3pm-6pm
- The exam is not designed to be 3 hours long, but you will have the entire 3 hours at your disposal.
- Other
- Please eat a snack before the exam. Eating in the lab is not permitted.
- Bring a water bottle.
- You may listen to music using headphones/earbuds at a volume that does not disturb others.
Exam Format and Rules
- A mix of multiple choice, fill-in-the-blank, and long answer questions.
- You will not be programming in Visual Studio Code, but you may be asked to write or edit code snippets by hand.
- You may use your own hand-written notes, class worksheets (but not Git or CLI cheatsheets), and scrap paper. No other resources are permitted.
- Honor Code violations on the final exam result in a course grade of F.
- Failure to submit the final exam results in a course grade of F.
Content
- Describing the phases of the Software Lifecycle and how they are organized into Software Process Models.
- Describing Operating Systems concepts.
- Writing a good Problem Statement when provided a high-level description of the program goals.
- Creating a control flow graph for a given function.
- Writing or analyzing unit tests for a given function, including:
assert
statements- computing line coverage by hand
- testing if exceptions are raised using
pytest
functions - Assignment 2 - Unit Testing
- Assignment 3, Part B and Part C
- Applying the six code-level design rules.
- Describing version control concepts and applying them to given scenarios:
- Creating a visual diagram like this one showing the state of Git repos (a) after running a set of Git commands, or (b) based on
git log
output. - Entering the appropriate
git
command or sequence of commands for common scenarios, such as creating a new version, staging changes, creating a new branch, merging, and interacting with the remote repository. - Explaining the proper process of merging branches, including in the presence of merge conflicts.
- Resolving merge conflicts in a given block of code while preserving functionality.
- Creating a visual diagram like this one showing the state of Git repos (a) after running a set of Git commands, or (b) based on
Review the three quizzes: