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.