[CMSC 437] | [Syllabus] | [Lecture Notes] | [Homework] | [Projects] | [Files] | [Notes, all]

CMSC 437 Project

You may choose a project that has human-computer interaction using GUI software
that you write. You may chose a project of interest to you. 
You may use any operating system on any computer, phone, pad, game
device that you choose. It was suggested early in the course to
do the homework assignments on the platform you will use for your
project. Not required, suggested.

Get instructors approval that the project is appropriate for this course.

Show the instructor preliminary screens and intermediate progress.
 
The project must have human-computer interaction.

There are sufficient course resources that you may choose to code
an interactive educational program, a 3D interactive puzzle or game,
or some other program that you may build on after this course is over.
3D modeling something of interest to you is another possibility.
A GUI interface for data entry, data lookup from a database, modeling,
or simulation is acceptable.

For gaming at UMBC, see gaim.umbc.edu
and search the web for more.

This semesters project may be a prototype of something you will use
at your job, in a future course or to sell.
I have seen enough Sudoko. This course is part of the Game Track,
thus programming a game for the project is good.

Discuss your project with the instructor.
Periodically, show instructor your progress.

Accepted are HTML5 WEB based applications, not from another course.
(Now allowed is AJAX or other server side applications.
 Also, HTML 5 with canvas and mouse and keyboard interaction)
OK to do a game using a game development tool kit.
OK to do a phone app using a development tool kit.

Not accepted is a minor modification of an existing program.
(A major modification to an existing program is allowed.)

The first four lectures present many sample GUI application and you
may choose to wait until after lecture four to make your selection.

Some default projects are:

(1)The goal of this project is to create a reasonably simple
game to be played on a computer. Implement a version of the
game "frogger" with logs moving at various speeds, a random
alligator, and user control of the jumping frog. Use a 3D
graphics engine such as OpenGL and give the player control
of the 3D view. Provide control of difficulty by changing
speed and number of logs to cross in order to reach safety.
Provide a splash screen for winning and loosing. Record and
be able to display best score, probably shortest time.

(2)If you wish to be more violent you might want race cars or
tank battles. Have some type of menu for selections. Read and
write a file with high scores.

You have great freedom to choose what your project is
to be. 

A pixel "paint" program is generally not acceptable.

The project must be a significant quantity of GUI programming.
Typically at most 1,000 lines of code.
100 lines of code or less is generally not acceptable.

Submitting your Project

 The project is to be submitted on GL as 

   submit cs437 proj list-of-files
 

 The list-of-files must include source code.
 Do not submit sound files.
 Do not submit executable file(s).
 One or more saved data files, if used, would be nice.
 Include first screen .png and final screen .png
 Include a few middle screens if necessary to show how project works.

 
  

  

 (not online class:)
 Present and demonstrate your project running
 during the last few class periods. (or other class periods
 by arrangement with the instructor)
 As you are demonstrating your project, explain or point out
 features (and the neat stuff) you have included in your project.
 In other words, do a presentation of your project.

 Fill out top of  Project Description  and sign list to present project.
 Project Description

 

Getting Started

Each student needs to choose an operating system to which they have access.

UMBC makes available Microsoft Windows, Linux,
Solaris, MacOS and several others.

The "windowing" system is chosen by default
from the operating system choice. MS Windows,
X windows or MacOSX.

In the chosen operating system, the student should choose a programming language, "C", C++, Java, Python or other language that has available or some other graphics library. The major GUI tool kits, libraries, to select from include Motif for X Windows, OpenGL for all operating systems, Java for all operating systems. A version of graphics for Python, Examples will be shown in the first few lectures.

Start the project by getting sample files

 Starter files may be copied to your subdirectory on
 GL  using commands such as:

 cp  /afs/umbc.edu/users/s/q/squire/pub/download/? .

 Expect problems if you EMail source code. Lines will
 probably be wrapped and your code will not compile.

 Be careful saving WEB pages. "Cut and Paste" can give
 strange translations. WEB pages may have control
 characters that compilers will not accept.


A form that I use when seeing the project in class,
demonstrated is: proj437.txt
Students should fill out form down through "started with" .

other links and files to download

Last updated 11/23/2021