← Library
Course · by Yash Tiwari

Computer Fundamentals: Hardware, operating systems, networks and databases, in order

The core of computer engineering in the order that makes it click: how a computer works, then operating systems, networking and database management systems, ending with one request followed through every layer.

  1. 01

    Computer organization

    What the hardware does, so the software above it makes sense.

    0 / 9
    1. 1.1Bits, bytes and number systemsSoon
    2. 1.2Representing text, integers and floating-point numbersSoon
    3. 1.3Logic gates and digital circuitsSoon
    4. 1.4CPU architecture: ALU, registers, control unitSoon
    5. 1.5Instruction sets and the fetch-decode-execute cycleSoon
    6. 1.6Pipelining, superscalar execution and multicoreSoon
    7. 1.7Memory hierarchy: registers, caches, RAM, storageSoon
    8. 1.8I/O devices, buses, interrupts and DMASoon
    9. 1.9Compilation, linking and loadingSoon
  2. 02

    Operating systems: foundations

    What an OS is and how programs run on it.

    0 / 6
    1. 2.1What an operating system doesSoon
    2. 2.2Kernel mode, user mode and system callsSoon
    3. 2.3Processes and the process control blockSoon
    4. 2.4Threads and multithreading modelsSoon
    5. 2.5CPU scheduling algorithmsSoon
    6. 2.6Context switching and interruptsSoon
  3. 03

    Operating systems: concurrency

    Many things at once, correctly.

    0 / 6
    1. 3.1Race conditions and critical sectionsSoon
    2. 3.2Locks, mutexes and spinlocksSoon
    3. 3.3Semaphores, monitors and condition variablesSoon
    4. 3.4Producer-consumer, readers-writers and dining philosophersSoon
    5. 3.5Deadlocks: conditions, prevention and detectionSoon
    6. 3.6Inter-process communication: pipes, shared memory, message queues, socketsSoon
  4. 04

    Operating systems: memory

    Giving each process its own memory.

    0 / 7
    1. 4.1Address spaces, stack and heapSoon
    2. 4.2Contiguous allocation and fragmentationSoon
    3. 4.3Paging and segmentationSoon
    4. 4.4Virtual memory and page tablesSoon
    5. 4.5TLB and address translationSoon
    6. 4.6Page faults and page replacement algorithmsSoon
    7. 4.7Thrashing and the working setSoon
  5. 05

    Operating systems: storage and files

    Persisting data beyond a process.

    0 / 7
    1. 5.1HDDs, SSDs and their access characteristicsSoon
    2. 5.2File systems: files, directories, inodesSoon
    3. 5.3File allocation methods and journalingSoon
    4. 5.4Disk schedulingSoon
    5. 5.5Page cache, buffering and fsyncSoon
    6. 5.6RAID levelsSoon
    7. 5.7Virtualization, hypervisors and containersSoon
  6. 06

    Networking: foundations

    How machines are connected.

    0 / 6
    1. 6.1Networks, packets and protocolsSoon
    2. 6.2OSI and TCP/IP modelsSoon
    3. 6.3Circuit switching, packet switching and latency, bandwidth, throughputSoon
    4. 6.4Physical and data link layers: Ethernet, frames, MAC addressesSoon
    5. 6.5Error detection and correctionSoon
    6. 6.6Switches, ARP and Wi-FiSoon
  7. 07

    Networking: network layer

    Getting a packet across the world.

    0 / 5
    1. 7.1IPv4, IPv6, subnets and CIDRSoon
    2. 7.2Routers, routing tables and forwardingSoon
    3. 7.3Routing protocols: OSPF and BGPSoon
    4. 7.4NAT and DHCPSoon
    5. 7.5ICMP, ping and tracerouteSoon
  8. 08

    Networking: transport layer

    Reliable delivery on an unreliable network.

    0 / 6
    1. 8.1Ports and socketsSoon
    2. 8.2UDPSoon
    3. 8.3TCP connections: handshake and teardownSoon
    4. 8.4TCP reliability: sequence numbers, acknowledgements, retransmissionSoon
    5. 8.5Flow control and congestion controlSoon
    6. 8.6QUIC and HTTP/3Soon
  9. 09

    Networking: application layer

    The protocols programs actually speak.

    0 / 8
    1. 9.1DNSSoon
    2. 9.2HTTP: methods, status codes, headers, cachingSoon
    3. 9.3HTTP/1.1, HTTP/2 and HTTP/3Soon
    4. 9.4TLS, certificates and HTTPSSoon
    5. 9.5WebSockets and server-sent eventsSoon
    6. 9.6SMTP, FTP and SSHSoon
    7. 9.7Load balancers, proxies and CDNsSoon
    8. 9.8Firewalls, VPNs and common attacksSoon
  10. 10

    DBMS: foundations

    Why databases exist and how data is modelled.

    0 / 7
    1. 10.1File systems vs DBMSSoon
    2. 10.2DBMS architecture and data independenceSoon
    3. 10.3Entity-relationship modelSoon
    4. 10.4Relational model: keys and constraintsSoon
    5. 10.5Relational algebraSoon
    6. 10.6SQL: queries, joins, grouping and subqueriesSoon
    7. 10.7SQL: window functions, views, triggers and stored proceduresSoon
  11. 11

    DBMS: design

    Structuring data so it stays correct.

    0 / 4
    1. 11.1Functional dependenciesSoon
    2. 11.2Normal forms: 1NF to BCNFSoon
    3. 11.3Denormalization and when to use itSoon
    4. 11.4Schema design in practiceSoon
  12. 12

    DBMS: storage and indexing

    How a database finds a row quickly.

    0 / 6
    1. 12.1Pages, records and heap filesSoon
    2. 12.2Indexing: primary, secondary and clusteredSoon
    3. 12.3B-trees and B+ treesSoon
    4. 12.4Hash indexesSoon
    5. 12.5LSM treesSoon
    6. 12.6Buffer pool and cachingSoon
  13. 13

    DBMS: query processing

    From a SQL string to a result.

    0 / 3
    1. 13.1Parsing and query optimizationSoon
    2. 13.2Join algorithms: nested loop, hash and sort-mergeSoon
    3. 13.3Cost estimation and reading query plansSoon
  14. 14

    DBMS: transactions

    Many users, one correct database.

    0 / 7
    1. 14.1Transactions and ACIDSoon
    2. 14.2Schedules and serializabilitySoon
    3. 14.3Locking, two-phase locking and timestamp orderingSoon
    4. 14.4Multi-version concurrency controlSoon
    5. 14.5Isolation levels and anomaliesSoon
    6. 14.6Write-ahead logging and crash recoverySoon
    7. 14.7Deadlocks in databasesSoon
  15. 15

    DBMS: distributed databases

    When one database is not enough.

    0 / 5
    1. 15.1ReplicationSoon
    2. 15.2Partitioning and shardingSoon
    3. 15.3CAP theorem and consistency modelsSoon
    4. 15.4Two-phase commit and distributed transactionsSoon
    5. 15.5SQL vs NoSQL and the NoSQL familiesSoon
  16. 16

    Putting it together

    Following one request through every layer.

    0 / 5
    1. 16.1What happens when you type a URLSoon
    2. 16.2Client-server architecture and web serversSoon
    3. 16.3How the OS handles a network connectionSoon
    4. 16.4How a database uses the OS: files, memory, threadsSoon
    5. 16.5From fundamentals to system design, distributed systems and SRESoon