Computer Programming Final Project

advertisement
Computer Programming Final
Project
There will be no labs in the last week of this course. Instead, you will be working on a final
project of your choice. The instructor will use the lab hours to help you with your projects.
The purpose of the final project is to give you a chance to write a software that you can be
proud of (or show off to your friends with). It will also hone your research skills — you will
encounter some new library functions/data structures/grammars you have never seen before.
Don’t panic when that happens — it happens to every software engineer (no matter how good
he or she is). In computer science, the most important thing is not how many languages you can
program in or how many library functions you can memorize — it’s how well you learn new stuff.
Teams
For this project, you will form teams of two. Work should be allocated evenly in your team.
Topics
You should choose a project that is interesting to you and has real world applications. That
means don’t choose a topic that is not interesting to you, and never build a software that is
completely useless!
Here is a list of projects you might be interested in. Feel free to choose one from the list or
propose something that is not on the list. You are not allowed to choose a topic if it has already
been chosen by another team.
1. Student record system: a software you can use to take attendance, record grades, etc.
2. Sentence generator: a series of different parts of sentences will be randomly put together to
come up with new interesting sentences.
3. An encryption and decryption software (or file safe box).
4. A little game (like the Hangman game, but not the same): feel free to design your own game.
5. Word count: read a text file and count the appearances of each word.
6. Personal finance software: allow user to enter income and expenses, and display statistics.
7. Savings calculator: ask user to enter the amount of his/her saving and interest rate, and
calculate its growth.
Proposal
Discuss with your teammate and decide what to do. Before you start working on the project, you
must tell me about your project and get my approval first.
Think carefully before you decide on anything. Make sure you can finish it in time. Sometimes a
functionality is much harder to implement than you think.
Remember: a finished easy project will get a much higher grade than an unfinished hard project.
Presentation
In the last lecture (5/12/2016), you will present your project in front of the class. The
presentation should be at least 5 minutes long. 10 minutes is the preferred length of your
presentation. Prepare a PPT and cover:
1. Why did you choose to do this project? Why is it interesting?
2. How is this project useful to someone?
3. What technologies did you use (arrays, structures, reading/writing files, random numbers,
loops, classes, etc) for the project?
4. Show important parts in your code to the class, and explain them (how do your loops work?
what are the arrays for? etc.)
5. Did you use any new library functions or technologies that are not covered in the class?
How do they work?
6. Give a live demonstration to the class to show how your software works. Cover as many use
cases as possible.
7. Are there any possible improvements you can make in the future? What did you learn from
the project?
Grading
Your project does not compile, or cannot be
executed
-40%
Your project does not have some functionalities
you promised in the proposal
-20%
Your presentation is too short, or does not cover all
the topics listed in the requirement
-30%
Your code is not clean (wrong indentation, variable
names that do not make sense)
-10%
None of the above
100%
Download