Lecture Date: Thursday, December 5

General Info

Each of the six quizzes in the course is expected to take around 30 minutes to complete. On each quiz day, there will be two quizzes based on whatever the latest two major subject areas of the class were:

  • Quiz Day 1: Software Process and Requirements
  • Quiz Day 2: Architecture & Design and Verification & Validation
  • Quiz Day 3: Maintenance & Security and Professional Issues

All quizzes are bound by the Honor System as any other assessment at UVA. You are forbidden to speak of specifics of any assessment with other students who have not yet taken the assessment.

Each quiz is worth 10000 XP. Each question will be graded wholistically. That is, each question can either earn full XP, no XP, or a single partial level of XP. For example, a quiz with 5 questions might assign 2000 XP to each question, and each question could earn 2000 XP, 1000 XP, or 0 XP. (There are some exceptions for questions with sub questions.) Students will have the opportunity to earn back at least a portion of missed XP during the Final Exam period.

Maintenance & Security Knowledge Assessment

  • Expect to answer questions regarding:
    • Design Patterns - You don't have to have them memorized, but you may be given one to evaluate, and you definitely need to know why they are important.
    • Maintenance - Why is it the most costly of the phases? What are the different types of maintenance - perfective, adaptive, corrective? Why would developers want to do continuous refactoring, identifying code smells? What skills does a developer need to have to be good at maintenance?
    • Security - Know in general what can be done during each phase of development to engineer more secure software.

Professional Issues Knowledge Assessment

  • Expect to answer questions regarding:
    • Basic questions regarding software licensing, particularly around GPL, MIT, and BSD.
    • What is a EULA and how are they used?
    • Given a particular ethics problem, what would you do? (you do not need to have the code memorized, but you should know the general overall concept of what the code is asking you to do - we will provide relevant parts of the code as needed)
    • Why do you think a developer might not follow the code of ethics?