Home / Intro to EECS II: Digital Communication Systems (Fall 2019)

You are not logged in.

If you are a current student, please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.csail.mit.edu) to authenticate, and then you will be redirected back to this page.

Learning Objectives

6.02 is 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 cover three corresponding layers of abstraction relevant to the system:
  1. Bits: binary representation, compression (source coding), and error correction (channel coding) for messages transmitted across a noisy link
  2. Signals: signal representation of binary messages for transmission across a shared physical channel subject to distortion and noise
  3. Packets: efficient, reliable communication across networks made up of multiple links.
Topics investigated in depth include:
  1. Bits: information and entropy, Huffman coding and LZW compression, error correction with linear block codes and convolutional codes (Viterbi decoding)
  2. Signals: Additive Gaussian noise and the relationship between noise variance and bit errors, linear-time invariant channel models, frequency-domain (Fourier) analysis, spectral content of signals and filtering, modulation & demodulation
  3. Packets: Media access protocols (TDMA, Aloha, and carrier sense), packet-switched networks, queues, and Little's law; network routing (distance/path vector and link-state protocols); and reliable data transport (adaptive timers, stop-and-wait, sliding windows, round-trip time and bandwidth-delay product concepts).

These topics 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.

At the end of the course, a successful student will understand these topics and be able to apply them to the design and analysis of communication systems and networks. In particular, they will appreciate how to build reliable and efficient communication systems: cleverly applying redundancy for reliability and cleverly sharing via multiplexing channels, links, and paths for efficiency.