17

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?

23

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:

  1. CS51
  2. CS61 (Optimizing Speed)
  3. CS76 (Building Mobile Applications)
  4. CS E-1 ((Understanding computers and the internet) )
  5. CS164 (Mobile Software Engineering)
  6. CS75 (Web Programming)
  7. CS259 (XML with Java)
  8. CS121
  9. CS169.1X (Software as a Service)
  10. CS169.2X (Software as a Service)
  11. CS171 (Visualization)
  12. CS188.1X (Artificial Intelligence)
  13. CS184.1X (Foundations of computer graphics)
  14. CS191X (Quantum Mechanics and Quantum Computation)
  15. CS255 (HTML5 Game Development)
  16. CS291 (Interactive Rendering)
  17. CS344 (Parallel Programming)
  18. CS348 (Functional Hardware Verification)
  19. MIT-6.00.1X
  20. Algorithms - Design and Analysis
  21. Algorithms Part-1
  22. Algorithms Part-2
  23. M101P (MongoDB for Developers - If you know Python)
  24. M101J (MongoDB for Java)
  25. M102 (After you've learned MongoDB 101)
  26. Semantic Web Technologies
  27. Natural Language Processing
  28. Artificial Intelligence Planning
  29. Compilers
  30. Functional Programming principles in Scala
  31. Introduction to Logic
  32. Probabilistic Graphical Models
  33. Computer Security
  34. ER22X - Justice
  35. Computer Vision
  36. Discrete Optimization
  37. Web Intelligence and Big Data
  38. Learn to program - Crafting Quality Code
  39. Startup Engineering
  40. Intro to systematic program design
  41. FRENCH Class Intro to Object Oriented Programming in Java
  42. Computer Science 101
  43. Introduction to interactive programming in Python
  44. Creative Serious and Playful Science of Android Apps
  45. The Hardware/Software Interface
  46. Software defined Networking
  47. Malicious Software and its malicious economy
  48. VLSI CAD : Logic to Layout
  49. General Game Playing
  50. Cryptography 2
  51. Coding the matrix (Linear Algebra through computer science)
  52. Automata
  53. CS101 (Building a search engine)
  54. CS212 (Design of computer programs)
  55. CS215 (Crunching social networks)
  56. CS222 (Making Math Matter)
  57. CS253 (Building a blog)
  58. CS258 (Making software fail)
  59. CS259 (Software debugging and automation)
  60. CS262 (Building a browser)
  61. CS313 (Dealing with challenging problems)
  62. CS373 (Programming a robotic car)
  63. CS387 (Applied Cryptography)
  64. In memory data management
  65. Intro to Databases
  66. UNSW Computing 1 (The art of programming)
  67. Game Theory
  68. Learning from Data (Machine Learning)
  69. Human Computer Interaction
  70. Programming Languages
  71. Intro to Computer Networks
  72. 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.

| improve this answer | |
  • And that user is not a staff member. – Air Sep 17 '14 at 16:59
  • 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
  • I have no idea why 34th is quoted. – sinister Sep 23 '14 at 9:26
9

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.

| improve this answer | |
0

Indeed, CS50’s Introduction To Computer Science is great course.

| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .