Software directs the countless computing devices that permeate our lives, instructing what to compute, how to assist, and coordinating the many interconnected sources of information we rely upon. This thread explores how software systems are created to do this—from controlling small scale embedded microarchitectures to large-scale data centers, and from tracking personal fitness to coordinating distributed technology in smart cities. For instance, how do we orchestrate a massive array of computers to accelerate the search for new pharmaceuticals or immunotherapies? How can we share knowledge with each other and collaborate through cloud services while maintaining consistency, accessibility, and security? How does a network of smart cameras seamlessly track an Olympic ice skater or skier during a fast-paced event? How do we coordinate geographically dispersed, interconnected devices in smart cities, farms, and forests, that balance computing locally ("on the edge") with leveraging shared information globally ("in the cloud") to achieve performance and energy efficiency? Engineers in these areas work closely with experts in computing hardware and networks to both harness the power of emerging technologies and to drive new hardware advances to meet computational needs.

Sample of related career paths:

  • Software Engineering (Microsoft, IBM, Apple, Facebook, NCR, Delta Airlines, Adobe, nearly every industry)
  • Cloud computing (Google, Amazon AWS, Microsoft Azure, Dropbox, IBM, etc.)
  • Edge computing (Cloudflare, ARM, Ericsson, Mutable, Oracle, HP, IBM, Microsoft, Dell, Cisco, etc.)
  • IoT, Smart homes, cities, farms, forests (Honeywell, Cisco, Siemens, Hitachi, Ericsson, Toshiba, Oracle, CropX, Arable, and many more)
  • Self-driving cars, including fleet navigation (Intel, Waymo, Uber, Tesla, and most automotive companies)
  • Climate modeling (NASA, Lawrence Livermore National Laboratory, etc)
  • Aerospace (Lockheed Martin, SpaceX, Boeing, JPL, NASA, etc.)
  • Virtual and augmented reality (Oculus, Samsung, Magic Leap, WorldViz, Google, Unity, Nvidia, etc.)
  • Concurrent systems, including accelerating CGI, AI, gaming systems (Nvidia, AMD, Intel, Asus, etc)
  • Assistive technologies (Orcam, Panasonic, Honda, Tobii Technology, etc.)
  • Sport performance analysis (ESPN, NBC/CBS/Fox Sports, etc.)


Required Courses
Courses Hours
CS 3251 - Computer Networking 3
Pick 3 of DSSD Topics
CS 4220 - Programming Embedded Systems 3
ECE 4122 - Adv Prog Techniques 3
ECE 4795 - GPU Programming for Video Games 3
ECE 4150 - Cloud Computing 3
ECE 4180 - Embedded Systems Design 4
CS 4605 - Mobile and Ubiquitous Computing 3
CS 3651 - Building Intelligent Appliances 4