When can I take the final?

Students can take the final during any one of three offerings:

  • Wednesday, May 2, 1:00PM-3:00PM in Rice 242
  • Thursday, May 3, 1:00PM-3:00PM in Rice 242
  • Thursday, May 10, 10:00AM-12:00PM in Rice 130 (Normal Exam Time)

Do I need to do anything to take the final at the normal time?

No. Just show up.

Do I ned to do anything to take the final at an earlier time?

YES. BEFORE APRIL 26, please sign up here: Exam Sign-Up Google Form

What should SDAC students do?

SDAC students can contact arrange a time to take the test with SDAC anytime between May 2 and May 10. If you prefer to take the test with a staff member present, we may be able to accommodate you in a separate space during one of the three exam times listed above. Contact Prof. Sherriff if you want to explore this option.

What will the test be like?

After considering multiple options, I decided that the best way to balance assessing student learning and being fair to all students, while also being respectful regarding other commitments (including the demo session) was to do the following:

  • Give a required final exam for 15% of the course grade, per the syllabus;
  • Offer multiple final exam sessions (including the normal exam session), some before and some after the demo;
  • Create an assessment that is more akin to an in-class test, rather than a full three-hour, cummulative exam.

Thus, the exam time period has been reduced to two hours from three hours. The test will be written to take one hour (same as an in-class test). The test will be minimally cummulative (i.e. there won't be any detailed questions on requirements engineering, but it's hard to have a software engineering test that doesn't talk about requirements at all...). In-depth questions will only be from the second half of the course. Topics will include:

  • System Architecture and Design
  • Modularity
  • Design Decomposition
  • Design Patterns
  • Security
  • Maintenance

Not on the test:

  • Professional Concerns & the Code of Ethics

Questions on the exam are going to be focused primarily on your ability to evaluate development methodology and design decisions. I will specifically avoid memorization-type questions. In other words:


  • Name the different levels of cohesion and coupling.
  • Name the five aspects of REST.
  • Name three design patterns and why they work the way they do.


  • Given a software development scenario, do an object-oriented decomposition with an explanation as to why you broke the system down the way you did.
  • Given a full description of three design patterns, identify which one applies to a given development scenario and why.
  • In your project, explain a major design decision that you made, relating it to architecture discussion had in class.

In other words, if you have been coming to class and following along with the material, you should not be spending any time doing memorization and/or cramming activities. It's going to be based on what we have been discussing and doing in class.

Expect questions about your project related to your development methodologies and design decisions.

The test consists of four "longer-answer" questions like the ones above, as I will expect detailed, thoughtful answers, and there will be supplementary material to read / reference.