A collection of curated resources for learning Computer Science subjects and skills, that I garnered throughout my tenure as a CSE student. Contributions to this list, and reports of broken links or other errors, are welcome.
The following are resources for most of the subjects I took / am still taking as a CS undergrad in univ. The resources are mainly courses, and additionally some extra useful tools while taking those courses.
- Introduction to Algorithms (MIT OCW)
- Design and Analysis of Algorithms (MIT OCW)
- Algorithms: Design and Analysis (Stanford Lagunita)
- Design And Analysis of Algorithms (NPTEL)
- Computer Science - Theory of Computation (NPTEL)
- TOC (Ravindrababu Ravula)
- Automata Theory (Stanford Lagunita)
- Compilers (Stanford Lagunita)
- Compilers: Theory and Practise (Udacity)
- Computer Networks (Tanenbaum, Wetherall)
- Introduction to Computer Networking (Stanford Lagunita)
- Computer Networks (Ravindrababu Ravula)
- Simulate your network compnenets: Cisco Packet Tracer
- Computer Organization (Bilkent University)
- High Performance Computer Architecutre (Udacity)
- Computer Architecture and Organization (NPTEL)
- Database Systems Concepts (Udacity)
- Database Mini-Courses (Stanford Lagunita) ‐ a set of smaller self-paced "mini-courses", which can be assembled in a variety of ways to learn about different aspects of databases.
- Intro to SQL: Querying and managing data (Khan Academy)
- Practise SQL queries: SQL Fiddle
- Mathematics for Computer Science (MIT OCW)
- Discrete Mathematics (NPTEL)
- Introduction to Operating Systems (Udacity)
- Set of slides, virtual OS, and other OS-related resources: www.os-book.com
- Operating Systems (Ravindrababu Ravula)
- Software Development Process
- Create UML diagrams: Visual Paradigm
I have referred to mostly the following resources while trying to gather skills as a CS developer.
- Developing Android Apps (Udacity)
- Intro to HTML/CSS: Making webpages (Khan Academy)
- Intro to JS: Drawing & Animation (Khan Academy)
- HTML/JS: Making webpages interactive (Khan Academy)
- HTML/JS: Making webpages interactive with jQuery (Khan Academy)
- Responsive Web Design Fundamentals (Udacity)
- Bootstrap 4.1
- Django Tutorail (The Net Ninja)
- Intro to SQL: Querying and managing data (Khan Academy)
- Practise SQL queries: SQL Fiddle
Useful software. Brackets, Visual Studio Code, Git Bash
- Machine Learning (Coursera)
- Machine Learning (Udacity | Georgia Tech)
- Intro to Machine Learninig (Udacity)
- Machine Learning in R (edX | Harvard University)
- Deep Learning Specialization (Coursera). In five courses, you will learn the foundations of Deep Learning, understand how to build neural networks, and learn how to lead successful machine learning projects.
- Deep Learning (Udacity)
- Data Scince (HarvardX). The program covers concepts such as probability, inference, regression, and machine learning and helps you develop an essential skill set that includes R programming, data wrangling with dplyr, data visualization with ggplot2, file organization with Unix/Linux, version control with git and GitHub, and reproducible document preparation with RStudio.
- How to Use Git and GitHub (Udacity)
- Wrting READMEs (Udacity)
- Linux Command Line (thenewboston)
Going bottom-up, this list shows resources to learn programming from a comparitively lower level, like C, to a high level lanaguage like Python.
- Programming Paradigms (Stanford Engineering)
- Microprocessors and Microcontrollers (NPTEL)
- Problem solving through Programming in C (NPTEL)
- Programming Paradigms (Stanford Engineering) (requires an exposure in C++)
- Tutorials Point
- C++ for Programmers (Udacity)
- Programming Paradigms (Stanford Engineering)
- Programming Abstractions (Accelerated) (Stanfored Engineering)
- Tutorials Point
- Code with harry youtube channel (https://www.youtube.com/channel/UCeVMnSShP_Iviwkknt83cww)
- Intro to Java Programming (Udacity)
- Programming Methodology (Stanford Engineering)
- Tutorials Point
- Intro to JS: Drawing & Animation (Khan Academy)
- HTML/JS: Making webpages interactive (Khan Academy)
- Intro to JavaScript (Udacity)
- Advanced JS: Games & Visualizations (Khan Academy)
- Advanced JS: Natural Simulations (Khan Academy)
- Code with harry youtube channel (https://www.youtube.com/channel/UCeVMnSShP_Iviwkknt83cww)
- CS50X (HarvardX)
- Intro to Computer Science (Udacity)
- Introduction to Python for Data Science (edX | Microsoft)
- Code with harry youtube channel (https://www.youtube.com/channel/UCeVMnSShP_Iviwkknt83cww)
- Data Science: R Basics (HarvardX)
- Data Visualization in R (HarvardX)
Here, I list some of the YouTube channels I have used to learn and be updated on CSE contents (in no particular order).
- MIT OpenCourseware
- ieeeComputerSociety
- Free Code Camp
- The Net Ninja
- sentdex
- GeeksforGeeks
- thenewboston
- The Coding Train
- Siraj Raval
- Quentin Watt Tutorials
Please note that I am not promoting any website, channel, or software here. These are only the resources I have used / am still using for my curriculum / developer activities.