Capstone Coding Project Description¶
For this project, you will be completing two outcomes for this course:
CS30-CAP1 Create a large-scale computer program to demonstrate proficiency in procedural or object-oriented programming.
CS30-CAP2 Reflect on and document the process of creating a large-scale computer program.
Project Overview¶
Choose a project that is of an appropriate scale and complexity based on the skills and abilities of team members.
Identify required (must have) features and desired (nice to have) features of the project.
Create a project proposal that includes the basic premise, required features (must have list), desired features (nice to have list) and project team (e.g., individual, pairs or larger group).
Incorporate programming concepts and principles such as data structures, external files, libraries and/or object-oriented programming as required.
Develop and revise project documents such as team member tasks and/or milestone timeline.
Develop elegant code and refine through multiple iterations.
Commit project code to GitHub each day that we have project work time during class (or more frequently, if desired).
Integrate code from multiple team members as required.
Conduct beta testing with peers and/or external participants as required, and record the results (either in a separate file, or as inline comments).
Incorporate feedback from peers and/or external participants as required.
Revise the scale and complexity of the project according to skill, available resources and available time.
Confirm that the project incorporates all required features.
Identify how specific programming challenges were resolved.
Present completed capstone project to peers and/or external participants.
Evaluation¶
- Proposal
Includes “need to have” and “nice to have” list
5 marks
- Daily GitHub Commit History
Can see progress over time with commits
5 marks
- GitHub Commit Summary Comments
Commit summary comments describe the progress made. Can easily tell what has been accomplished in a commit
5 marks
- Time Management
Used all class time wisely
10 marks
- Coding Conventions
Variable names follow JavaScriptConventionalNames. Whitespace is used appropriately. ESLint does not give any errors/warnings
5 marks
- Internal Documentation
Includes comment header and code is well commented (not too much, not too little)
10 marks
- Functionality
All “need to have” functionality has been implemented
15 marks
- Use of Ideas Learned in CS30
Incorporate ideas such as data structures (arrays, maps), external files, libraries and/or object-oriented programming as required
15 marks
- Presentation of project to class
6 to 8 minute presentation to the class on your project. Excellent presentation, showing both what you did and how you did it. Talks about challenges they encountered throughout the project
10 marks
- Beta Testing
Testing was conducted and is documented in a beta-testing.md file
5 marks
- Reflection
Answer questions like the following:
what advice would you give to yourself if you were to start a project like this again?
did you complete everything in your “needs to have” list?
What was the hardest part of the project?
Were there any problems you could not solve?
5 marks
- WOW ME factor
What did you do to go “above and beyond” the basics?
10 marks
Total Marks: 100