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:

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.
  1. GUI applications can benefit greatly from attention to visual interface design. Describe visual design principles that apply to the following three topics.

  2. 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)?

  3. 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?

  4. 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?

  5. 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.

  6. 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.

  7. 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#.

  8. 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.

  9. 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?

  10. 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,

  11. 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.

  12. 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.

  13. 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.