Demos

The purpose of the demos is to allow you to demonstrate your program and its capabilities and to discuss how you designed, organized, and implemented your code. We will provide constructive criticism about how to improve your code, in terms of design, clarity, and style.

Procedure

Demos will last about 30 minutes. We will have your code with us to discuss and write notes. We will discuss your testing, organization, design, and implementation of the program. Our questions are meant to determine how well you understood the code and your understanding of object-oriented programming. We will discuss alternative solutions and what are the benefits and drawbacks of these solutions.

The demo is also your opportunity to demonstrate extra things that were not explictly part (your own personal touches) of the assignment or creative ways that you implemented the required functionality. You can also talk about something you had trouble implementing. We will try to talk you through how to implement it. You can earn partial credit if you can demonstrate that, with some help and time, you could implement the missing functionality.

We will have a gradesheet that we will use to take notes--about what your program does and does not do and how you explained what you did. After the demo, we will look through the paper submission and determine the final grade.

A Typical Demo

You will run your program and demonstrate how you tested your program. We will ask questions about what other things you tested and how you tested your program. (For example, did you test pieces of your code or only the system as a whole? Did you test your code outside of the user interface?) You can demonstrate any extra features of the program. If you had problems with a particular feature, we can talk about possible ways to implement it.

We will ask about how you designed your code. (Example questions: How did you decide which class performed which functionalities? How did you separate the classes? How did you design the interface between classes? Did you consider other designs? Could the code by written more simply/elegantly if you did XXX? What code changes would be required if you changed your class structure? What code changes would be required if the interface to another class changed? Could some data structure be its own class?)

Finally, we may talk to you about the code--what style improvements you should make and what was unclear or could be improved.