Beyond CS50: Projects and Courses

courses
github
vscode
git
version control
collaboration

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:

Typical Sophomore Fall Courses:

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)…

  • GitHub: Version control and collaboration
  • VS Code: A powerful code editor

Some other tools you might find useful…

Web Development:

For building the backend of web applications in Python…

  • Flask: Python web framework
  • Django: Python web framework

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