Course Information

18-847SH: Special Topics in Computer Systems: Wireless Software System Architecture




This course covers principles of wireless software systems design and explores how the unique characteristics of wireless embedded devices, such as constrained power, connectivity, and compute capabilities, give rise to design trade-offs that differ from conventional software design. Students will: learn the principles of wireless software systems design including programming models, applications, and power awareness; explore how the underlying tradeoffs influence design decisions; become exposed to wireless device and sensor data aggregation, processing, and analysis; apply programming primitives necessary to support IoT applications; and perform quantitative evaluation of design from a performance and energy perspective. Topics covered include programming wireless systems; exploiting concurrency in modern mobile CPUs; models of sensors and actuators; interrupts, timers, polling, I/O, serial and USB communication, I2C, SPI, DMA, and programming abstractions for shared I/O buses; and interfacing embedded systems with the environment. The course emphasizes hands-on learning with three laboratory assignments and a project with an embedded systems board, during which students will apply the knowledge given to real-world problems.

Prerequisites: 18-600 or 18-349 or instructor’s permission.

Last Modified: 2017-06-20 3:06PM

Semesters offered:

  • Fall 2017