CSE 331 User Interface Systems and Techniques (3)
Instructor:
Current Catalog Description
Principles and practice of creating effective human-computer interfaces; design and user evaluation of user interfaces; design and use of interface building tools. Programming projects using a variety of interface building tools to construct and evaluate interfaces. Prerequisite: CSE 109 or consent of the instructor.
Textbook
Olsen, Dan R., Developing User Interfaces, , San Francisco, CA, 1998. ISBN 1-55860-418-9, Morgan Kaufmann. Norman, Donald A., The Design of Everyday Things, 1988. ISBN 0-385-26774-6. Doubleday, New York, NY
References
Online manuals for Tcl/Tk, Java & Java Swing, MS Windows Win32 API.
Course Goals
Students completing this course will understand basic design principles and guidelines for good design of interactive systems. Students will understand how a computer system support interactive applications and support a consistent look and feel of interfaces for easier use and faster learning of how to use the applications. Students will learn, though experience, how tools at different levels of support provide for creating graphical user interfaces, from placing and arranging standard components, to programming complex component behaviors and creating application-specific interactive components and graphics.
Prerequisites by Topic
Fluency in writing code in C or C++
Medium scale software design and implementation
Major Topics Covered in the Course
Principles of good design of functional objects and interfaces
User-centered Design process
User Interface System Architecture
Drawing 2D Interfaces
Event Handling, Window Management
Model-View-Controller Software Architecture
Widget Toolkit Design
Layout Management
Input Dialog
Graphical Interaction Techniques
Inter-Application Communication
Laboratory projects (specify number of weeks on each)
There are three programming projects completed outside of class, each given over a two to four week period.
Estimate CSAB Category Content
CORE ADVANCED
Data Structures 0.5
Computer Organization and Architecture 0.5
Algorithms Software Design 1.5
Concepts of Programming Languages 0.5
Oral and Written Communications
Every student is required to submit at least __2__ written reports (not including exams, tests, quizzes, or commented programs) of typically __7 (for a group of 2-3 students) ___ pages and to make __0__ oral presentations of typically __0__ minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.
Social and Ethical Issues
The course does not cover social or ethical implications of computing to any significant extent.
Theoretical Content
Design of functional objects and interfaces: 4 weeks
Windowing System Architecture: 4 weeks
High Level Interface Builders: 1 week
Software Design for Interactive Applications: 2 weeks
Programming API’s for User Interfaces: 1 week
Input Dialog Design for Interactive Components: 2 weeks
Problem Analysis
The first assignment asks students, in groups of 3-4, to evaluate two or three different designs for a particular functional object or device in terms of the design characteristics and through observations of many users. The students must analysis the designs to compare theoretical design principles with design effectiveness in practice. The three programming assignments ask that the students design and implement an interface using tools that provide differing levels of support. The students must perform an analysis of the requirements of the interface and of the capabilities of the tool in order to determine how the interface can and should be designed. At least one of these assignments is performed by groups of 2-3 students.
Solution Design
For all of the programming assignments, the students must create the design of an interface and the design of the components in the interface that meets the requirements set out by the assignment description and by the design analysis they perform.