Syllabus CS5984: User Interface Software: Fall 2002

| CS5984 | Class Info | Syllabus | Calendar | Assignments |

Course information


Dr. Manuel A. Pérez-Quiñones
office: McBryde 621
phone: 231-2646
office hours: Wed 9:30-11:00, Fri 9:30-10:30, or by appointment

Graduate Teaching Assistant

Pardha Pyla
office: McB133
office hours: TTh 10-12, or by appointment


Two textbooks are required for the course.
• Developing User Interfaces. Dan R. Olsen Jr., 1998. Morgan Kauffman. ( (required)
• Code Notes for Java. Edited by Gregory Brill, 2001. Random House.(required)

Other reference materials might be appropriate to use, depending on your background and knowledge on Java and Object-Oriented Programming.
• Any Java reference book is recommended, although material is available on the web.
• If you are new to object-oriented, then the following book is recommended. Java in Practice: Design Styles and Idioms for Effective Java. Nigel Warren & Philip Bishop, 1999. Addison-Wesley Longman (, or


The objective of this course is to expose students to the methodology, techniques, design, and testing of graphical user interfaces (GUI). The course on the construction of user interfaces, thus complementing other usability oriented course available in the department. Application frameworks will be discussed in detail. The students will learn to use existing classes, extend and specialize classes for GUI use, and to create their own components. Projects will include programming of direct manipulation interfaces, full use of undo, and use of data exchange techniques, such as the clipboard and drag and drop. Furthermore, in the second half of the semester the course will explore architectures for advanced user interfaces, such as voice interfaces, handheld computing, and others. Most of the programming will be done in Java.


Knowledge of Java or other Object-Oriented Language.

Web page
This page will be updated throughout the semester with information on deadlines, changes to the schedule, presentations, etc. The web page includes several dynamic features that should help you get the most out of this course. Some of these include: discussion board, grade lookup, semester calendar, and a very simple search engine over transparencies.

Attendance and Participation

Attendance at class is necessary for successful completion of the course. Attendance is particularly important on specials days, such as homework-due days, exam days, etc. However absences will not count against your grade, but are discouraged unless special circumstances exist.

Programming Assignments due in class are due at the beginning of the class and will not accepted late. This includes handing in your work on your way out of class.

NOTE that it is your responsibility to turn in the required work at the assigned due date, it is NOT the responsibility of the professor or the GTAs to pick it up or to remind you to turn it in.

There might be some participatory exercises done in class. If you are asked to participate in these, it is expected that you will do so.

Students are expected to read the assigned material prior to class, check the web page for the assigned readings and their dates. Some class time will be used for lectures, but attending lectures will not be sufficient for full understanding of the concepts from the readings.


Throughout the semester you will have several assignments of different kinds. Each might require different skills from you, and each will require different amount of effort. In general you can count on the following:

Programming Projects

There will be several programming projects in the semester. These are to be done in groups of 2 using Java. These are projects based on the material discussed in class and give you an opportunity to explore an important area of user interface architecture. You will most likely have to consult a Java book, as some of the programming details of the assignment will not be discussed in class, only those related to the class material. Your grade for each of these will be based on the quality of your code and not necesarily on the execution results of your program. Although usability issues of your program are important, only a portion of your grade will be based on usability issues.

IMPORTANT - You must turn in all programming projects in order to pass the course. If you do not turn one of them in, you will get an F in the course. This is to prevent students from being "satisfied" with a lower grade and just not doing one of the projects. You have to do them all and turn them in by December 11 (last day of classes at the beginning of class).

All the programming projects will be submitted electronically, using jar files. The GTA for the course will give more details as the due date approaches on how to submit the projects.


You will have a midterm and a final exam. Both of them are in class and you are allowed to use the class textbooks as well as the class readings. There is a good possibility that one or both might be a take-home exam.

Abscense, Makeups, and other special circumstances

No makeups are allowed in this course. Homeworks not turned in on time will not be accepted. Paper reviews missed get a zero. Projects can be turned in late up to three days with a small penalty. Exams cannot be missed.

Nevertheless, sometimes people get sick so I will allow extra time to complete projects if you have the proper medical evidence that shows you were not able to complete it in the time allowed. In special circumstances, other excuses will be accepted, but you would still need proper evidence of them.

Consider the following observations:


Your grade will be based on the scores you obtain on your work. There will be no curve applied so your scores, so be sure to study and work hard for every single assignment and test. Your work will be weighted as follows:

Paper reviews


Tech notes and review of them


Programming projects (in groups of 2)




Final exam (cumulative), covers all the material in the course




Final grades will be set according to the usual 10-point scale using A, B, C, D and F. I reserve the right use the extended scale that VT has (A, A-, B+, etc.). I do not plan to use a curve, so do not count on getting 88 and waiting for the curve to pull you through. It won't. Study to get a 100. All the scores are rounded to one decimal place and the final score rounded to integers (i.e. 89.4 is a B and 89.5 is an A).

Honor Code

All work on individual assignments and exams is to be your own. You will be required to sign an honor code statement on all exams. Students are encouraged to consult with one another about project design issues, as the sharing of ideas here will lead to better systems. However, sharing of code is not tolerated and furthermore it is easy to detect. Please avoid the awkward situation of being caught sharing code with other students that are not in your team. Written reports are to be the work of group members. In general, plagiarism will not be tolerated.

What is plagiarism? Check the website, I do not tolerate plagiarism, so avoid doing it and do not even try to justify it by giving excuses that begin as "I was not aware that ..."

Special Needs

If you have any special needs or circumstances (disability accommodations, religious holidays, etc.) please see the instructor during office hours.

| CS5984 | Class Info | Syllabus | Calendar | Assignments |
manuel a. pérez-quiñones, © 2002