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:
- Identify a substantial problem that interests you
- Design a solution using appropriate technologies
- Implement your solution independently
- Document your process and results
- 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 Series | Duration | Effort | Focus Area |
|---|---|---|---|
| Fullstack Open | 12 weeks | 15 hours/week | Web Development |
| Modern Robotics Specialization | 26 weeks | 2-5 hours/week | Robotics |
| Data Mining Specialization | 30 weeks | 2-5 hours/week | Data Science |
| Big Data Specialization | 30 weeks | 3-5 hours/week | Big Data |
| Internet of Things Specialization | 30 weeks | 1-5 hours/week | IoT |
| Cloud Computing Specialization | 30 weeks | 2-6 hours/week | Cloud Computing |
| Data Science Specialization | 43 weeks | 1-6 hours/week | Data Science |
| Functional Programming in Scala Specialization | 29 weeks | 4-5 hours/week | Functional Programming |
| Game Design and Development with Unity | 6 months | 5 hours/week | Game Development |
Project Requirements
A successful final project should:
- Demonstrate competency in multiple CS disciplines
- Include a substantial coding component
- Solve a non-trivial problem
- Be well-documented
- Be publicly accessible (e.g., on GitHub)
- Include tests and proper error handling
- Follow good software engineering practices
Getting Started
- Brainstorm ideas that match your interests and skills
- Research existing solutions to understand the problem space
- Define the scope to ensure the project is achievable
- Create a project plan with milestones
- Set up your development environment and version control
- Start coding with a minimum viable product (MVP) approach
- Document as you go, not just at the end
- Test thoroughly to ensure quality
- 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.