CS 338 - Graphical User Interfaces
A vast number of today's computer applications have user interfaces through
which users enter information, analyze data, play games, etc. In this course
we will explore how to implement common user interfaces that we all use in everyday
life. The majority of the course looks in detail at the specific components
of a user interface and the integration of these components into a usable system.
The course also discusses design and evaluation issues that arise during implementation
in order to understand the context in which interfaces are developed.
Goals and Objectives
This course aims for students to (1) implement basic user interfaces using a high-level programming language and interface toolkit; (2) understand and apply concepts of interface layout and event handling; (3) understand and apply concepts of various interface components such as buttons, lists, and windows; and (4) understand and appreciate the larger context in which interfaces are designed, implemented, and ultimately used.
Location - University Crossings 153
Time - Tuesdays and Thursdays, 2:00 PM &rarr 3:20 PM
Dr. David Breen
University Crossing 114
david AT cs.drexel.edu
Office Hours - Wednesdays, 4 PM &rarr 5:30 PM
University Crossing 147
dpn52 AT drexel.edu
Office Hours - Wednesday, 4 PM &rarr 6 PM
Other times by appointment
The official prerequisite to this course is CS 350 (Software Design, formerly
Object-Oriented Programming). In addition, the class will assume basic familiarity
with Java and a UNIX environment. Students familiar with C++ but not Java should
be able to pick up the necessary Java skills through lectures and assignments.
Lectures are intended to be interactive, and class participation is
highly encouraged -- please ask questions early and often!
Topics covered in class will include the following:
- introduction to interface implementation in the context of design and evaluation
- introduction to Java Swing (a package for building portable interfaces)
- interface input and output
- event-driven programming
- layout and look-and-feel
- lower-level components: buttons, lists, etc.
- higher-level components: windows, dialogs, etc.
- interfaces on the web and in the world
There is no required textbook for this course; the lecture notes handed out
in class will serve as the primary study resource, and we may hand out additional
sources during the term. Optionally, you may also find it helpful to purchase
a Java and/or Java Swing reference book. Feel free to choose whatever suits
you best; there are many books to choose from, including:
The Java Tutorial, Third Edition (2000), by Mary Campione, Kathy Walrath, & Alison Huml. Addison-Wesley; ISBN 0201703939.
JFC Swing Tutorial: A Guide to Constructing GUIs (1999), by Kathy
Walrath & Mary Campione. Addison-Wesley; ISBN 0201433214.
However, before you purchase additional books, please note that the
Web contains many on-line resources that may serve just as well, such
as Sun's on-line Java
Homework assignments will involve both programming and writing to solidify
and expand on topics presented in lectures. The majority of the assignments
involve implementation of a user interface in the Java programming language
and the standard Swing package; lectures will introduce whatever knowledge of
Java is needed to complete the assignments. For writing assignments, we will
be analyzing the user needs that go into interface implementations and describing
specifications for these user needs.
The course will include an multi-week individual project that brings together
all aspects of the learned material. You will have the option of working on one
of several suggested projects or creating your own project independently. The
final week will include demonstration sessions in which everyone will present
their projects and results to the class.
We will have two exams during the term. The exams will test knowledge and skills
developed in lectures, readings, and assignments. The exams will stress deep understanding
of the concepts involved rather than more superficial aspects of programming.
All aspects of this course are important for developing an understanding of and
appreciation for building user interfaces. The grading breakdown will be as follows:
1 point per day will be deducted from late assignments.
- Assignments: 30% (2 assignments, 15% each)
- Exams: 30% (2 exams, 15% each)
- Project: 40% (3 stages)
I intend to use the standard grading scale of 100 → 90 (A), 89 &rarr 80 (B),
79 &rarr 70 (C), 69 &rarr 60 (D), else (F).
Please also note that incompletes will not be given for this course.
exams also receive a score of 0. Make-up exams will only be allowed
in extreme circumstances.
The instructor will disseminate important announcements by email through the course
mailing list, and also post these announcements on the course web site. Also,
the web site contains a timeline with links to all information (lecture slides,
assignments, etc.) relevant to the course.
- Attendance for lectures and exams is expected. In the case of a school closing
on an exam day, the exam will be given in the next class period. The Drexel
snow emergency information number is (215) 895-6358.
- Academic honesty is essential. Cheating, academic misconduct,
plagiarism, and fabrication of any submitted material, including both
code and prose, are serious breaches of academic integrity and will be
dealt with accordingly. Violations will result minimally in a grade
of zero for the exam/assignment in question, an additional reduction
of one letter grade in the overall course grade, and a report of the
violation to the Drexel administration; further penalties may apply to
more serious and/or repeat violations. Please refer to Drexel's
Honesty Policy for more information.
Last modified January 11, 2009.