Well, that's interesting.

SEP 23, 2026 · RESOURCES

CS Fundamentals Learning Resources

CS Fundamentals — Best Learning Resources

A curated resource list for Operating Systems, DBMS, and Computer Networks, with an emphasis on deep understanding, placement preparation, and practical systems knowledge.

How to use this list

Do not try to finish every resource.

For each subject, use:

Primary course/resource
        ↓
Corresponding textbook/notes
        ↓
Practice problems
        ↓
Hands-on implementation (optional but highly valuable)

1. Operating Systems

Recommended learning path

Start with IIT Bombay lectures, then read the matching OSTEP chapters.

You do not need to read all ~600 pages of OSTEP before beginning. IIT Bombay's OS course explicitly maps its lectures to OSTEP chapters and recommends reading those chapters for deeper understanding.

1.1 IIT Bombay — Lectures on Operating Systems ⭐ PRIMARY

Website:
https://www.cse.iitb.ac.in/~mythili/os/

Instructor: Mythili Vutukuru, IIT Bombay

What it contains:

  • Video lectures
  • IIT Bombay lecture slides
  • OSTEP chapter references
  • Practice problems with solutions
  • Programming labs
  • xv6 material
  • Linux exercises
  • Advanced systems topics

Structure:

  • Lectures 1–20: core OS concepts
  • Lectures 21–32: deeper OS concepts using xv6
  • Lectures 33–35: advanced systems topics

Important topics:

  • Processes
  • System calls
  • Process execution
  • CPU scheduling
  • IPC
  • Virtual memory
  • Memory management
  • Concurrency
  • File systems

Best use: Start here. Watch a lecture first, then read the corresponding OSTEP chapter.

Link: https://www.cse.iitb.ac.in/~mythili/os/


1.2 Operating Systems: Three Easy Pieces (OSTEP) ⭐ PRIMARY BOOK

Website:
https://pages.cs.wisc.edu/~remzi/OSTEP/

Authors: Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, University of Wisconsin–Madison

Why use it:

OSTEP organizes operating systems around three major ideas:

Virtualization
     +
Concurrency
     +
Persistence

It covers:

  • Processes
  • Process API
  • CPU scheduling
  • Address spaces
  • Memory management
  • Paging
  • TLBs
  • Threads
  • Locks
  • Semaphores
  • Deadlocks
  • I/O devices
  • File systems
  • Storage
  • Security

The book is freely available online and is designed to teach both the conceptual and practical aspects of operating systems.

Best use: Use it alongside the IIT Bombay lectures. Do not treat the 600+ pages as a checklist to finish before moving on.

Link: https://pages.cs.wisc.edu/~remzi/OSTEP/


1.3 OSTEP Homework and Projects

Website:
https://pages.cs.wisc.edu/~remzi/OSTEP/Homework/homework.html

OSTEP includes simulation-based homework and programming exercises.

These are useful for making concepts such as scheduling, virtual memory, and concurrency concrete.

Best use: After learning a concept, use the corresponding simulation/homework instead of only rereading theory.


1.4 xv6

Reference through IIT Bombay:
https://www.cse.iitb.ac.in/~mythili/os/

IIT Bombay's later OS lectures use xv6, a small teaching operating system, to explore how OS concepts are implemented.

Best use: Do this after understanding the fundamentals.

Suggested progression:

IIT Bombay basic lectures
        ↓
OSTEP
        ↓
xv6
        ↓
Read/trace kernel code

1.5 Nand2Tetris

Official website:
https://www.nand2tetris.org/

Projects:
https://www.nand2tetris.org/course

Official GitHub:
https://github.com/nand2tetris/projects

Nand2Tetris takes a bottom-up approach. You build a computer system from elementary logic gates toward hardware and software, including a basic operating system.

The complete journey contains 12 major projects:

Boolean Logic
Boolean Arithmetic
Memory
Machine Language
Computer Architecture
Assembler
VM
High-Level Language
Compiler
Operating System

Best use: Optional and deeper than what is normally needed for placements. Excellent for understanding how hardware, architecture, compilers, and OS fit together.


1.6 Operating System Concepts — Silberschatz, Galvin, Gagne

Book: Operating System Concepts

This is a traditional comprehensive OS textbook.

Best use: Reference book when you need another explanation or more formal treatment of a topic.

For a placement-focused learner, use OSTEP + IIT Bombay first rather than trying to read this book cover-to-cover.


2. Database Management Systems

Recommended learning path

SQL + relational model
        ↓
ER model
        ↓
Relational algebra
        ↓
Functional dependencies
        ↓
Normalization
        ↓
Transactions + ACID
        ↓
Concurrency control
        ↓
Indexes / B+ trees
        ↓
Query processing
        ↓
Database internals

2.1 CMU 15-445/645 — Intro to Database Systems ⭐ PRIMARY

Official course:
https://15445.courses.cs.cmu.edu/fall2026/

CMU Database Group:
https://db.cs.cmu.edu/courses/

This is a project-oriented course focused on the design and implementation of database management systems.

Topics include:

  • Relational, document, and key/value models
  • Storage models
  • Heap files
  • Log-structured storage
  • Indexes
  • Trees
  • Hash tables
  • Vector indexes
  • Transactions
  • ACID
  • Concurrency control
  • Recovery
  • Logging
  • Checkpoints
  • Joins
  • Sorting
  • Aggregation
  • Query optimization
  • Parallel and distributed systems

The course is especially valuable if you want to understand what happens inside a database rather than only learning SQL.

Best use: Start this after you have basic DBMS and SQL knowledge.


2.2 Database System Concepts — Silberschatz, Korth, Sudarshan

Book: Database System Concepts

CMU 15-445 lists the 7th edition as its textbook.

Useful for:

  • Relational model
  • SQL
  • Database design
  • Transactions
  • Concurrency
  • Recovery
  • Storage
  • Indexing
  • Query processing

Best use: Use it as a reference alongside CMU 15-445.


2.3 Stanford — Database Systems: The Complete Book

Official website:
https://infolab.stanford.edu/~ullman/dscb.html

Authors: Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom

The official Stanford page provides:

  • Sample chapters
  • Slides
  • Lecture notes
  • Database projects
  • Exercises
  • Selected exercise solutions
  • Exams and homework
  • Oracle/database material

Best use: Particularly useful for database theory, relational algebra, SQL, database design, and normalization.


2.4 Stanford — A First Course in Database Systems

Official website:
https://infolab.stanford.edu/~ullman/fcdb.html

A more introductory database resource from Ullman and Widom.

Useful if CMU 15-445 feels too implementation-heavy at first.


2.5 Stanford Database Exercise Solutions

Website:
https://i.stanford.edu/~ullman/dscbsols/sols.html

Contains selected solutions for chapters of Database Systems: The Complete Book.

Best use: Use only after attempting exercises yourself.


3. Computer Networks

Recommended learning path

Internet basics
      ↓
Application layer
      ↓
HTTP
      ↓
DNS
      ↓
Transport layer
      ↓
UDP
      ↓
TCP
      ↓
Congestion control
      ↓
IP
      ↓
Routing
      ↓
Link layer
      ↓
Wireless
      ↓
Network security

3.1 Kurose & Ross — Computer Networking: A Top-Down Approach ⭐ PRIMARY

Official website:
https://gaia.cs.umass.edu/kurose_ross/

The current official site is for the 9th edition.

The book uses a top-down approach, beginning with applications and then moving toward lower network layers.

Major topics:

  • Internet architecture
  • Application layer
  • HTTP
  • DNS
  • Email
  • Transport layer
  • UDP
  • TCP
  • Congestion control
  • Network layer
  • IP
  • Routing
  • Link layer
  • Ethernet
  • Wireless
  • Network security

Best use: This should be your main networking textbook.


3.2 Kurose & Ross Online Lectures

Online lectures:
https://gaia.cs.umass.edu/kurose_ross/online_lectures.htm

Provides online lecture material organized by chapter.

Chapters include:

  • Computer Networks and the Internet
  • Application Layer
  • Transport Layer
  • Network Layer — Data Plane
  • Network Layer — Control Plane
  • Link Layer
  • Wireless and Mobile Networks
  • Network Security

Best use: Watch/learn the topic and then read the corresponding textbook chapter.


3.3 Kurose & Ross Knowledge Checks

Website:
https://gaia.cs.umass.edu/kurose_ross/knowledgechecks/

Interactive questions are available by chapter and section.

Best use: Use these after each chapter to check whether you actually understand the material.


3.4 Kurose & Ross Videos

Chapter 1:
https://gaia.cs.umass.edu/kurose_ross/videos/1/

Chapter 2 — Application Layer:
https://gaia.cs.umass.edu/kurose_ross/videos/2/

Chapter 3 — Transport Layer:
https://gaia.cs.umass.edu/kurose_ross/videos/3/

Chapter 4 — Network Layer/Data Plane:
https://gaia.cs.umass.edu/kurose_ross/videos/4/

Chapter 5 — Network Layer/Control Plane:
https://gaia.cs.umass.edu/kurose_ross/videos/5/

Chapter 6 — Link Layer:
https://gaia.cs.umass.edu/kurose_ross/videos/6/

Chapter 7 — Wireless and Mobile Networks:
https://gaia.cs.umass.edu/kurose_ross/videos/7/


3.5 Stanford CS144 — Introduction to Computer Networking

Course:
https://cs144.github.io/

Stanford course information:
https://bulletin.stanford.edu/courses/2075241

CS144 focuses heavily on practical networking.

Topics include:

  • Packet switching
  • Layering
  • Routing
  • Reliable delivery
  • TCP
  • Flow control
  • Congestion control
  • Ethernet
  • Internet addressing

Students implement significant portions of Internet/TCP-IP software in C/C++.

Best use: Do this after learning networking fundamentals from Kurose & Ross.


3.6 Berkeley CS168 — Introduction to the Internet

Course:
https://cs168.io/

Course description:
https://www2.eecs.berkeley.edu/Courses/CS168/index.html

Textbook/notes:
https://textbook.cs168.io/

GitHub source:
https://github.com/berkeley-cs168/textbook

Topics include:

  • Layering
  • Addressing
  • Routing
  • Reliable delivery
  • Congestion control
  • TCP
  • UDP
  • IP
  • DNS
  • HTTP
  • Ethernet
  • Wireless

Best use: Excellent advanced networking material after Kurose & Ross.


4. Computer Systems — The Bridge Between OS, Hardware and Networking

4.1 CS:APP — Computer Systems: A Programmer's Perspective ⭐ BONUS

Official website:
https://csapp.cs.cmu.edu/

Book perspective:
https://csapp.cs.cmu.edu/3e/perspective.html

Authors: Randal E. Bryant and David R. O'Hallaron, Carnegie Mellon University

This is a very useful bridge between:

C
 ↓
Machine code
 ↓
CPU
 ↓
Memory
 ↓
Processes
 ↓
Virtual memory
 ↓
I/O
 ↓
Networking
 ↓
Concurrency

The book takes a programmer's perspective rather than teaching systems only from the perspective of someone building the hardware or OS.

Best use: Very useful after/between OS and networking study, especially for someone interested in backend and systems programming.


5. Placement Revision / Quick Reference

GitHub — CS Fundamentals

Repository:
https://github.com/Krishnagangwal/CS-Fundamentals

A curated collection aimed at placement preparation.

Contains folders/resources for:

  • Operating Systems
  • DBMS and SQL
  • Computer Networks
  • DSA
  • OOP
  • System Design
  • Software Engineering
  • Interview questions
  • Short notes

Best use: Revision and interview preparation.

Do not use this as your primary learning source. Use proper courses/books first, then use this type of repository for quick revision.


6. Recommended Stack — Short Version

If you don't want to use everything above, use this:

SubjectPrimarySecondaryPractice
OSIIT Bombay OSOSTEPOSTEP homework + xv6
DBMSCMU 15-445Database System ConceptsSQL + BusTub
CNKurose & RossStanford CS144Wireshark + networking projects
SystemsCS:APP—Programming exercises

7. Recommended Order for Placement + Real Understanding

Operating Systems

IIT Bombay Lectures 1–20
        ↓
OSTEP corresponding chapters
        ↓
Practice problems
        ↓
IIT Bombay xv6 lectures
        ↓
xv6

Must-know OS topics

  • Processes
  • System calls
  • Process states
  • Context switching
  • CPU scheduling
  • Threads
  • Race conditions
  • Critical sections
  • Mutex/locks
  • Semaphores
  • Deadlocks
  • Virtual memory
  • Paging
  • Page tables
  • TLB
  • Page replacement
  • File systems
  • I/O

DBMS

SQL
 ↓
ER Model
 ↓
Relational Algebra
 ↓
Functional Dependencies
 ↓
Normalization
 ↓
Transactions
 ↓
ACID
 ↓
Concurrency
 ↓
Indexes
 ↓
B+ Trees
 ↓
Query Processing
 ↓
CMU 15-445
 ↓
BusTub

Computer Networks

Kurose & Ross
      ↓
Knowledge Checks
      ↓
Wireshark
      ↓
Stanford CS144
      ↓
Berkeley CS168

Must-know networking topics

  • OSI/TCP-IP models
  • HTTP/HTTPS
  • DNS
  • TCP
  • UDP
  • TCP handshake
  • TCP reliability
  • Flow control
  • Congestion control
  • IP addressing
  • Subnetting
  • NAT
  • ARP
  • Routing
  • Ethernet
  • DHCP
  • TLS basics

8. Final Recommendation

Don't try to consume all of these.

For your first pass, use:

OS

IIT Bombay → OSTEP → problems → xv6

DBMS

SQL fundamentals → CMU 15-445 → Database System Concepts → BusTub

CN

Kurose & Ross → Knowledge Checks → Wireshark → CS144

Later

CS:APP → deeper systems understanding

The goal is not:

"I completed 600 pages."

The goal is:

"I can explain the concept, solve a problem about it, and understand what is happening underneath."


Source Notes

All major course/book links above point to official university, author, publisher, or project sources where available. In particular: