Bill Manaris : Fall 2015 / CSCI 380 Final Project

Assigned Date: Wednesday, Oct. 14, 2015
Due Date (Phrase 1): Done (see Homework3)
Due Date (Phrase 2): Done (see Homework4)
Due Date (Phrase 3): Done (see Homework5)
Due Date (Phrase 4): Monday, Nov. 30
Due Date (Final Project): Friday, Dec. 11
Due Time: 11:20am

Last modified on December 03, 2015, at 06:48 PM (see updates)

This is a group assignment - you must work in teams of 2 or 3. It is not okay to work alone. See course collaboration policy for details.


You have been hired by Artle, a start-up, daughter company of G**gle (name withheld due to non-disclosure agreement), whose purpose is to explore the new, lucrative market in the intersection of art (music, visual, theater, performance, etc.) and computing. The belief is that this where the new multi-billion user market will emerge in the 21st century (the area is untapped territory), and G**gle is trying to develop a portfolio of possible projects / apps to capture a major share of it (in the spirit of G**gle innovation).


This is the culmination of this semester's multi-phase project, where you develop the UI for a new system.

For this final phase, you are to complete the development by implementing the UI and a functional prototype of your proposed system.

As discussed earlier, you are required to use the Model / View / Controller architecture. In particular, when you submit your code, you must partition it in files,,, and

These files are to be imported in your driver program,

So, there will be at least four files in your final project. Use these exact names:

Top level documentation should be included in each file. Use this format -

Also, functions should be clearly documented. Difficult, or important parts of your code should also be well documented. Comments should focus on "what" and "why" something is being done (as opposed to the "how" - the "how" can be seen in the code). In other words, your comments should not be translations of your code into English. Instead they should provide higher-level algorithmic insights and specifications.

While you are not required to implement the complete application, you should implement enough (i.e., the most significant user tasks), so we can appreciate / use / evaluate / assess you application and its functionality. Feel free to implement the complete functionality, if the application is simple enough. The determination if you have implemented enough will be made based on whether we can experience the essence of your system, from what you provide, or not.

To receive partial credit, you should implement the complete UI (even if you do not complete the functionality). After all, this is a UI development class.


Produce a report (PDF), with the following outline:



Grading will be based on your ability to carefully and succinctly identify the key points of your idea / work.


  1. Hand in your report printout in class on the due date to be graded.
  2. Also store it on a USB stick in PDF format.
  3. The USB stick should be placed inside an envelope (or paper wrapping) with the team member names on it.
  4. Bring your system to class and be ready to demonstrate it with sample users.
  5. On the USB stick store your code and additional files it loads (e.g., images, sounds, etc.) in a subdirectory, called Code, which also includes JEM, so I can easily run things. I should be able to go to this subfolder, run your program, and see your system in action. Include the README file with instructions on how to use your system (e.g., sync the phone, or anything preliminary necessary to know). I should able to read these instructions and run your system.

Failure to follow these instructions will result in reduction of grade.

(Printable View of