URI CSC 212 logo URI CSC 212

It’s never too early to start thinking about a final project! Final projects are a completely open-ended opportunity for you to demonstrate your deepest understanding of whatever topics you’d like. Final projects are due Thursday, May 6th @ 3:30pm (two weeks after classes end).

If you’re paying attention, you’ll notice that final projects are due on the same day of your final exam AND that the times coincide. Your final exam slot time starts at 3:00pm on the same day– we’ll use the first 25 minutes to answer any last minute questions. You’ll then submit your final project if you haven’t already, take a 5 min breather, and begin your final exam.

Notes on Final Exam

The final exam has been cancelled due to an unfortunate incident of academic dishonesty.

Demonstrating awareness or understanding without a Final Project

Since a lot of you were banking on using the final exam as an oportunity to raise your grade, I am giving students the opportunity to demonstrate awareness and understanding without doing a final project.

Real-world
Analysis
Analyze and explain how a tool or technology uses or could use the umbrella topics you’d like to address. Your analysis can be in written or video format.
Tutorial
Create a tutorial that would help a new learner understand the umbrella topics you’d like to address. Your tutorial can be in written or video format.
Requirements and Grade Breakdown
  1. Be accurate, clear, and easy to understand
  2. Include citations and references
  3. Include resources to learn more
  4. Outline exactly what umbrella topics you’re covering and where
  5. Include a thoroughly explained code snippet or code example (in C++) demonstrating the umbrella topics you’re addressing (for sorting algos or BST analysis, no code is required, instead you should include diagrams as you walk through the analysis)

Analysis and Tutorial submissions are individual (no pairs or groups) and are due Thursday, May 6th @ 3:30pm.

Notes on Final Project

Proposing a Final Project

While submitting a proposal is not required, it is strongly recommended as it will allow you to confirm the scope of your project, ensure you’re on track to meeting all final project requirements (outlined below), will allow you to received feedback and ideas, and will force you to start thinking about the project early rather than the week it’s due (while you’re taking and studying for finals!).

To submit a proposal, please make a post on Piazza with answers to the following questions:

  1. Who are you working with, if anyone (or are you looking for groupmates)?
  2. Brief description of your project (elevator pitch for what it is and how it works)
  3. What topics will you be demonstrating and how (be specific with how you will use and/or demonstrate your chosen topics)
  4. Milestones & Timeline (what major tasks will you accomplish by when)

Your post can be private if you’d like or public if you’re looking for potential groupmates or don’t mind sharing ideas.

Demonstrating Knowledge

Final projects are an opportunity for you to demonstrate how much you know about a topic. Below are the requirements for achieving certain knowledge levels:

For data structures and algorithms
Understanding
Uses appropriate data structures and/or algorithms to complete a task.
Competence
Uses the most appropriate data structures and/or algorithms to complete a task and can explain why said data structure or algorithm is the most appropriate (do this in the README).
Mastery
Uses the most appropriate data structures and/or algorithms to complete a task based on a real-world problem/context/scenario and can explain why said data structure or algorithm is the most appropriate for the task and for the given context/scenario/application (do this in the README).
For analysis
Understanding
Can correctly determine and briefly explain the time complexity of at least two functions.
Competence
Can correctly determine and explain the time complexity of at least three functions.
Mastery
Can correctly determine and thoroughly explain or prove the time complexity of at least three functions.

Final Project Requirements

Language
Must be written in standard C++.
Scope
Scope of project must be significantly broader than that of an assigned lab or deep dive.
Code Compilation
Must compile and execute without any warning or errors.
Code Execution
Program must execute completely without crashing.
Modular/OOP
Functions and classes must be used appropriately to abstract and divvy-up your code (i.e., must follow OOP principles)
Concepts
Should demonstrate a clear ` mastery ` of chosen topics.
README
Project should include a README.txt (or README.md) that answers:
  • Purpose overview: What’s the purpose/use case of this project?
  • Instructions for use: Describe how the user will interact with your program (is there anything the user shouldn’t do? Tell us!)
  • Design overview: How did you choose to represent the aspects of your program (i.e., what data structures did you choose and why)?
  • Code overview: An overview of how your program works, including how all of the pieces fit together
  • Potential bugs: A description of any possible bugs or problems with your program
  • Easter Eggs: A description of any extra features you chose to implement, if any
  • Group: The names of all group members
  • Topic Overview: What topics does your final project demonstrate understanding, competence, or mastery in and how? (See above for explanations required for each level.)