INFM 718B
Building the Human - Computer Interface
Fall 2006


Course Description
Syllabus
Reading List
Team Project

Course Description

Last modified: Sep 29, 2006 6:20 pm

Catalog Description

Principles and techniques for user interface implementation. Principles for building reliable large-scale interface components. Use of prototyping and rapid development tools. Techniques for managing user input and both visual and auditory displays.

Objectives

  • Understand the role of implementation in the software system development process.
  • Learn and apply a rapid prototyping methodology.
  • Learn basic programming skills using an object-oriented programming language (Java).
  • Become familiar with an integrated development environment (Eclipse) and a common set of user interface components (Swing).
  • Build an application with a substantial amount of user interface functionality.

Approach

We will rely on readings to provide foundational knowledge for rapid prototyping and Java, and will use our time together in class to demonstrate and discuss techniques for actually building user interfaces. Homework assignments (alternating between self-assessed and graded) will help to crystalize specific design, implementation and testing skills, and optional weekly lab sessions will provide a structured opportunity to receive assistance with those challenges. Finally, a team project will provide students with an opportunity to draw all of this together in the context of a real application that is of interest to them.

Instructional Staff

Instructor Teaching Assistant
Name Bill Kules Ajuer Sood
Email wmk@takomasoftware.com class.infm718b@gmail.com
Office HBK 4120G
Office Phone (202) 319-6278  
Office Hours Thursday 4:15 - 6:00 pm  

Schedule

Activity Day Time Room
Class Thursday 6:00 - 8:45 pm HBK 2119
Lab 1 Saturday 10:00 am - noon
HBK 4115 or 4120
Lab 2 Wednesday 9:00 - 11:00 am
HBK 4115 or 4120

A syllabus that summarizes what we will cover each week can be found on the class web page. There will be one scheduled lab session each week during the first half of the semester. Lab attendance is voluntary -- the primary purpose of lab is to give students an opportunity to improve their mastery of the programming details that are needed in order to fully explore the range of issues that we will cover in the class.

I will be happy to meet with students by appointment at any mutually convenient time to discuss material from class, the readings, homework assignments, the team project, etc. Email is the best way to reach me to set up an appointment, and it is also a good way to get a quick answer to a simple question. I try to respond to non-urgent emails and phone calls within 1 business day.

Students wishing to discuss accommodations for unusual circumstances should contact me before the end of the third week of classes.

Class Email List

The class email list has been set up as a Google Group. You may send email to the class at: INFM-718B-fall-2006@googlegroups.com. The group home page is http://groups.google.com/group/INFM-718B-fall-2006. Mail sent to the list will reach all members of the class at the email address that the university had on file for them as of Sept 1 (usually WAM). If you want your email address changed, let me know (at wmk@takomasoftware.com) and I'll take care of it. Please read your email regularly -- it can sometimes save you from a lot of wasted effort. And please send email to the list if you think that there is something others in the class would want to know.

Course Materials

The class web site at http://www.takomasoftware.com/UMD/INFM718B/ contains the most recent copies of all material produced for this course. Among other things, this course description (which contains a number of useful links), the syllabus, the reading list, lecture notes and homework assignments can be found there.

There are two required texts:

  • Bert Bates and Kathy Sierra, Head First Java (2nd edition), O'Reily, 2005.
    The list price is $45, but Amazon will sell you a copy new for $28.
  • Tom Pender, UML Weekend Crash Course, Wiley, 2002, ISBN: 0-7645-4910-3.
    The list price is $30, but Amazon will sell it to you for $20.
The books are NOT available from the campus bookstore, since you can save a considerable amount of money by buying them from Amazon.

A wide variety of other materials on Java programming are available if you would like to supplement these materials. One good place to look for information about Java on the Web is Sun's Java Web site.

Software

We will be using the Java 2 Platform, standard edition, version 1.5 or higher. The principal tools that we will use are the Java 2 Software Development Kit (SDK), a text-based programming environment, and Eclipse, version 3.1 or higher, a graphical integrated development environment for Java. Both are available free in versions that will run on Windows, Macs or Unix.

Grading

Course grades will be assigned based on the graded homeworks, a team project, and a final examination. Scores on each component will be combined to produce a single overall score for each student as follows:
Component Percentage Computation
Homework 30% #1=5%, #2=10%, #3=15%
Team Project 30%
Final Exam 30%
Class Participation 10%

Only the three homework assignments will be turned in and count towards your final grade, but the self-graded exercises are excellent practice for the programming component on the final exam. Students may work together on homework assignments, but all of the material that is turned in for grading must be produced individually. For example, students may form study groups and work out homework solutions together on a whiteboard or by each working separately on different terminals and then sharing what they have learned, but it would not be permissible for one student to code and debug a computer program then for other students to copy that program and submit it as their own work. The goal of this policy is to encourage the use of homework as a learning aid.

For the term project, teams will design and implement a user interface using Java 2. Additional details are provided on a separate Web page.

A two-hour final exam will be held in the same classroom that we normally meet in on the Thursday night of the final exam period at our usual meeting time. Students will be given a simple user interface specification and asked to develop the interface using the Java 2 SDK and/or Eclipse and to answer one essay question.

Academic Integrity

The University of Maryland, College Park has a nationally recognized Code of Academic Integrity, administered by the Student Honor Council. This Code sets standards for academic integrity at Maryland for all undergraduate and graduate students. As a student you are responsible for upholding these standards for this course. It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit http://www.shc.umd.edu.

To further exhibit your commitment to academic integrity, remember to sign the Honor Pledge on all examinations and assignments: "I pledge on my honor that I have not given or received any unauthorized assistance on this examination (assignment)."

Acknowledgements

This material is adapted from Doug Oard's Fall 2004 course.
Bill Kules