Capstone Coding Project Description

For this project, you will be completing two outcomes for this course:

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

Next Section - Capstone Coding Project Exemplars