This course teaches the principles of constructing user interfaces. In this course you will learn how to actually implement user interfaces. Some attention is paid to issues of design and usability, but CS 489, HCI, provides more complete treatment of these topics.
Course wiki: http://crackle.cs.uwaterloo.ca/cs349-s09/
| Role | Name | Office | Office Hours | |
|---|---|---|---|---|
| Instructor | Byron Weber Becker | bwbecker@cs.uwaterloo.ca | DC3105 | Mondays & Wednesdays, 12:30-1:00 in MC2017, or after class or by appointment |
| TA | Jaime Ruiz | jgruiz@cs.uwaterloo.ca | DC3591 | Tuesday, 12:00 - 2:00 |
| TA | Matt Kay | mjskay@cs.uwaterloo.ca | DC3591 | Thursday, 1:30 - 3:30 |
MW 1:00-2:20PM, MC 2017
F 1:00-2:20PM, MC 2017 occasionally for exams and/or tutorials
| Primary Text: |
Principles of Interactive Systems, Dan R. Olsen
Jr. Should be available in the bookstore. |
| Supplementary Text: |
An Introduction to User Interfaces for Computer Science
Students, Bill Cowan. Will be available at Pixel Planet |
A tentative schedule of lecture topics and assigned readings.
Note that assignments are due just after midnight so you can still get a good night's sleep before coming to class the next day.
| Theme | Topics | Due | |
|---|---|---|---|
| A1 | Iterated systems | X programming (C++) | 11:59pm, May 24, 2009 |
| A2 | GUI Builder | Model-View-Controller (Java) | 11:59pm, June 14, 2009 |
| A3 | Undo/Redo | Undo, Multiple Windows, Scripting (Java) | 11:59pm, June 28, 2009 |
| A4 | Specifying Components | Production Systems | 11:59pm, July 12, 2009 |
| A5 | Paper dolls | Affine Transformations | 11:59pm, July 26, 2009 |
Slides will generally be posted before lectures. No guarantees about how long before the lecture...
There will be 4-5 assignments. The assignments involve large amounts of programming and require significant time to complete. A common mistake people make in this course is to underestimate the time required to create a truly interactive application: Interactive applications are complex and require developers and designers to attend to numerous details before the application can be easy-to-use, intuitive, and useful. However, if done well, you will construct applications that others will find entertaining and enjoyable to use.
All posted assignments should be considered drafts until two weeks prior to the due date, at which time the requirements will be fixed (though clarifications may occur within these last two weeks). Any revisions will be announced in class and the assignment web page will be annotated with the changes. That said, any additions/revisions to assignment drafts are generally minor in nature, so you should start working on the assignment as soon as it is posted.
Unless otherwise specified, all assignments are individual assignments. You are expected to do your own work. If you use code from a third party (such as code examples from the web, but not code from another student in the course, past or present), you must properly attribute this use in your code. While it is expected that you will incorporate and modify code from external sources, it is expected that such code reuse will constitute a significantly small portion of your final code. If there are any doubts, contact the prof. We reserve the right to check your code against others' code and previous terms' assignments to detect instances of cheating.
We typically supply code to assist you with the assignments. The code is provided with the following caveats:
Absolutely no late assignments will be accepted. You may not email the prof or TAs with your assignments; they will be discarded. There are no exceptions to this rule. Submit early and submit often to ensure you are not caught by unforeseen catastrophes.
There are no make-ups for the midterm or alternative dates/times. If you have a valid excuse supported by valid documentation for missing the midterm, your final will be weighted to count for both the midterm and final. Missing the final (with a valid excuse supported by valid documentation) will result in a grade of INComplete.
Your mark will be determined based on these weights:
You must show sufficient mastery of the material to pass this course. What this means in practice is that if you fail any component of the course (assignments or exams), this is grounds for failing the course.
Review your marks here.
The course resource page will be of help to you when doing assignments.
Academic Integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. All members of the UW community are expected to hold to the highest standard of academic integrity in their studies, teaching, and research. The Office of Academic Integrity's website (www.uwaterloo.ca/academicintegrity) contains detailed information on UW policy for students and faculty. This site explains why academic integrity is important and how students can avoid academic misconduct. It also identifies resources available on campus for students and faculty to help achieve academic integrity in — and out — of the classroom.
Grievance: A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70 - Student Petitions and Grievances, Section 4, http://www.adm.uwaterloo.ca/infosec/Policies/policy70.htm
Discipline: A student is expected to know what constitutes academic integrity, to avoid committing academic offenses, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course professor, academic advisor, or the Undergraduate Associate Dean. When misconduct has been found to have occurred, disciplinary penalties will be imposed under Policy 71 – Student Discipline. For information on categories of offenses and types of penalties, students should refer to Policy 71 - Student Discipline, http://www.adm.uwaterloo.ca/infosec/Policies/policy71.htm
Avoiding Academic Offenses: Most students are unaware of the line between acceptable and unacceptable academic behaviour, especially when discussing assignments with classmates and using the work of other students. For information on commonly misunderstood academic offenses and how to avoid them, students should refer to the Faculty of Mathematics Cheating and Student Academic Discipline Policy, http://www.math.uwaterloo.ca/navigation/Current/cheating_policy.shtml
Appeals: A student may appeal the finding and/or penalty in a decision made under Policy 70 - Student Petitions and Grievances (other than regarding a petition) or Policy 71 - Student Discipline if a ground for an appeal can be established. Read Policy 72 - Student Appeals, http://www.adm.uwaterloo.ca/infosec/Policies/policy72.htm