Skip to content

Latest commit

 

History

History
164 lines (119 loc) · 10.6 KB

README.md

File metadata and controls

164 lines (119 loc) · 10.6 KB

CSE-resources

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.

Semester Subjects

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.

Algorithm Analysis and Design

  1. Introduction to Algorithms (MIT OCW)
  2. Design and Analysis of Algorithms (MIT OCW)
  3. Algorithms: Design and Analysis (Stanford Lagunita)
  4. Design And Analysis of Algorithms (NPTEL)

Automata Theory

  1. Computer Science - Theory of Computation (NPTEL)
  2. TOC (Ravindrababu Ravula)
  3. Automata Theory (Stanford Lagunita)

Compilers

  1. Compilers (Stanford Lagunita)
  2. Compilers: Theory and Practise (Udacity)

Computer Networks

  1. Computer Networks (Tanenbaum, Wetherall)
  2. Introduction to Computer Networking (Stanford Lagunita)
  3. Computer Networks (Ravindrababu Ravula)
  4. Simulate your network compnenets: Cisco Packet Tracer

Computer Organization and Architecutre

  1. Computer Organization (Bilkent University)
  2. High Performance Computer Architecutre (Udacity)
  3. Computer Architecture and Organization (NPTEL)

Database Management Systems

  1. Database Systems Concepts (Udacity)
  2. 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.
  3. Intro to SQL: Querying and managing data (Khan Academy)
  4. Practise SQL queries: SQL Fiddle

Discrete Mathematics

  1. Mathematics for Computer Science (MIT OCW)
  2. Discrete Mathematics (NPTEL)

Operating Systems

  1. Introduction to Operating Systems (Udacity)
  2. Set of slides, virtual OS, and other OS-related resources: www.os-book.com
  3. Operating Systems (Ravindrababu Ravula)

Software Engineering

  1. Software Development Process
  2. Create UML diagrams: Visual Paradigm

Developer Skills

I have referred to mostly the following resources while trying to gather skills as a CS developer.

Android App Developement

  1. Developing Android Apps (Udacity)

Web Development

Front-End

  1. Intro to HTML/CSS: Making webpages (Khan Academy)
  2. Intro to JS: Drawing & Animation (Khan Academy)
  3. HTML/JS: Making webpages interactive (Khan Academy)
  4. HTML/JS: Making webpages interactive with jQuery (Khan Academy)
  5. Responsive Web Design Fundamentals (Udacity)
  6. Bootstrap 4.1

Back-End

  1. Django Tutorail (The Net Ninja)

Databases

  1. Intro to SQL: Querying and managing data (Khan Academy)
  2. Practise SQL queries: SQL Fiddle

Web-Development Projects

  1. Free Code Camp

Useful software. Brackets, Visual Studio Code, Git Bash

Data Science and Data Analytics

Machine Learning

  1. Machine Learning (Coursera)
  2. Machine Learning (Udacity | Georgia Tech)
  3. Intro to Machine Learninig (Udacity)
  4. Machine Learning in R (edX | Harvard University)

Deep Learning

  1. 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.
  2. Deep Learning (Udacity)

Data Science

  1. 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.

Developer Tools

  1. How to Use Git and GitHub (Udacity)
  2. Wrting READMEs (Udacity)
  3. Linux Command Line (thenewboston)

Programming Languages

Going bottom-up, this list shows resources to learn programming from a comparitively lower level, like C, to a high level lanaguage like Python.

Assembly

  1. Programming Paradigms (Stanford Engineering)
  2. Microprocessors and Microcontrollers (NPTEL)

C

  1. Problem solving through Programming in C (NPTEL)
  2. Programming Paradigms (Stanford Engineering) (requires an exposure in C++)
  3. Tutorials Point

C++

  1. C++ for Programmers (Udacity)
  2. Programming Paradigms (Stanford Engineering)
  3. Programming Abstractions (Accelerated) (Stanfored Engineering)
  4. Tutorials Point

Java

  1. Intro to Java Programming (Udacity)
  2. Programming Methodology (Stanford Engineering)
  3. Tutorials Point

JavaScript

  1. Intro to JS: Drawing & Animation (Khan Academy)
  2. HTML/JS: Making webpages interactive (Khan Academy)
  3. Intro to JavaScript (Udacity)
  4. Advanced JS: Games & Visualizations (Khan Academy)
  5. Advanced JS: Natural Simulations (Khan Academy)

Python

  1. CS50X (HarvardX)
  2. Intro to Computer Science (Udacity)
  3. Introduction to Python for Data Science (edX | Microsoft)

R

  1. Data Science: R Basics (HarvardX)
  2. Data Visualization in R (HarvardX)

Useful YouTube Channels

Here, I list some of the YouTube channels I have used to learn and be updated on CSE contents (in no particular order).

Disclaimer

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.