
EECS Associate Professor Prasad Kulkarni, an NSF CAREER Award Winner, is building more secure and better performing software systems.
EECS researchers design, implement, and verify software and hardware components for high assurance systems. They develop high-level programming language design, language type systems, and specification and verification of language semantics, ensuring highly reliable and secure software. From small embedded elements to large distributed computing environments, the breadth of EECS research addresses all computer systems and aspects of the system lifecycle. Researchers focus on performance, reliability, and power characteristics and their trade-offs to engineer exceptional systems.
Associated Disciplines
Explore: Disciplines
Associated Programs

Primary Research Interests
- Formal Methods, Verification, and Synthesis
- Trusted Computing
- System-Level Design Languages and Semantics
- Specification Languages

Primary Research Interests
- Functional Programming
- Software Engineering
- Compilers
- Systems
- FPGAs

Primary Research Interests
- Compilers
- Virtual Machines
- Runtime Systems
- Computer Architecture

Primary Research Interests
- Digital systems
- Microprocessors
- Embedded Systems

Primary Research Interests
- Operating Systems
- Embedded Real-Time Systems
- Computer Architecture
Associated Facilities
- Smart GDB debugging environment
- C, C++, and GDB and associated support tools
- Rosetta specification language
- Raskell evaluation environment
- PVS, SPIN, Isabelle, HOL, and SAT analysis software
- Protocols for ad-hoc sensor networks
- Xilinx and Altera FPGA/SoC prototyping systems
- Synplicity and Xilinx FPGA synthesis tools
- ModelSim VHDL/Verilog simulation tools
- Bugzilla and CVS project management tools
Hardware and software design tools for:
- Specification languages and semantics
- Language interpreters, analyzers, and compilers
- Real-time and distributed operating systems
- Distributed simulation systems
- Embedded software and hardware systems
- FPGA-based OS primitives
- Reconfigurable Systems-on-Chip
- VHDL/Verilog modeling, simulation, and synthesis
Program Objectives
- Acquire the ability to design, implement, and verify the various software and hardware components in systems whose primary constituents include computers.
- Understand the foundations of high-level programming language design, language type systems, and specification and verification of language semantics.
- Understand the process of generating and running software that realizes the performance, security, privacy, and real-time goals of the underlying problem domain.
- Understand the fundamental principles of operating systems and other runtime environments.
- Understand the design and implementation of modern computer hardware architectures and their performance, reliability, and power characteristics and trade-offs.
Core Coursework (MS)
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
Elective Coursework (MS)
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
|
Explore: EECS Courses