Lab 15

Design Your Midterm

In this lab, you will design two midterm questions, one substantial question, similar to exam 1 (here and here) and, if you have the time, one QuickieQuiz-style question. The purpose of this lab is for your team to reflect on the learning goals of the course, and to practice designing questions. (This is a useful skill when you need to hire people and design interview questions.)

If you are lucky, your question may appear on the midterm. Feel free to browse through Track+ prior to the midterm to see what your fellow students proposed. Of course, when you do so, you should use your own best judgment to see whether the proposed answers are in fact correct.

Here are the learning goals of the CS160 course.

  1. Demonstrate an understanding of the challenges of software engineering and the roles of process and methodologies
  2. Reason about people and team management issues
  3. Write functional specifications and use cases at a level of detail that is sufficient for carrying out software design
  4. Reason about architectural and design choices
  5. Develop and document a software design at a level of detail that is sufficient for implementation
  6. Produce and comprehend UML package, class, sequence diagrams
  7. Formulate and execute a test plan for a software project
  8. Carry out code reviews in a team setting
  9. Produce a schedule for a software project
  10. Track issues and measure progress on a weekly basis
  11. Automate the build process for a software project
  12. Use revision control software

Your team's task is to develop two questions (and your proposed answers) for the following goal:

Team Goal
Athens 1
Berlin 2
London 4
Stockholm 6
Paris 7
Rome 8
Vienna 10
Warsaw 11
Helsinki 12

Here is the reading list for the exam:

  1. Hamill, Unit Test Frameworks, Ch. 1, 2, 4
  2. Fowler, Refactoring, Ch. 3, 6, 11
  3. Kruchten, Ch. 7
  4. Beck, Extreme Programming, Ch. 4 - 7
  5. Spinellis, Code Reading, Ch. 7
  6. Homeworks 3 - 4
  7. Labs 8 - 13

One of you writes up a Track+ issue summarizing your results. (Title: Lab 15 / team name).