Several (See below)
For the 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 individuals.
- 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 program
that doesn't do anything won't earn any 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. Help a team member who gets stuck on a
problem. Meet and talk with each other about the status of the project
- 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 copying 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.
- Resources are available at
the ECE 390 Resources page, http://courses.engr.illinois.edu/ece390/resources/
- Choose an original topic.
Original projects yield original ideas!
At the last class meeting, you may demonstrate your final
project to the class. The large-screen projectors in the classroom will be
available to you to demonstrate your project. The
demonstration will NOT be graded.
You are expected to submit your project documentation,
project write-up, executable code, and source code electronically.
Your hand in should have three sections (subdirectories):
- The documentation part
of your project that you would like to be publicly-readable in the ECE
390 project archive. The file called index.html
- Team Members:
List your team members and describe how each contributed.
Describe your project and major goals
Description: What are the challenging aspects of this problem that
make this problem different from previous machine problems?
Describe how the program works. What are the major components of the
program? What data structures do you use to internally represent the
data? What processing is required?
Define the major subroutines. Define each routine's purpose, inputs,
outputs, assumptions, description, and name of the team member primarily
responsible for developing 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 copyright violation are
unacceptable. You will only receive credit for the code that your team
- 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.
- 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. It should not contain
- 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 a
- This is a team project. You
are expected to cooperate in a professional manner among your peers. The
success of 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
- Working -AND-
- Attributed to an
Of the code meeting criteria above, points will accumulate
- Tangibility: (i.e.,
the effort was manifest in code, not just effort)
- Complexity: (i.e., the
code had significant technical substance).
- Originality (i.e., no
credit was given for borrowed routines )
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.
Milestones and Deadlines
The following table summarizes how points will be earned for
the final project. There is no extra-credit bonus for early submission.
Signup, Summary, Initial Project Write-up
Wednesday, 5 April, 5:00 p.m.
- Define, document, and
delegate every major subroutine.
- Outline the code
inspection and testing plan.
- Submit a draft of your
as described above.
- Your project write-up
will be evaluated by a TA at the web site you specify on the summary
Tuesday, 2 May, in class
- Present your project
to others in the class.
Final Project Submission
Wednesday, 3 May, 5:00 p.m.
- Submit your finalized \PUBLIC section to TA in
Be sure that all web links and images are local (i.e., relative to
the current directory, not specified to an internet host).
- 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 \PROGRAM.
Final Project Memo (on paper)
Wednesday, 3 May, 5:00 p.m., with Final Project Submission
- Similar to cover memos
for other machine problems, write a short individual memo of 200 to 400
words about what you learned from the final project. Do not merely
summarize your development log, but think analytically about how you
contributed to your team and how you benefited from other team members.
Peer Evaluation (on paper) PeerEvalForm
Wednesday, 10 May, 8:00 a.m., at the Final Exam
- You will receive the
sum of the two higher peer ratings from the other three members of your
Final Project Staff Evaluation
Friday, 12 May, 5:00 pm
- We will grade your
code and documentation by this date.