This was CS50!
Congratulations on finishing the course! I hope you learned a lot and had fun! I definitely enjoyed being your TF and helping you learn computer science.
As we wrap up the course, I wanted to share some resources to help you continue learning and building projects.
Beyond CS50:
What Courses to Take Next?
Typical Freshman Spring Courses:
- CS20: Discrete Mathematics for Computer Science
- Good for learning about proofs and logic for the 1200-level courses.
- CS51: Abstraction and Design in Computation
- Good for learning about functional programming and software design.
Typical Sophomore Fall Courses:
- CS61: Systems Programming and Machine Organization
- Good for learning about systems programming and computer architecture.
- CS1200: Introduction to Algorithms and their Limitations
- Good for learning about algorithms and complexity theory.
- CS1210: Introduction to Theoretical Computer Science
- Good for learning about theory and proofs at the origin of computer science.
- CS1090A: Data Science I
- Applied course for learning about data science, statistics, and machine learning.
Typical Sophomore Spring Courses:
- CS1240: Data Structures and Algorithms
- Hard and important course for learning about data structures and algorithms.
- CS1810: Machine learning
- Good for learning about theoretical origins of machine learning and AI.
- CS1090B: Data Science II
- Applied course for learning about data science, statistics, and machine learning.
Note: These are just suggestions. You should explore my.harvard, talk to upperclassmen, and find what interests you.
Tools for Building Projects:
Core Tools:
The bread and butter of building projects (see here)…
Some other tools you might find useful…
Web Development:
For building the backend of web applications in Python…
For building the frontend of web applications…
- React: JavaScript library for building user interfaces
- Next.js: JavaScript framework for building web apps
- Often used with React for server-side rendering
- Vue: JavaScript framework for building user interfaces
- Svelte: JavaScript framework for building user interfaces
- Astro: JavaScript framework for building static sites
- Used for this website! :)
Mobile Development:
For building mobile applications…
- React Native: JavaScript framework for building mobile apps
- Dart: Language for building mobile apps
- Flutter: Dart framework for building mobile apps
- Swift: Language for building iOS apps
- Kotlin: Language for building Android apps
Data Science:
For data science and machine learning…
- Pandas: Python library for data manipulation
- NumPy: Python library for numerical computing
- Matplotlib: Python library for data visualization
- Scikit-learn: Python library for machine learning
For deep learning (and advanced ML)…
- TensorFlow: Python library for machine learning
- PyTorch: Python library for machine learning