CIS 410/510: User Interface Programming
Course Syllabus
Revised February 7, 2007
Winter 2007: TuTh 8:30-9:50 am, 123 MacKenzie
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: User Interface Management Systems (UIMS), programming development environments including X-Window, event-driven programming, geometry managers, and distributed cross-platform implementation of interactive systems. Programming will be in Tcl/Tk, JavaSwing and possibly Visual Basic and C++.
Week |
Date |
Topic |
Reading |
Due |
1 |
1/9 |
Introduction |
|
|
|
1/11 |
Historical
development: UIMS |
#1 |
Questions #1 |
2 |
1/16 |
From
Batch to Interactive Programming |
#2 |
Questions #2 |
|
1/18 |
Windowing
Systems |
#3a & #3b |
Questions #3 |
3 |
1/23 |
Event-Handling |
#4 |
Questions #4 |
|
1/25 |
Model-View-Controller |
#5 |
Questions #5 |
4 |
1/30 |
Widget
Toolkits |
|
|
|
2/1 |
JAVA
Swing |
|
Program 1 |
5 |
2/6 |
Intro to
Tcl/Tk lecture |
|
|
|
2/8 |
Tcl/Tk
demo & JAVA Swing |
|
Program 2 |
6 |
2/13 |
Tcl/Tk |
|
Program 3 |
|
2/15 |
Report on Visual Basic |
|
Student report |
7 |
2/20 |
Tcl/Tk |
|
Program 4 |
|
2/22 |
Report on Visual C++ |
|
Student report |
8 |
2/27 |
UI Development
Environments |
|
|
|
3/1 |
Report on
UIDE |
|
Student report |
9 |
3/6 |
Novel
Widgets |
|
|
|
3/8 |
Report on Novel Widget |
|
Student report |
10 |
3/13 |
Project
presentations |
|
|
|
3/15 |
Project
presentations, Wrap up course |
|
|
11 |
3/20 Tues |
Final
Project DUE by 5pm in CIS office |
|
|
Instructor: Professor Sarah Douglas, 343 Deschutes, phone 346-3974, email: douglas@cs.uoregon.edu. Office hours: 10-11am TuTh or by appointment.
Communication: There will be a website at http://www.cs.uoregon.edu/classes/07W/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.3-5.8 Basic InteractionÓ Developing User Interfaces, Morgan Kaufman, pp. 129-166, 1998. |
Assignments: There will be 5 sets of reading questions, 4 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. 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. They include: a UI development tool (such as an AI system to design UI layouts or visual widget editor), a novel widget (such as a visualization tool or tiled windows), or a groupware software application that is distributed and synchronous (such as a group game or editing system).
Grading Undergrad |
Attendance & Participation |
10% of course grade |
|
Reading Questions |
Pass/No Pass grading, 20% of
course grade, 4% each |
|
Programming Exercises |
40% of course grade,
10% each |
|
Final Project |
30% 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 |
40% of course grade, 10% each |
|
Short Report |
5% of course grade |
|
Final Project |
30% 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.
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 8:30 am 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.