Labs: There will be several lab assignments over the course of the semester. These assignments are designed to give you a chance to practice what you’ve learned and get feedback on your progress.
Quizzes: Your knowledge of the concepts covered in class will be evaluated via quizzes administered roughly once every 3 weeks. These quizzes are intended to make sure you’re not only learning the programming concepts from class, but also the theory and reasoning behind why operating systems are designed the way they are. Each quiz will take around 10-15 minutes to complete. While they are short, quizzes constitute a large percentage of your course grade, so be sure to prepare by reviewing course material.
These quizzes consist of two phases: individual and team, with a separate score for each. During the team phase of the quiz, you can discuss the questions with your teammates and come to a consensus on the answers. The individual and team portions of the quiz are turned in separately
Make-up quizzes are not given unless arranged at least one week in advance, but your lowest quiz score for the semester will be dropped.
Projects: The best way to learn is by putting theory into practice. This course features large projects that count for the majority of your grade. If you haven’t taken a 300-level course in the CS department yet, these projects tend to be much more involved and require extensive planning/implementation. Remember to start early, ask questions, and go to office hours if necessary.
Final Exam: This course does not have a final exam. Instead, there will be a cumulative final quiz that covers slightly more material than usual. Since the lowest quiz score is dropped, you may not need to take the final quiz if you did well on the other quizzes throughout the semester. See the Course Schedule for more information.
Grading Policy:
Do not cheat. Review the Honor Code, and if in doubt about whether or not something is cheating, ask the professor.
The course staff will run cheat detection software that includes past assignments.
“Collaboration” that involves sharing code/solutions is considered cheating.
If you cheat, you will get a 0 on the assignment or an F in the class.
Submit code via GitHub. Commit your changes frequently as you work on the assignments.
Grading will be carried out on the VMs we set up in class. If your code does not compile or run on your VM, you receive an automatic 0.