Create a Super Mario Brothers game in Matlab. The lines of codes do not matter. But, The requirements are:
Modular design and implementation
Algorithm documented inline as comments
Use standard library functions for purposes other than I/O
Create functions to implement logical modules of your program
Be sure that they use parameters and that they return values
Abstraction: Data structures
Use vectors (other than for strings)
Use matrices (other than for strings)
Secondary storage (disk files)
Read data from files into your program's data structures
Write data from your data structures to disk
creation / concatenation: array building, sprintf()
truncation; parsing; searching
Allow the user to repeat the program
Eliminate all MATLAB warnings and error messages
Code is general and allows flexibility in execution
Indent all code neatly and uniformly
Credit all assistance and borrowed code
Whitespace used to enhance readability
IF and SWITCH options should not be repetitious - if the options are all doing essentially the same thing, move that code to outside of the conditional.
Running totals Array-building
Input (strings and numbers)
Formatted output (format strings, format modifiers, escape sequences)
Plotting: Cartesian coordinates and/or polar coordinates
Multiple data sets, single plot
Pay attention to these:
Make your program flexible. Let the user be able to add options instead of only pre-defining them. For example, if you are making an expense tracker, don't just give a fixed set of expense categories - store the values in a file so that they can be expanded without impacting the program. This also ties in with the next item:
Allow the user to contribute
Can you write the program so that the user can add/change/delete data items? The first module to be written is usually that which allows the user to add to the data file. For example, a test generator is a possible project; a test generator where the user can also add and delete questions is a better project.
Avoid excessive hardcoding
If you have a large number of hard-coded assignment statements then you have excessive hardcoding. Use data files to contain the hardcoded information. [If you wonder if you have too many hard-coded values - you do.]
Avoid long program files and functions
A function or program that has more than about 200 lines should probably be broken into more functions, especially if there is significant repetition - this implies the need of a loop or a function.
If you are writing multiple functions which perform essentially the same task, you need to reduce to a single function with a parameter.
Using a feature from the assignment list (above) must make sense. For example, don't concatenate some strings just to satisfy the requirement - the task must make sense for your project. You will not receive credit for "fluff".