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

Greg DeArment

CoWeb Assignment 3:

Compare and contrast heuristic evaluation and cognitive walkthrough.
Question: Inputs for Heuristic? Need evaluation team, training on prototype and a diagram of the user interface?
Heuristic evaluation:
Cognitive Walkthrough


o They use inheritance more heavily
o They are often edited on the spot to meet specific needs.
o SUnit – provides a structure and methods to test the functionality of objects you make.
o Morphic – Provides a base set of classes that can be extended or inherited from to create GUI objects for User interfaces.
o They have to been easy to learn how to use. If they are not easy to learn, it would not make since for groups to spend lots of time to learn how to use a framework, when they could spend the same amount of time developing their own code that they would know how to use. This means the framework must be well documents and have a short learning curve. This takes time, and time is expensive.
o They must be abstract enough to meet a wide range of needs, yet concrete enough to provide functionality for common needs. They need to be easy to add on to so that the users can add functionality that is not included in the framework. This means they must be easy to maintain.

History of Object-Oriented Programming
Kent Beck – creator of Extreme programming, made CRC cards popular. Wrote JUnit testing with Erich Gamma. Also has written on design patterns.
Ward Cunningham – Pioneer of patterns and extreme programming; also invented the first Wiki.
Alan Kay – One of the creators of squeak; also co-developed the $100 laptop.
Ivan Sutherland – inventor of the Sketchpad, the first computer graphics program.

CoWeb Assignment 2:
I found the debugger to be a very useful tool when trying to solve problems while coding.

A picture of Squeak's debugger is below.
External Image

One of the most useful things about the debugger is the view of the stack, which is in the top part of the Morph. It is lots of help when trying to trace through your code. You can not only see your code, but you can make changes to it, save it and see the effects in real time.

Putting self halt.'s in your code (as shown in the picture above), will cause the debugger to pop up. This is useful when you want to step through your code one command at a time. To do this, you press either "into", "over", or "through" on the button list in the middle of the debugger. These allow you to either step over each command, or into a command to see each step of that method, depending on what you want to decode.

Self halt's also allow you check the value of variables by highlighting the object you want to know about, and chosing to inspect or explore. This helps when you are checking to make sure the value of a variable changes properly, or to make sure one is set to what it should be. These objects are also listed on the bottom sections of the morph. Clicking one, will display its value in the window to the right of the selection morph.

Once you are done debugging, pressing the proceed or restart will allow you to continue.

 | data onlyPositiveNumbers | 

"Declares temporary variables called data and onlyPositiveNumbers.
both variables are set to nil, since they have not been initialized"

data := OrderedCollection withAll: #(1 2 3 -4 -5 'error' 6 -7 999 2).  

"sets data equal to an ordered Collection with the values in the ( )'s
so data is an OrderedCollection that contains 1,2,3,-4,-5,error(as a string), 6, -7, 999, and 2"

onlyPositiveNumbers := [:i | (i isKindOf: Number) and: [i positive]]. 

"This sets onlyPositiveNumbers to a block of code. I describe what the block does below"

data := data select: onlyPositiveNumbers.  

"This sets data equal to what the onlyPositiveNumbers block of code returns.
This block of code will itereate through each item in data, and return only those
items that are both a Number and Positive. So data will equal 1,2,3,6,999,2"

data := data copyUpTo: 999. "not including" 

"This sets data equal to a copy of data up to the 999 entry.
So data will be set to 1,2,3,6 since 999 is not included"

Transcript show: data average 

"This will show the average of the numbers in data. This will equal 13/4"

Four Useful features of Squeak:
The System Browser:
This allows you to see every class in squeak, along with each of its methods, instance variables, and hierarchial structure.
This is especially useful when you are trying to figure out what method to call for a class that already exists in squeak
such as the Set. Since set and OrderedCollections have difference accessing methods, if you get confused, you can look up
the class and its hierarchy and find which method is the correct one to use.

The Debugger:
The debugger is a really useful tool because it allows you to see what is happening in your code. You can step your way
through each line of code, make changes if you need to without having to restart the program. It also allows you to inspect
any object to see what it currently is set to, or has.

The Halo's:
The halo's allow you to do a number of things to any object on the screen by clicking the middle button. They allow you an
easy way to inspect an object to see what it is doing, or to change it. It allows you to unattatch submorphs from their parents,
and change any attributes they have.
The Workspace:
The workspace allows you to execute code segments on the fly. You can recreate new objects, or adjust current objects, like
clearing the transcript or opening a new morph.

Links to this Page