Proposal is due 11 November before lab and the final program is due Friday 2 December before lab.
This will be the last lab assignment. You are asked to propose your own mini-project, and complete it in three weeks. You will demonstrate your working program on Friday, 2 December, during lab.
For this project you may program in C, MIPS Assembly, or both. Of course, a project done entirely in C must be significantly more involved than one done entirely in assembly.
Here are some starter ideas.
- Design an RPN calculator. It must handle at the following operations: add, subtract, multiply and divide. It should also have multiple memory locations for storing and recalling intermediate results (e.g., 5 3 – STO 1 8 4 – RCL 1 / should give you 2).
- Implement a program that performs alphabetic sort on a text file.
- Implement a program that solves a maze problem or puzzle.
- Design a “malware” program which exploits buffer overflow vulnerability in your code and runs some “bad” code.
These are just examples. Please feel free to propose any other interesting problem you would like to solve. You will likely have a lot more fun with the project if you come up with your own idea.
As a general guide, in order to make your project be of adequate complexity/challenge, you should incorporate at least one of the following:
- Data structures (e.g., stacks, queues, structures, multidimensional arrays, etc.)
- Fancy I/O (e.g., file I/O, or nicely formatted text output, ASCII art, etc.)
- Numerical computing (e.g., floating-point, matrix operations, etc.)
What to submit. You will demo your project during lab hours. You will submit your code and a one-page report via Blackboard.