This site is open source. Improve this page.

Emulation of an Undergraduate CS* Curriculum

This is another list on the internet (among thousands of others) that compiles courses and books from various sources to help you achieve your self-study goals.

*CS = Computer Science (if you're wondering!)

Palestinian LoFi Girl by Nadin Burqan

artwork by Nadin Burqan (License)

Background

I completed my undergraduate degree (B. Tech IT) in 2022. Due to COVID-19, I (we) spent almost half of my (our) college days at home, attending online lectures. Even though it was hard at first, people adapted to the situation pretty quickly and pretty well. Given that experience, I can now say that it is indeed possible to learn stuff by ourselves with enough discipline and willpower. Hence, one fine day, I decided to make a list that took freakin' forever to make!

Is this a substitute for college education?

Now, don't get me wrong! This list is by no means a substitute for a real college education. I've seen the best of both worlds, and this is just an attempt to provide you the best of one of those worlds. I strongly suggest you get a college education if you have the necessary resources. You can learn things by yourself anytime at your will, but you can't say the same about college education. The peers and the teaching assistance that you get are invaluable. We often undervalue the elements of teamwork, conflict management and sharing responsibilities that a college education provides. The other thing is we can only do so much with our willpower. It drains out pretty fast (sad emoji). So, college > self-learning for most people.

Target audience

Both beginners and experienced professionals can make use of this list. This gives you an overall picture (that I didn't have back then) of how the foundational subjects are connected and some of the best (mostly free) resources to teach those subjects to yourself. This list can save you from the search spiral for the best resources on the internet. Pick a course from the lot and go to depths no one had ever reached.

This list is by no means exhaustive. It is more like a stripped-down version of a UG program. The myriad of electives, majors and minors are all gone.

Getting the best out of these resources

Stop treating video lectures as your primary resource. Of course, they are helpful, but learning doesn't happen there. Take time to solve the problem sets or exercises that come along with a course or a book. Real learning happens when you put effort into solving them and while you sleep (you must sleep well - extremely important). The problems you work on shouldn't be too hard or too easy. The problem should feel hard and doable (find a sweet spot), and it is absolutely fine to look at a solution sometimes.

Take it easy! Not every day is a good day, and that's okay. Come back tomorrow and start again. You can succeed in this only if you enjoy what you're doing.

Flow diagram

Get a copy (light, light and transparent, dark, dark and transparent)

Flowchart (light)

  1. We don't have an accurate measure of the time necessary to complete the courses. So, I've used "Levels" to suggest the hierarchy (contrary to the semester system that a typical college uses). 

  2. The arrows might not be very accurate in representing the flow. So, take it with a pinch of salt. It is okay to move to a subject that's not connected. Just be wary of the requisites of a particular course. 

  3. The bridge courses are particularly unique. They are a list of courses that connect subjects across disciplines. Go through their course pages to see if it is suitable for you.

Resources

Since the flow diagram categorises the subjects in "levels", I've refrained from doing that again here. The subjects are grouped by their discipline instead.

Table of Contents

Requisite

Pure Science

Continuous Mathematics

Primary

Additional

Linear Algebra

Primary

Additional

Discrete Mathematics

Primary

Additional

Probability

Primary

Additional

Physics

Primary

Additional

Chemistry

Primary

Additional

Electrical Engineering

Circuits And Electronics

Primary

Additional

Bridge Courses I

Signals and Systems

Primary

Additional

Computer Science (level 1, 2 and 3)

Programming

Primary

Additional

Data Structures and Algorithms

Primary

Additional

Computer Architecture

Primary

Additional

Database Management Systems

Primary

Additional

Operating Systems

Primary

Additional

Computer Networks

Primary

Additional

Computer Science (level 4 and 5)

Theory of Computing

Primary

Additional

Artificial Intelligence

Primary

Additional

Parallel Programming

Primary

Additional

Software Architecture

Primary

Additional

Bridge Courses II

Compilers

Primary

Additional

Machine Learning

Primary

Additional

Distributed Systems

Primary

Additional

Embedded Systems

Primary

Additional

Security

Primary

Additional

Computer Science (level 6 and more)

Computer Graphics

Cloud Computing

Web Technologies

Advanced Data Structures and Algorithms

Others

Software Engineering

Ethics

References

I had to look through a ton of websites and forum pages to find and build this list. I'll put out some of them here. There is a high chance that they might serve your needs even better.

Similar Compilation

Computer Science course catalogues from Universities

FIN