Stanford Electrical Engineering

You are here

Hardware/Software Systems

Principles and techniques involved in the design and analysis of systems implemented using hardware and software. This includes computer networks; the architecture and design of computer subsystems including processors, memory systems, input/output, and interconnect; programming systems and compilers; and large software systems including systems handling massive amounts of data, graphics and imaging systems, and distributed web services.

Hardware/Software Systems - Networking

Principles and techniques involved in the design and analysis of networks and network systems, wired and wireless networks. The architecture of the Internet, layering, and new abstractions. The architecture, design and analysis of switches, routers and wireless access points. The design and implementation of low-power wireless protocols and systems, including wireless sensor networks. Queuing, caching and content distribution. Coding, scheduling and cross-layer design. Techniques for inter- and intra-domain routing. Reliable communication and congestion control. Secure network systems, detecting and preventing attacks. Novel applications. For data-centers, wireless networks, wide-area networks, enterprises and the home.

Hardware/Software Systems - Architecture/VLSI

Focuses on creating new architectures and design approaches for the hardware platforms that power our information world. Reducing the dollar and energy cost of computation to broaden application scope and increase scale. Robust architecture and design techniques. Circuit design, design methods and supporting tools. The architecture of parallel computer systems including efficient mechanisms for communication, synchronization, and thread management. Parallel programming systems including domain-specific languages. Hardware/software tradeoffs including specialized hardware structures and the design of compilers and run-time systems supporting novel architectures.

Hardware/Software Systems - Software

Design and implementation of reliable, secure and high performance software. New languages and methodologies for massively parallel programming. Automatically finding software bugs and generating bug-triggering inputs. Large-scale data storage, processing, and querying for both traditional and untraditional data. Novel data-center storage systems. Software and operating system support for programmable devices, such as computational photography, embedded sensors, network switches, and software radios.

Faculty

Dan Boneh, Bill Dally, Dawson Engler, Michael Flynn, Hector Garcia-Molina, Patrick Hanrahan, Mark A. Horowitz, Sachin Katti,Christos Kozyrakis, Philip Levis, Marc Levoy, Ed McCluskey, Nick McKeown, Subhasish Mitra, Boris Murmann, Kunle Olukotun,Mendel Rosenblum, Fouad Tobagi, Jennifer Widom, Bruce Wooley,