Introduction to Graphical Human-Machine Interfaces
Programming Projects

General Info | Submission Info | Project 1

General Information

Several programming projects will be assigned to enable each student to implement user interfaces using a variety of user interface tools (probably 3 or 4), so that the students will get a better appreciation of the differences among the tools.

Programming projects are worth 30% of your total grade.

Programming projects are graded on the basis of the quality of the human-machine interface and the breadth/variety of features provided for interaction with the system on the part of the user. Your grade will also be based on how well your system demonstrates your proficiency in utilizing the user interface tool being used for the underlying implementation.

Programming projects will be due on the date and time specified on the project description handed out in class. Although, your source code will not be examined to determine your grade, you will be required to submit your source code by the project due date. Sign-up sheets for scheduling a live demo (either with the instructor or the TA) of your system will be made available around each deadline. Since you will have to demonstrate your program to us, your program must run! Programs that fail to run will receive zero credit.

Project Submissions

Although your demos are scheduled after the actual due dates, you must submit the following by the due date in order to avoid a late penalty:
  1. The source files used to create your program. This includes all header files, source files, and makefiles you used.
  2. A brief user manual which describes what your program does, how to run it, and use it. This may be a plain ASCII file, but make sure it is formatted nicely and that lines do not extend past the 70th column.

You are to submit your source and manual by e-mailing a uuencoded tar file to ghmi-submit@cs.rpi.edu. This procedure is not yet operational, but when it is, you will be able to send a message with the word HELP in the body and receive instructions. Instructions will also be handed out in class and/or made available on the course Web site.

Project #1: X Toolkit Programming

For this project you are to implement a room reservation system using one of the X toolkits such as Motif or Athena. For further details about the project see:

There is another demo program avaialble; this one shows how to create a Motif text widget. Also see demo/rooms.h and demo/testrooms.c for one way to store the information about the available rooms.

Important note about X resource files. Several of you have had trouble getting X resource files to work with your programs for Project 1. Please read Rick's note on resources for more information.

IMPORTANT! Note that Imake is not working as we expected on RCS. As a workaround, Rick has provided us with an improved Makefile. This Makefile will compile the sample vend program. Please read the comments in the improved Makefile to learn how to modify it to compile your programs. You no longer need to run xmkmf, simply adapt the improved Makefile to your program. See also Rick's compile note.

Be sure to read the associated . Also check out the various X Programming Resources on the Web. Also Rick has placed some X related material (mostly his handouts and sample programs) in his RCS directory: /home/01/kliner/public/X.

Also see the handouts for the ECSE course: 35.475 Computer Graphics, which also covers X Windows programming with Motif.