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

Derek Kinney

Usability (2 Points)

Heuristic evaluation: the aggregation of evaluations done by a small set of judges using a set of predetermined characteristcs.

Cognitive walkthrough: uses exploration to evaluate ease of use through the four questions of:

Observing users: watching how–through direct or indirect means–a user interacts with the system. May often be augmented with think-aloud, post-hoc verbal protocol, critical incident logging, or structured interviews to get the most usefulness from it.

heuristic evaluationobserving users
requires no outside resourcesrequires bringing users in to test the system
offers point of view from developers onlyoffers perspective of those who will be using the system
extremely structured and objectivesubjective and open
useful for cheap, rigorous testingused for more esoteric testing of a system

Design Patterns (2 Points)

(Part A)


(Part B)

Brother, Phi Kappa Sigma.
Computational Media.

"There's no freedom to be found lying face up in the ground."

Tracing Code (1 point)
The following code solves the rainfall problem, which you may have seen in previous CS classes. For each line, describe what the Smalltalk code does. Be as specific as possible. In particular, what is data at the various points in the code?

| data onlyPositiveNumbers |
"creates two temporary variables named data and onlyPositiveNumbers"

data := OrderedCollection withAll: #(1 2 3 -4 -5 'error' 6 -7 999 2).
"puts an OrderedColledtion into data containing the given data"

onlyPositiveNumbers := [:i | (i isKindOf: Number) and: [i positive]].
"makes onlyPositiveNumbers a function that returns true if i is both a number and positive"

data := data select: onlyPositiveNumbers.
"runs onlyPositiveNumbers on data which removes -4, -5, 'error', and -7"

data := data copyUpTo: 999. "not including"
"copies data into itself leaving only values that are less than 999 (1 2 3 6 2)"

Transcript show: data average
"prints the average of all the values in data (4.8) to the transcript"

Language Features (1 point)
Squeak is perhaps the least well documented programming language you will ever use; however, Smalltalk and the Morphic GUI compensate for this by being pokable (easy to explore). There are many language features and tools for exploring Squeak. For four of these, name them, describe how you use them, and explain why they are useful.

How to use: Select a class category from the first pane. This will bring up the availible classes in the second. You can choose to create a new class or click on one of the method categories or availible methods. clicking on the method categories allows you to create a new method in the repsective category or view/edit one of the existing ones.
Why use it: This is the main avenue of writing code in Squeak, useful because all the classes and methods are displayed neatly categorised. You can also choose between class and instance variables with the click of a button. In addition to what is visible, right clicking each pane brings up a menu with a host of other functions such as finding, adding, renaming, and removing classes and methods.

Method Finder:
How to use: Type in the name (whole or partial) and it will tell you which classes implement that method.
Why use it: The method finder allows you to see what classes have a particular functionality. With this knowledge, you can see which classes will be most useful in particular situations or where you may need to add extra functionality that will prove beneficial to the situation.

How to use: Alt-click on any morph and click the wrench or highlight an object and click "inspect it" to bring up the inspector. From here you can see what the morph's variables are at any particular moment.
Why use it: In addition to inspecting variables to check if they contain desired values, you can also (using the lower pane of the inspector) send any message to the object and see how it will repsond.

How to use: Bring up the halo menu on any morph and click the eye icon. From here you can change the morph's variables and write scripts to control certain aspects of the morph.
Why use it: The viewer is extremely useful in prototyping GUI functionality is simple enough that it can be useful for introducing younger people to programming.

Links to this Page