CS 338: Graphical User Interfaces
Midterm Exam Study Guide
Summary
The midterm exam will be 1 hour 20 minutes long and will cover the entire first
half of the course. The questions will be a mixture of short answer and long answer.
In some parts of the exam, you will be asked to write Java/Swing code to implement
parts of an interface (e.g., lay out an interface, handle events, etc.); your
code does not have to be precise enough to compile, but must be as close to real
code as possible and should capture the most important aspects taught in the course
(e.g., correct layout managers, correct use of classes and interfaces, etc.).
For a flavor of the exam questions, please see these
sample
questions and
sample solutions.
Covered Material
The midterm exam will cover all the lecture and assignment material from the first
half of the course. This includes the following topics:
- Introduction to GUIs
- problems in GUI design and user understanding
- user population and background knowledge
- design vs. implementation costs
- multidisciplinary side of HCI
- challenges of GUI implementation
- What are people and machines good at?
- creating personas
- implementation models, mental models
- Java and Swing
- program compilation and interpretation
- basics of Java
- classes and inheritance
- interfaces
- Drawing
- Redrawing
- Clipping
- Stroke and Pixel models, Aliasing
- Paths, regions, text, fonts
- Canvas / Graphics Object
- Coordinate systems
- Color models
- Architecture
- model-view-controller architecture
- Gulf of Evaluation
- Gulf of Execution
- Modeling Gulf
- Layout
- problems with absolute positioning
- layout managers: BorderLayout, BoxLayout, GridLayout, FlowLayout
- layout extras: rigid boxes, glue
- Event Handling
- button event handling: ActionEvent, ActionListener
- key event handling: KeyEvent, KeyListener
- adapters vs. interfaces
- dispatching events
- Components
- buttons, check boxes, radio buttons, menus, toolbars: how to create
and handle events
- lists, tables, trees: basics of model vs. view (no need to memorize
methods, just concepts)
- other components: no code, just concepts
- why prototype?
- fidelity: high vs. low
- low-fidelity methods: paper sketches, storyboards, computer-based, Wizard of Oz
- conceptual, semantic, syntactic, lexical models of user interface