COS 426:
|
|
COS 426 General | Final Project
The final project is a chance for students to build a system incorporating one or more idea that has been learned in class. Projects should be done in teams of two or three (or other team sizes by permission).The focus of the project can be anything of the students' choosing, as long as it somehow involves computer graphics. Many students will create games, but it really can be anything.
Of course, you are welcome to use code infrastructure provided in previous assignments and to get ideas or other code infrastructure from the web or elsewhere. However, you should be very clear about which parts you did and what other parts came from elsewhere. Moreover, while it is ok to use libraries/infrastructure you find elsewhere, it should
not dwarf your own code in terms of its role in the project. In particular if you are making a game, do not build on a highly polished and complete game engine like Unity.
This is an opportunity to present your idea/plan and get feedback from the course staff as well as other students in the course. Come with a plan, and optionally a link to some images, as document, anything that will help you present your ideas.
Each team should submit a short written report for the final project. The length should be about 3-5 single-spaced pages, and longer is not necessarily better. It should contain descriptions of the goals and execution of your project. You should briefly mention related work. You should write descriptions of the approach you chose, the implementation hurdles you've encountered, the features you've implemented, and results you've generated.You should submit your report via CS dropbox here. You may either upload a PDF of your writeup or a zip file containing a web page (e.g. index.html with support files – images etc).
Following is a brief outline you might follow. However, this is just a guideline to help you think about what to say, and these specific items may not match your topic.
- Introduction
- Goal
- What did we try to do?
- Who would benefit?
- Previous Work
- What related work have other people done?
- When do previous approaches fail/succeed?
- Approach
- What approach did we try?
- Under what circumstances do we think it should work well?
- Why do we think it should work well under those circumstances?
- Methodology
- What pieces had to be implemented to execute my approach?
- For each piece ...
- Were there several possible implementations?
- If there were several possibilities, what were the advantages/disadvantages of each?
- Which implementation(s) did we do? Why?
- What did we implement?
- What didn't we implement? Why not?
- Results
- How did we measure success?
- What experiments did we execute?
- What do my results indicate?
- Discussion
- Overall, is the approach we took promising?
- What different approach or variant of this approach is better?
- What follow-up work should be done next?
- What did we learn by doing this project?
- Conclusion
This should be fun! Each team will give a short presentation describing their final project. Your goal should be to demonstrate and describe for the class in a few minutes what you have done and why it is interesting. In addition to showing a demo (if possible) you should describe the guts of your project, possibly using slides or other props. Your team will have a total of (2N + 1) minutes where N is the number of students in your team. (So 5 minutes for pairs, 7 minutes for teams of 3, etc.)
Thank you to all of the teams that opted into sharing their projects (code and/or live demos)! Here is the final project gallery where you can find each team's work.