| ECE291 |
Computer Engineering II |
Lockwood, Spring 1999 |
Final Project
| Points | 125 |
| 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 3 or 4 individuals.
Teams of 5 members are not permitted this semester.
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 Prof. Lockwood
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://www.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
- 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.
- 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.
- 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).
- 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 plagerism is a complement to the original author.
Undocumented plagerism is a crime.
If you claim someone else's code as your own, your team
will fail the final project.
- Choose an original topic. Orignal 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, you should send email to the team leader.
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 monitors in the classroom
will be avaiable 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 writeup,
executable code, and source code on a digital media:
(a floppy, a zip disk, or an upload).
Your handin should have three sections (subdirectores):
\PUBLIC
- The documentation part of your project that
you would like to be publically-readable in the ECE291 project
archive. The file called index.htm 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. Plagerism and/or copyright violation is
unacceptable. You will only receive credit for the code that
your team writes.
- GIF Screen shots (320x200) from your running program.
- Be sure to use local web links to reference html and images
in the directory you submit. Your writeup 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. If your MP doesn't run on
Prof. Lockwood's computer; it may not be graded.
- This part of your MP will 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 NMAKE CLEAN and NMAKE
should be able to erase all object and executable code then
reassemble them from source.
If your MP doesn't build on
Prof. Lockwood's computer; it may not be graded.
- 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 1 MByte. 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 evalulate 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 substancial 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
| 5
| THR April 8, 5pm (On-line)
|
- On-line listing includes all team members
- On-line project summary must be approved
|
| Project Writeup
| 20
| TUE April 20, Midnight (On-line)
|
- Complete body of main program
- Define, document, and delegate every subroutine.
- Submit your: \PUBLIC
section, as described above.
- Your project writeup will be evaluated by a TA 5pm at
the web site you specify on the summary page.
|
Demonstration (Peer Evaluation)
| 50
| TUE April 27, 9am (In class)
|
- Submit your
\PROGRAM
section to TA in lab by 9am.
- Present your project
in front of classroom
|
| Final Submission
| 25 | FRI April 30, 5pm (In lab)
|
- Finalize your project writeup and document source code
- 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.
- Re-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).
- Re-submit your finalized \PROGRAM,
if it has changed from your demonstration.
- Note that the \PUBLIC and PROGRAM
files will be mastered
onto the new Project CDROM
as a permanent archive of your work at UIUC.
|
| Peer Evaluation
| 25 | FRI April 30, 6pm (On-line)
|
- Judge the performance your team and others.
- Submit peer evaluation via web.
|