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?
-
If you're interested, curious and love solving intellectual puzzles in c++, come to quests.nonlinearmedia.org - A tiger named Fangs will let you in. Find fun and support at reddit.com/r/cs2a, 2b or 2c. & – Anand Venkataraman Nov 11 '20 at 17:40
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:
- CS51
- 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)
- CS121
- 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)
- MIT-6.00.1X
- 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
- Compilers
- 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)
- Automata
- 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
- CS106A
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.
-
-
-
That user is not a staff member, but the list provided is suggested by a staff member(as that user quotes in his answer). Do you feel that I should delete this answer or you can edit this if there is a better way to answer this. – sinister Sep 17 '14 at 17:06
-
The best way to fix "link-only" answers is to add information directly in the answer, for example as a quote. I would be happy to help you do this. As for the suggestions, unless we can provide direct evidence that staff said it, I think we should be careful about what we say. – Air Sep 17 '14 at 17:11
-
Check out this post about how to simulate a CS degree with all free online resources.
Introductory Courses
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
Core Courses
- Data Structures and Algorithms, pick one of two:
- Introduction to Data Structures and Algorithms: UNSW
- Introduction to Algorithms: MIT
Operating Systems:
- Operating Systems and Systems Programming: Berkeley
Programming Languages and Methodologies:
- Programming Paradigms: Stanford
Computer Architecture:
- Computer Architecture: Carnegie Mellon
Networking:
- Fundamentals of Computer Networking: Manhattan College
Data Communications:
- Introduction to Data Communications: Thammasat University
Cryptography and Security:
- Introduction to Cryptography: Ruhr University
Electives
Web Development:
- Building Dynamic Websites: Harvard
Data Structures:
- Advanced Data Structures: MIT
Systems:
- Computer System Engineering: MIT
Programming Languages:
- Principles of Programming Languages: IIT
Security:
- Introduction to IT Security: Thammasat University
- Security and Cryptography: Thammasat University
Cryptography:
- Bilinear Pairings in Cryptography: BIU
App Development:
iPhone Application Development: ITU
Android Application Development: ITU
Artificial Intelligence:
- Artificial Intelligence: HRW
- Artificial Intelligence: Berkeley
Graphics:
- Computer Graphics: Berkeley
Math:
- 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.
-
This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post. - From Review – Antoine Wood Aug 15 '20 at 8:43