Final Project

Final Project

The Final Project is the culmination of your OSSU Computer Science journey. It’s an opportunity to validate, consolidate, and showcase your knowledge by applying what you’ve learned to solve real-world problems.

Purpose of the Final Project

Learning is doing. While assignments and exams prepare you to use your knowledge, the final project challenges you to:

  1. Identify a substantial problem that interests you
  2. Design a solution using appropriate technologies
  3. Implement your solution independently
  4. Document your process and results
  5. Showcase your abilities to potential employers or academic institutions

Project Options

You have two main approaches for your final project:

1. Self-Directed Project

Create something entirely new or improve an existing tool/program that you use. The key is to identify a problem that:

  • Is substantial enough to demonstrate your skills
  • Can be completed with reasonable scope
  • Incorporates multiple areas of computer science
  • Genuinely interests you

2. Guided Project Series

If you prefer more structure, choose a project-oriented course series that aligns with your interests. Some options include:

Project SeriesDurationEffortFocus Area
Fullstack Open12 weeks15 hours/weekWeb Development
Modern Robotics Specialization26 weeks2-5 hours/weekRobotics
Data Mining Specialization30 weeks2-5 hours/weekData Science
Big Data Specialization30 weeks3-5 hours/weekBig Data
Internet of Things Specialization30 weeks1-5 hours/weekIoT
Cloud Computing Specialization30 weeks2-6 hours/weekCloud Computing
Data Science Specialization43 weeks1-6 hours/weekData Science
Functional Programming in Scala Specialization29 weeks4-5 hours/weekFunctional Programming
Game Design and Development with Unity6 months5 hours/weekGame Development

Project Requirements

A successful final project should:

  1. Demonstrate competency in multiple CS disciplines
  2. Include a substantial coding component
  3. Solve a non-trivial problem
  4. Be well-documented
  5. Be publicly accessible (e.g., on GitHub)
  6. Include tests and proper error handling
  7. Follow good software engineering practices

Getting Started

  1. Brainstorm ideas that match your interests and skills
  2. Research existing solutions to understand the problem space
  3. Define the scope to ensure the project is achievable
  4. Create a project plan with milestones
  5. Set up your development environment and version control
  6. Start coding with a minimum viable product (MVP) approach
  7. Document as you go, not just at the end
  8. Test thoroughly to ensure quality
  9. Share your work with the community for feedback

Showcase Your Project

Your final project should serve as a portfolio piece that demonstrates your capabilities to potential employers or academic institutions. Consider:

  • Creating a polished README that explains the project
  • Recording a demo video
  • Writing a blog post about your development process
  • Presenting your project at local meetups or online forums

Completing a substantial final project marks your transition from student to practitioner in computer science. It’s the beginning of your professional journey in the field.