View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Summer 2006 Final Exam Review

For this CoWeb assignment, you will complete a final exam review. On your Who's Who page, answer one or more of the questions below. You will need to answer enough questions to get you to a total of 3 points. The TA will be grading for effort and the quality of the answers. You should be able to use your fellow classmates' answers to study for the midterm exam. Make sure that you clearly indicate which question(s) you are answering. Most of these questions are from previous exams (specifically, last semester's exam), so they are a good sample of the kind of questions that will be asked on the final exam.

Design Patterns (1 point)

Take one design pattern that we discussed in class and describe how it works. In your description, include a UML diagram of the pattern (these are fairly easy to find on the WWW).

Extreme Programming (1 point)

Garbage Collection (1 point)

Method Dispatch (1 point)

Explain the difference between method overloading (in statically-typed languages) and multiple dispatch? In your explanation, include example code to demonstrate the differences.

Closures (1 point)

What are closures? Why are they important to OO programming? Give an example of useful closure use in Smallalk.

History of OO (1 point)

Virtual Machines (1 point)

What is bytecode and why is it useful? Give an example of Smalltalk code and its translation into bytecode.

HCI (1 point)

Usability (1 point)

Don Norman provides a simple framework for explaining the interaction between people and the physical world. As part of that framework, he identifies two “gulfs”: the gulf of evaluation and the gulf of execution. Describe these and provide an example of each gulf in a situation of a user interacting with a computer application.

Programming (1 point)

Write a Squeak method that contracts a string to a certain size by inserting an ellipsis (…) in the middle of the string. So, contracting ‘I am the Walrus’ to a size of 11 equals ‘I am…lrus’ (4 beginning characters + 3 periods + 4 ending characters = 11 total characters). Your method should deal with special cases, such as when the string is short enough that it doesn’t need to be contracted. This code should not just function properly, but use good object-oriented style. To that end, be sure to identify the class in which the method is implemented and whether it is an instance or a class method.

Object-Oriented Language Design (1 point)

In this class, we introduced a variety of object-oriented languages (Smalltalk, C++, Objective-C, Java, C#, Ruby, Eiffel, CLOS) and their language features. For each of the parts below, explain how the two approaches differ. Then, from the languages mentioned above, give one example of each case.

Object-Oriented Programming (2 point)

In class, we introduced an object-oriented mantra: “Objects do the work. The work is done in instance methods in the appropriate class. Good objects have clear responsibilities and clear interfaces.” Explain the different parts of this mantra, including examples when appropriate.

UI Evaluation (2 point)

For each of the three UI evaluation techniques used in M5 (heuristic evaluation, cognitive walkthrough, and think aloud protocol), answer the following questions: What is the objective of the technique (for what usability reason is it best used)? What inputs are needed to execute the technique? How is it conducted?

Analysis and Design (3 point)

Design a Simon game. Simon has four large colored buttons: red, blue, green, and yellow. These buttons light up in a sequence, playing a unique tone for each button; the player must press the buttons in the same sequence in a timely manner. The sequence begins with a single button chosen randomly, and adds another randomly chosen button to the end of the sequence each time the player follows it successfully. The game ends when the player makes a mistake. The game features different levels of difficulty that are distinguished by the time allowed between button presses and the length of the sequence. (Part A) Using CRC Cards, do an object-oriented analysis of the Simon game. (Part B) Using UML, design the game based upon your analysis.

To help you study further, you may want to look at last semester's exam review: Spring 2006 Final Exam Review.

I (Lalit Kapoor) have put together some answers that everyone has contributed to for the Spring 2006 Final Exam Review. This is to make it easier to answer the questions instead of just looking around. hope it helps. Also if anyone wants to study together this weekend please send me an email to
Here it is: coweb 3.doc

Post questions to the newsgroup.

Links to this Page