I have completed CS50 successfully and it was great fun. I want to learn more about computer science. What courses are recommended as a follow-up to CS50?
A user on the cs50 subreddit posted a list of suggested courses for those that have completed the class and are looking for more:
I am taking the course right now through edx, which has a Discuss board. Not sure if you have access to that, but here is the list of courses that were suggested by one of the course's staff members for those that have completed the class and are looking for more. This list is expansive and varying, so hopefully there should be something on here that interests you.
The list of courses is very long; here is a sample:
- CS61 (Optimizing Speed)
- CS76 (Building Mobile Applications)
- CS E-1 ((Understanding computers and the internet) )
- CS164 (Mobile Software Engineering)
- CS75 (Web Programming)
- CS259 (XML with Java)
- CS169.1X (Software as a Service)
- CS169.2X (Software as a Service)
- CS171 (Visualization)
- CS188.1X (Artificial Intelligence)
- CS184.1X (Foundations of computer graphics)
- CS191X (Quantum Mechanics and Quantum Computation)
- CS255 (HTML5 Game Development)
- CS291 (Interactive Rendering)
- CS344 (Parallel Programming)
- CS348 (Functional Hardware Verification)
- Algorithms - Design and Analysis
- Algorithms Part-1
- Algorithms Part-2
- M101P (MongoDB for Developers - If you know Python)
- M101J (MongoDB for Java)
- M102 (After you've learned MongoDB 101)
- Semantic Web Technologies
- Natural Language Processing
- Artificial Intelligence Planning
- Functional Programming principles in Scala
- Introduction to Logic
- Probabilistic Graphical Models
- Computer Security
- ER22X - Justice
- Computer Vision
- Discrete Optimization
- Web Intelligence and Big Data
- Learn to program - Crafting Quality Code
- Startup Engineering
- Intro to systematic program design
- FRENCH Class Intro to Object Oriented Programming in Java
- Computer Science 101
- Introduction to interactive programming in Python
- Creative Serious and Playful Science of Android Apps
- The Hardware/Software Interface
- Software defined Networking
- Malicious Software and its malicious economy
- VLSI CAD : Logic to Layout
- General Game Playing
- Cryptography 2
- Coding the matrix (Linear Algebra through computer science)
- CS101 (Building a search engine)
- CS212 (Design of computer programs)
- CS215 (Crunching social networks)
- CS222 (Making Math Matter)
- CS253 (Building a blog)
- CS258 (Making software fail)
- CS259 (Software debugging and automation)
- CS262 (Building a browser)
- CS313 (Dealing with challenging problems)
- CS373 (Programming a robotic car)
- CS387 (Applied Cryptography)
- In memory data management
- Intro to Databases
- UNSW Computing 1 (The art of programming)
- Game Theory
- Learning from Data (Machine Learning)
- Human Computer Interaction
- Programming Languages
- Intro to Computer Networks
You can also refer to The Unofficial Guide to Computer Science at Harvard, which has a "Life after 50" flow chart on pages 6 and 7 showing some popular routes for Harvard students after taking cs50. These courses are not currently available for free on edX but some are offered through the Harvard Extension School.
Also, in case, if you haven't heard about LaunchCode, it is a non-profit organization that creates pathways to economic opportunity and upward mobility through apprenticeships and job placement in technology. LaunchCode partners with over 270 companies, ranging from Fortune 500 companies to up-and-coming startups, and matches them with job seekers through a unique mentorship and paid apprenticeship program.
LaunchCode's CS50x Live is an in-person version of Harvard and edX's Introduction to Computer Science CS50 class, with supplemental coursework to prepare students for jobs in technology. The course gives students a strong foundation upon which to pursue a career in computer programming.
Quoting its 4 main components,
- A 12 week curriculum that supports students through CS50.
- Post-CS50 skill tracks that train students with high-demand skills among local employers.
- A final project that serves as a main portfolio piece that students will be able to show off to LaunchCode and prospective employers.
- Students seeking jobs upon graduation can apply for placement in a job or paid apprenticeship through LaunchCode.
If you're interested in getting a job in tech, acquiring the skills you need to launch your own start-up, or just want to learn more about coding, this class is a fantastic place to start.
Hope you have a great journey ahead.
Check out this post about how to simulate a CS degree with all free online resources.
Intro to Computer Science, pick two of three:
- Introduction to Computer Science and Programming: MIT
- Intensive Introduction to Computer Science: Harvard
- Introduction to Computer Science and Programming Methodology: Stanford
- Programming Abstractions (Second Course in Unit): Stanford
Basic mathematics, pick one of two:
- Mathematics for Computer Science: MIT
- Discrete Mathematics: ArsDigita
- Data Structures and Algorithms, pick one of two:
- Introduction to Data Structures and Algorithms: UNSW
- Introduction to Algorithms: MIT
- Operating Systems and Systems Programming: Berkeley
Programming Languages and Methodologies:
- Programming Paradigms: Stanford
- Computer Architecture: Carnegie Mellon
- Fundamentals of Computer Networking: Manhattan College
- Introduction to Data Communications: Thammasat University
Cryptography and Security:
- Introduction to Cryptography: Ruhr University
- Building Dynamic Websites: Harvard
- Advanced Data Structures: MIT
- Computer System Engineering: MIT
- Principles of Programming Languages: IIT
- Introduction to IT Security: Thammasat University
- Security and Cryptography: Thammasat University
- Bilinear Pairings in Cryptography: BIU
iPhone Application Development: ITU
Android Application Development: ITU
- Artificial Intelligence: HRW
- Artificial Intelligence: Berkeley
- Computer Graphics: Berkeley
- Statistics and Probability: Harvard
- Probabilistic Systems Analysis and Applied Probability: MIT
Also check out the followup post here.
Indeed, CS50’s Introduction To Computer Science is great course.