CS 585 Final Study Guide
Half the final exam's total points will be multiple-choice,
true-false questions. These questions will be primarily definitional.
The remaining questions will be essays. You will have a choice on
essay questions. For example you may have to choose 2 or 3 questions.
Here are some review questions generated from past final exams,
past study guides, and ideas I've been thinking about wrt to this
exam. This information is provide as a study aid -- it is not a
statement that any of these questions will (or will not) be on future
exams. Nor is it a statement that only these type of questions will
be asked. Look over the study guide for the midterm and questions on
the midterm.
Example definitional terms:
- Swing/Java terms: interface, event, listener, adapter, UI
component, update, paintComponent, resize.
- WindowsForms/C# terms: property, delegate, Form, namespace.
- Design terms: regulation, reduction, mode error, description
error, contrast, optical alignment.
Essay questions. These review questions may have a larger scope than
question I would ask on the exam. Additionally, True / False,
multiple choice questions maybe generated from concepts in these
questions.
- GUI applications can benefit greatly from attention to visual interface
design. Describe visual design principles that apply to the following three
topics.
- GUI apps use images (bitmaps) for cursors, icons, labels,
button labels and menu item labels. Describe the best two visual
interface guidelines for image (bitmap) usage. Describe how to
implement these guidelines in both Swing/Java and WindowsForms/C#.
- Layout of the application's main window and supporting dialogs is
very important. Present the two best visual interface guidelines that
apply to effective layout design. Describe how to implement these
guidelines in both Swing/Java and WindowsForms/C#.
- Describe how a designer should choose between implementing an
application's functionality in a menu, dialog, or user interface
component visible on the main window (toolbar, button pallet,
slider/scale, etc.). Describe how to implement these guidelines in
both Swing/Java and WindowsForms/C#.
- Java applications use layout managers. What GUI problems do
layout managers solve? Describe the 3 most useful Java layout
managers in GUI design and draw a representative picture of how each
works. What in WindowsForms/C# is equivalent to Java layout managers?
How does an WindowsForms/C# developer solve the problems Java layout
managers solve (use your 3 examples)?
- What is meant by event driven, or event based design, in GUI
applications? Describe and compare how events are associated with
user interface components in Java and WindowsForms/C#. Both Java and
WindowsForms/C# are Object Oriented. What benefit does an Object
Oriented GUI library provide when responding to events?
- You have learned and developed some basic GUI applications
using two development APIs (Swing/Java and WindowsForms/C#). If you
were given the opportunity to propose one change or added feature
(functionality) to either GUI API development teams, what would it be
for each? You can suggest the same addition to both teams if it is
appropriate. What shortcoming of the existing API motivates your
request and what benefit would developers obtain if your proposal was
implemented?
- Top 10 lists are very popular, thanks to Dave Letterman. Time
is limited here, so state your top 5 visual interface design
guidelines in order. For each, briefly describe the problems solved /
addressed and draw (or describe) an example that suffers because it
does not follow the guideline.
- Menus and buttons are frequent and popular GUI controls. Please
describe and contrast the user interface domain that is best suited to
menus instead of buttons with the domain best suited for buttons instead
of menus. Furthermore, within each domain (buttons, menus) please specify
where different buttons and/or menus are appropriate.
- What are dialogs? Describe the types and uses of dialogs. What
are appropriate uses and inappropriate uses of dialogs? Contrast how
dialogs are designed and implemented in Swing/Java and WindowsForms/C#.
- With event driven GUI programs it is useful during development
and for subsequent maintenance to diagram the window/component
hierarchy (with layout manager specification) and the event/callback
sequences (e.g. state transition diagrams). State why both are useful
and either by itself in not sufficient.
- Please describe and contrast how custom graphics are written
in Java Swing and WindowsForms/C#. Be sure to describe the concept of
the device contexts (Graphics). For WindowsForms/C#, what are the
differences between a pen and brush in drawing?
- We discussed several graphics / art principles that have relevance
to GUI design. Define and describe with examples the use of
reduction, regulation, visual structure, activity, scale, contrast,
proportion,
- Users will make errors with GUI applications. How do GUI APIs
reduce human error and what type of error do they reduce? What type
of errors can GUI design reduce; give examples.
- A computer science friend has asked you to briefly describe
what a prototypical GUI window based application looks like and what
one has to learn to develop such applications. Write and draw a
picture to illustrate your answer to your friend's question on one
page. GUI applications represent a conversation of events and requests
between the user and the application. Be sure to discuss this
metaphor in your answer.
- Write a brief, introductory, description of the anatomy of a
prototypical GUI windows application (from the source design / code
perspective). What steps do all window based applications share? Give
examples in two GUI APIs (Java JDK, WindowsForms/C#). What is the
role of layered class libraries in these APIs? Draw a picture to
illustrate your prototypical GUI window application's anatomy.