Introduction to EECS II: Digital Communication Systems
An introduction to several fundamental ideas in electrical engineering and computer science, using digital communication systems as the vehicle. The three parts of the course—bits, signals, and packets—cover three corresponding layers of abstraction that form the basis of communication systems like the Internet. The course teaches ideas that are useful in other parts of EECS: abstraction, probabilistic analysis, superposition, time and frequency-domain representations, system design principles and trade-offs, and centralized and distributed algorithms. The course emphasizes connections between theoretical concepts and practice using programming tasks and some experiments with real-world communication channels.
Syllabus
- 1 Lecture 1: Overview: Information and Entropy
- 2 Lecture 2: Compression: Huffman and LZW
- 3 Lecture 3: Errors, Channel Codes
- 4 Lecture 4: Linear Block Codes, Parity Relations
- 5 Lecture 5: Error Correction, Syndrome Decoding
- 6 Lecture 6: Convolutional Codes
- 7 Lecture 7: Viterbi Decoding
- 8 Lecture 8: Noise
- 9 Lecture 9: Transmitting on a Physical Channel
- 10 Lecture 10: Linear Time-Invariant (LTI) Systems
- 11 Lecture 11: LTI Channel and Intersymbol Interference
- 12 Lecture 12: Filters and Composition
- 13 Lecture 13: Frequency Response of LTI Systems
- 14 Lecture 14: Spectral Representation of Signals
- 15 Lecture 15: Modulation/Demodulation
- 16 Lecture 16: More on Modulation/Demodulation
- 17 Lecture 17: Packet Switching
- 18 Lecture 18: MAC Protocols
- 19 Lecture 19: Network Routing (without failures)
- 20 Lecture 20: Network Routing (with failures)
- 21 Lecture 21: Reliable Transport
- 22 Lecture 22: Sliding Window Analysis, Little's Law
- 23 Lecture 23: A Brief History of the Internet
- 24 Lecture 24: History of the Internet cont'd, Course Summary
Course materials
- Course on MIT OpenCourseWare ↗ website