CIS 410/510: User Interface Programming
Course Syllabus
Revised January 8, 2008
Winter 2008: MW 2:00-3:20 pm, 260 Deschutes.
Prerequisites: CIS 443 for undergraduates, 543 for graduates or by permission of instructor.
Description: This course is intended as an introduction to user interface programming. Emphasis will be placed on the theory of systems and programming for user interfaces. Topics covered include issues such as event-driven programming, geometry managers, the model-view-controller, OS-programming language integration [examples: X-Window for UNIX and LINUX, MacOS and Microsoft Windows and User Interface Management Systems (UIMS)] and Interface Development Environments (IDEs). The course will consist of several short programming assignments done individually and a final team project to build a distributed cross-platform implementation of an interactive synchronous system such as a group editor or a multi-player game. Programming will be in JavaSwing with an introduction to Tcl/Tk, and C++. A studio-based approach will be used for the final project development.
|
Week |
Date |
Topic |
Reading |
Lecture |
Due |
|
1 |
1/7 |
Introduction |
|
1 |
|
|
|
1/9 |
Historical
development: UIMS |
#1 |
1 |
Questions #1 |
|
2 |
1/14 |
From
Batch to Interactive Programming |
#2 |
2 |
Questions #2 |
|
|
1/16 |
Windowing
Systems |
#3a & #3b |
3 |
Questions #3 |
|
3 |
1/21 |
No class:
Martin Luther King Day |
|
|
|
|
|
1/23 |
Event-Handling |
#4 |
4 |
Questions #4 |
|
4 |
1/28 |
Model-View-Controller |
#5 |
5 |
Questions #5 |
|
|
1/30 |
Widget
Toolkits; Visual C++ |
|
6 |
Student report |
|
5 |
2/4 |
JAVA
Swing |
|
|
Program 1 & questions |
|
|
2/6 |
Intro to
Tcl/Tk lecture |
|
7 |
|
|
6 |
2/11 |
Studio
for Final Project |
|
|
Team presents |
|
|
2/13 |
Tcl/Tk;
UI Development |
|
8 |
Program 2 & questions |
|
7 |
2/18 |
Studio
for Final Project |
|
|
Team presents |
|
|
2/20 |
Tcl/Tk |
|
|
Program 3 & questions |
|
8 |
2/25 |
Studio
for Final Project |
|
|
Team presents |
|
|
2/27 |
Novel
Widgets |
|
9 |
Student report |
|
9 |
3/3 |
Studio
for Final Project |
|
|
Team presents |
|
|
3/5 |
Studio
for Final Project |
|
|
Team presents |
|
10 |
3/10 |
Studio
for Final Project |
|
|
Team presents |
|
|
3/12 |
Wrap up
course |
|
|
|
|
11 |
3/17 Mon |
Final
Project DUE by 5pm in CIS office |
|
|
|
Instructor: Professor Sarah Douglas, 343 Deschutes, phone 346-3974, email: douglas@cs.uoregon.edu. Office hours: 1:30-2pm MW or by appointment.
Communication: There will be a website at http://www.cs.uoregon.edu/classes/08W/cis410uip and a mailing alias Ò410uip@cs.uoregon.eduÓ. Please mail to the class alias if you wish to contact all students. Correspondence to the instructor will be shared if necessary while preserving the anonymity of the sender. Lecture slides and readings will be posted on the Web site.
Required Readings: There is no text for this course. Instead, there will be several short papers available from the class website for download.
|
Reading
#1 |
Dan Olsen
ÒChapter 1 IntroductionÓ, User Interface Management Systems: Models and
Algorithms, Morgan Kaufman, pp.1-7, 1992. |
|
Reading
#2 |
Mary Shaw ÒAn Input-Output
Model for Interactive SystemsÓ, Proceedings of the Conference on Human Factors
in Computing Systems (CHI86), ACM Press,
pp. 261-273, April 1986. |
|
Reading
#3a |
Dan Olsen ÒChapter 4.1-4.2 Basics of Event HandlingÓ Developing
User Interfaces, Morgan Kaufman, pp.
89-104, 1998. |
|
Reading
#3b |
Robert W.
Scheifler & JIM Gettys ÒThe X Window SystemÓ ACM Transactions on
Graphics (TOG), Volume 5 Issue 2, ACM
Press, pp. 79-109 April 1986. |
|
Reading
#4 |
Dan Olsen
ÒChapter 4.3-4.6 Basics of Event HandlingÓ Developing User Interfaces, Morgan Kaufman, pp. 105-126, 1998. |
|
Reading
#5 |
Dan Olsen
ÒChapter 5.1-5.8 Basic InteractionÓ Developing User Interfaces, Morgan Kaufman, pp. 129-166, 1998. |
Assignments: There will be 5 sets of reading questions, 3 programming exercises, a short written/oral report for graduate students and a final project. The reading questions will be used to focus the discussion on the topic. Short reports for graduate students can be selected from the topics of Visual C++, Visual Basic, or novel widgets. The final project can be done as a team effort. The final project will be due at the end of the class. Suitable final projects will entail significant programming and, hopefully, creativity. The project should be a groupware software application that is distributed and synchronous (such as a group game or editing system).
|
Grading Undergrad |
Attendance & Participation |
5% of course grade |
|
|
Reading Questions |
Pass/No Pass grading, 20% of
course grade, 4% each |
|
|
Programming Exercises |
30% of course grade,
10% each |
|
|
Final Project |
45% of course grade |
|
|
|
|
|
Grad Grading |
Attendance & Participation |
5% of course grade |
|
|
Reading Questions |
Pass/No Pass grading, 20% of
course grade, 4% each |
|
|
Programming Exercises |
30% of course grade, 10% each |
|
|
Short Report |
5% of course grade |
|
|
Final Project |
40% of course grade |
Policy on Attendance and Participation: Student discussion and participation will be an important part of the weekly exercises and all other classes. Please read the chapters in preparation for discussion. All students on a team are expected to participate in the studio presentations.
Policy on Graduate Student Grading: Since this is a combined undergraduate/graduate class, I will grade graduate students differently in several ways. Graduate students will often have different problems to do, and, secondly, graduate student answers on problems will be held to higher expectations of quality.
Policy on Team Grading: Each member of the team is expected to contribute equally to the group. You will be graded on participation in the group as well as participation in class. For any group assignment, I will ask each member of a group to fill out a form evaluating participation of team members.
Policy on Late Assignments: All assignments are due at the beginning of class on the date due. Late assignments will not be accepted since the point of the assignment is to discuss it in class. If you think you have a legitimate reason to argue for an exception from this rule, make sure that you communicate it prior to the due date.
Policy on Cheating and Plagiarism: Assignments constitute a large part of evaluation, hence it is crucial that they reflect your individual and group work. Any traces of plagiarism, i.e. copying someone elseÕs work without attribution, will be dealt with according to the University regulations. On the other hand, I encourage you to share ideas and discuss the material in the lectures and textbook with other members of the class.