Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
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?
- Has a set of people evaluate a project and determine its compliance with recognized usability principles.
- Get a set of people for evaluating. Train them on the prototype they are going to use.
- Let the evaluators test the prototype independently looking for usability bugs based on a set of heuristics.
- Come together after everyone is done. Discuss the bugs found, and prioritize them. Give the results to the creators.
- Evaluates a design for ease of learning.
- Breaks down prototype into action sequences.
- Walk through each sequence of actions, and create a believability story, based on the 4 questions.
- Heuristic has a group of people evaluating a prototype based on established norms, while Cognitive Walkthrough has 1 person evaluating whether the prototype is easy to learn and if the expected actions get you the expected results.
o They use inheritance more heavily
- Why they are useful: they make developing new software easier and cheaper because you dont need to develop new technology. You can reuse the design and the code.
- Difference between a framework and a class library:
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.
- Two Frameworks used in Squeak:
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.
- Frameworks are difficult to develop because:
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.
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 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 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 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