Prof. Bederson CMSC 498B/838B - Developing User Interfaces - Spring 2005
Home
Contact

Schedule
Homework
Grades
Links

[DUI Spring 2002]

 

This course will introduce students to implementation issues related to graphical user interfaces. The goal is to understand the basic software architectures that govern the development of modern graphical user interfaces. Students will write programs in C# (and we'll compare approaches with Java). In addition, the basic principles of 2D computer graphics will be covered. 

We will cover a range of topics, including traditional GUIs, event-driven and threaded apps, undo/redo, cut/copy/paste, multiple views, animation, and custom widgets.  In addition, we'll touch on collaborative, web, and mobile interfaces. As a result of this course, students will be able to learn new interface toolkit systems and effectively develop the interface portions of applications.

This will be a programming intensive course, and background in C# is useful (although not necessary).

Required Text: Windows Forms Programming in C#, by Chris Sells, Addison-Wesley Professional, 2003, 681 pages, ISBN 0321116208

Optional Text: C# in a Nutshell, 2nd Edition, by Drayton, Albahari, and Neward, O'Reilly Press, 2003, 926 pages, ISBN 0-596-00526-1

Both texts are available on reserve in the CS Library (3164 AVW):

Prerequisite: For undergraduate students: C or better in CMSC 434 and one of: (CMSC412, CMSC417, CMSC420, CMSC430 or CMSC433).  No prerequisites for CS graduate students.

Programming Assignments

There will be 5 individual programming assignments throughout the course. In addition, there will be substantial reading assignments and possibly occasional other exercises.  Each programming assignment will get graded on correctness, and in addition, will also be graded partly based on usability, visual design, and coding style.

Machines

All assignments can be done on the machines of your choice using Microsoft Visual Studio.NET and C#. You are encouraged to do the work on a home computer if you have one.  You will get a special WAM account for this class, and can use any WAM PC on campus that has VS.NET (which includes the following labs according to OIT):

  • WAM Lab 32 - Computer and Space Sciences Building, room 3330

  • WAM Lab 35 - McKeldin Library, room 1137

  • WAM Lab 37 - Parking Garage 2, room 0504

  • WAM Lab 38 - Worcester hall, room 0111

Visual Studio.NET will be made available to you for use on your home machines for free.

Grading

All assignments are due at the beginning of the class on the day that they are due. The paper part (if any) must be turned in at class, and the electronic part (if any) must be submitted by the time of the beginning of class. Late assignments will be strictly penalized. Exceptional circumstances will be considered only if discussed with me in advance. All late assignments that have not been excused in advance will not get any credit.

Your final grade will be computed using the following contributions:

60% Programming Projects
20% Midterm
20% Final Exam

In addition, you must pass both exam components and assignment components to pass the course.

Students claiming an excused absence must apply in writing and furnish documentary support (such as from a health care professional who treated the student) for any assertion that the absence qualifies as an excused absence. The support should explicitly indicate the dates or times the student was incapacitated due to illness. Self-documentation of illness is not itself sufficient support to excuse the absence. An instructor is not under obligation to offer a substitute assignment or to give a student a make-up assessment unless the failure to perform was due to an excused absence.

Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Disability Support Services within the first two weeks of the semester.

Graduate Credit

Those students that are registered for the CMSC 838B version of this course must attend the same lectures and do all the same homeworks and projects and take the same exams as CMSC 498B.  In addition, these students must do the following additional items (described here in more detail):

  • Read 1-2 research papers/week that I will assign, and write a 200-400 word synopsis of each one.

  • Make a 5 minute presentation to the class summarizing one research paper that you read.

  • Build a research prototype exploring a new interface idea, or replicating existing work described in the literature

  • Write a (8 page, CHI format) paper summarizing the research field in an area related to this class.

Your final grade will be computed using the following contributions:

60% CMSC 434 work
5%   Paper synopses
5%   Class presentation
20% Research prototype
10% Research paper

Academic Honesty

All assignments/exams must be done on your own. If you are found to cheat by inappropriately sharing your solution with other students, copying others work, requesting answering services to answer your questions, etc. you will get an immediate XF for the course, and your case will be sent to the university’s Office of Judicial Programs.