|
CS 112
Final Project |
|
During the rest of the semester, you'll work on an extended, individualized programming project in an application area of interest to you. After choosing an application or problem, you'll design and build a substantial MATLAB program from scratch. This project will enable you to integrate all of the programming and problem-solving skills that you have learned, and to build a program that is connected to your particular interests. During the last lab class of the semester, each student will give a short presentation about her project.
Your completed program is due at the end of Final Exam period, on Monday, May 16, at 4:30pm. There are two intermediate stages involving work that you submit, which will also be graded. You will receive feedback from the Instructors on each intermediate stage. The requrements for each stage are described below. You are allowed to work in pairs on this project, although the final program must be more extensive in this case, and you will need to document the contributions of each partner.
Due: Monday, April 4 (10 points)
For the first phase of the project, you should hand in a description of your problem and an outline of the overall structure of the program. This initial description can be written in English, although it is OK to describe some of these components in MATLAB. The description should include the following:
If you are unsure of what to include in your description, please ask one of the Instructors. Before the due date for Phase One of the project, you should meet with Ellen or Sohie to discuss your choice of project topic and the overall organization of the program.
Due: Thursday, April 28 (15 points)
In this second phase, you will submit a detailed skeleton of the entire program, with some completed code. The amount of completed code should be at least a third of the anticipated final size of the program (Ellen and Sohie can help you figure out what this means for your program). Even if the code is buggy, you should submit anything that you have written, so that we can provide as much feedback as possible. In your skeleton, every function definition should have comments indicating its purpose and should have all of the input and output variables specified and described. If you made decisions that deviate from your initial Phase One plan, include a brief explanation of your decisions. You should meet with Ellen or Sohie to review your overall plan before submission of this phase. You should provide both an electronic copy and hardcopy of this material.
Wednesday, May 4 (5 points)
During the final lab meeting, we would like each of you to share your project ideas with the class. It is expected that you will not have a completed program at this point, but you can describe your general problem or application, user interface, and overall design plan. You might also comment on what aspects of the project have been especially interesting or challenging. You should prepare in advance to give an 8-10 minute presentation that conveys what you are doing to your classmates. Before the presentation date, you should meet with Ellen or Sohie to plan the demonstration of your program for your presentation.
Due: Monday, May 16 (70 points)
In this final phase, you should submit your final, completed and working program. Submit a hardcopy of all of the code files in your project, as well as a description of how to run your program. If parts of your program do not work, or are not working as originally planned, provide some additional notes about this. Hand in an electronic copy of the entire program folder, including an electronic file called README.txt with instructions on how to run the program, in your individual drop directory on the CS file server. Be sure to verify with Ellen or Sohie that the directory is complete after dropping it off. Your final program should encompass principles of good program design, such as effective use of functions to implement parts of the problem or application, informative names for variables and functions, and code that is well organized and concise. With regard to documentation, you should provide comments at the beginning of each function that describe what it does, and occasional comments throughout extended functions.
Finally, we would like to meet with you before or after your final submission to see a demonstration of your program and to get your feedback about the project experience.