Computer Engineering II
  Final Project

Schedule    Lab schedule
Homework    NASM docs
Machine Problems    Resources
Final Project    Photos
Gradebook    Feedback
Syllabus    Archives
Lectures    Download NASM
Home    Restricted access
Points 175
Deadlines Several (See below)

Introduction

For the ECE291 final project, you will have an opportunity to write your own machine problem. For this project, you should combine the concepts you have learned from this class along with new and original ideas of your own creation. This is a team project, with a team size of 4 or 5 individuals.

A few project ideas.

  • Create a multi-user application that distributes computation or simulation over a network.
  • Create a new arcade-style game. Your program MUST BE new and original. Be sure to identify the specific features that make your program unique.
  • Create a logic analyzer using the parallel port of a PC include features found in laboratory-class equipment.
  • Use the joystick, parallel port, and/or serial-port to measure or control an external device. Warning: Be careful about connecting GND/VCC to random pins on the parallel port, serial port, and/or joystick port - your hardware can be damaged!. The ECE291 lab machines may NOT be used without permission for initial hardware testing
  • Create a project that combines ideas from above.
  • Create a completely different project from anything described above. Your project MUST contain new and original ideas that have never been implemented in this class or anywhere else in the vast Internet. Discuss radical ideas with the instructor or ECE291 TAs well in advance of the project signup deadline.
Survey the projects submitted in previous semesters
  • Writeups for past projects can be accessed from the Archive section of the ECE291 home page as:
    http://courses.ece.uiuc.edu/ece291/archive/
  • Executables can run from the lab or at home.
    • To run programs at home, Open your 'ECE291 Fall-98' CDROM
      then Double-click on the shortcut to run the program
    • To run programs in the ECE291 lab, use Windows Explorer to browse:
      V:\menu
      then double-click on the shortcut to run the program.

A few friendly words of advice

  1. Choose a topic more challenging than a machine problem. This project is worth more points than a MP and you can divide the work among members of your team.
  2. Don't choose an impossible topic. You need to get it working by the end of the semester. A demo that doesn't do anything won't earn many points.
  3. Work as a team. Start early. Set a regular work schedule. Don't wait until the last minute to verify that your code works together. Be prepared to cover for a team member if they get stuck on a routine. Meet and talk with each other about the status of the project on a regular basis (daily or weekly).
  4. Be sure to document the parts of your code that you borrow from other students or find on the Internet. You are welcome to use libraries and/or source code that you find elsewhere, but will only be graded on the part of the code that YOU write. Documented plagiarism is a complement to the original author. Undocumented plagiarism is a crime. If you claim someone else's code as your own, your team will fail the final project.
  5. Choose an original topic. Original projects yield original ideas!

Project Signup and Summary

An on-line signup page has been created for the final project. This page can be accessed as: Using this signup sheet, you can browse projects suggested by other students, create a new project, or edit your own team project information.

To join a project, indicate your interest in the project by clicking on Request to Join a Project

If you create a project, you will become the team leader. You will be responsible for providing an initial description of the project and soliciting team membership.

By the deadline, everyone should be on the list either as a team leader or a team member. The project summary should be finalized to describe what your team plans to do for the final project. It should mention how many programmer-hours you expect will be needed to complete this project. The summary should be approximately 150 words and be submitted via the web.

Demonstration

On the last few days of class, each team will demonstrate their final project to the class. The large-screen projectors in the classroom will be available to you to demonstrate your project. To a degree even greater than with the MPs, it is critical that your program is functional. For the demonstration, you will be graded on technical merits and accomplishments by other members of your class, the TAs, and the instructor.

Project Submission

You are expected to submit your project documentation, project write-up, executable code, and source code on a digital media: (a floppy, a zip disk, or an upload).

Your hand in should have three sections (subdirectories):

    \PUBLIC
    • The documentation part of your project that you would like to be publicly-readable in the ECE291 project archive. The file called index.html should contain:
      • Team Members: List your team members and describe how each contributed.
      • Introduction: Describe your project and major goals
      • Problem Description: What are the challenging aspects of this problem that make this problem different from the machine problems that have already been written.
      • Implementation: Describe how the program works. What are the major components of the program. What data structures do you use to internally represent the data and what processing is required.
      • Procedures: Define the subroutines. Define each routines' purpose, inputs, outputs, assumptions, description, and name of the team member responsible for writing the code.
      • External Routines: You are welcome to use code from the machine problems, code found on the Internet or ftp sites, or code written by other students. You must, however, credit the source. Plagiarism and/or copyright violation is unacceptable. You will only receive credit for the code that your team writes.
      • PNG, GIF, or JPG Screen shots (320x240 or smaller) from your running program.
    • Be sure to use local web links to reference html and images in the directory you submit. Your write-up will be be made available on-line from the ECE departmental server and mastered onto the ECE291 Project CDROM.
    \PROGRAM
    • An executable version of your program called MAIN.EXE
    • All Additional files (such as PCX or BMP images) that are needed for the program to run.
    • Your program should run on any Pentium-class machine. Your program must not assume fixed interrupts or DMA channels.
    • This part of your final project might be made available on-line and mastered onto the ECE291 Project CDROM. It should not contain source code.
    \CODE
    • The source code to your MP (All source code) and a Makefile.
    • The commands make clean and make should be able to erase all object and executable code then reassemble them from source.
    • Within the comments of your source code, every procedure should be commented and attributed to an author.
  • To enable archiving, try to keep the size of your submission to under 5 MBytes. Long introductions are not a substitute for a well designed project.

Grading

  • First and foremost, this is a team project. Your are expected to cooperate in a professional manner among your peers. The success your your project depends entirely on the success of your team.

  • Everyone is expected to contribute. Each team member will privately evaluate their own contributions as well as the contributions made by each of the other team members. Your Individual score is equal to your team project score plus your individual project score. Within the source code you submit, points will only be awarded for code that is:
    • Written in Assembly -AND-
    • Working (i.e., as part of the final demo) -AND-
    • Attributed to an author
    Of the code meeting criteria above, points will accumulate based on:
    • Tangibility: (i.e., the effort was manifest in code, not just effort)
    • Complexity: (i.e., the code had substantial technical substance).
    • Originality (i.e., no credit was given for borrowed routines, such as LoadPCX or existing or past MP functions)
    Average scores will be given for average amount of work. Higher scores were given to individuals who contributed in proportion to programming efforts above the level of a machine problem.
  • Don't procrastinate. Start early and avoid self-induced stress. Every deadline has a 10 pt/day penalty, which applies to all members of the team.

Milestones and Deadlines

The following table summarizes how points will be earned for the final project:
Milestones and Deadlines  Pts Due Notes
Project Signup and Summary  10 Friday November 2, 11:59pm (On-line) 
  • On-line listing includes all team members 
  • On-line project summary must be approved
  • You will receive feed-back by 11/5 and approval no later than 11/7
Initial Project Write-up  30 Wednesday November 14, 11:59pm (On-line) 
  • Complete body of main program 
  • Define, document, and delegate every subroutine. 
  • Submit your: \PUBLICsection, as described above. 
  • Your project write-up will be evaluated by a TA 5pm at the web site you specify on the summary page.
Code Submission na Thursday December 6, noon to 5pm in lab
  • Submit your: \CODE section, as described above. Be sure your source code is complete with comments and that every function is credited to an author or external source. 
  • Submit your finalized \PROGRAM. This is the code you will demonstrate in class.
Documentation Submission 35 Friday December 7, 5pm in lab
  • Finalize your project write-up
  • Submit your finalized \PUBLIC section to TA in lab. 
    Be sure that all web links and images are local (i.e., relative to the  
    current directory, not specified to an internet host). 
Demonstration na Saturday December 8, 9am in class
  • Present your project in front of classroom 
Peer Evaluation 50  Tuesday December 11, 11:59pm online
  • Review your classmates' final projects and also evaluate your own team members
Final Project Staff Evaluation 50 Friday December 14
  • We will have your code and documentation graded by this date.
Return to ECE291 Home Page Fall 2001