Courses taught by Prof. Swarup Bhunia                                                                              


Undergraduate Courses
ECS 397: Hardware Security (Spring, Undergraduate Course, Introduced by Prof. Bhunia)
Security of computer hardware, in the domain of both general purpose and embedded systems, has emerged as a major concern. New generation of attacks by the hardware hackers and countermeasures to these attacks are rapidly emerging. To enable secure, trust-worthy operation of computer hardware, it is important to understand the security issues and incorporate appropriate security measures during design, verification, test, and deployment. This course aims at providing comprehensive coverage on security issues in computer hardware covering topics such as cryptography, hardware Trojan, side-channel information leakage, hardware IP protection against piracy and reverse-engineering, and security in embedded systems including software infection or bus snooping. After completing this course, students will be able to analyze and validate computer hardware for security and build secure hardware for trustworthy computing. The course will include five group projects on hands-on hardware security, where the students will hack a hardware mopdule, a 32-bit RISC processor, using an Altera FPGA board. The projects will help understand different attack modes and ways to protect against them. Students can be creative to launch their own attacks! The final project will have a challenge session, "Can you Hack It?" Recommended preparation: Logic Design and Computer Organization (EECS 281).
FSNA 137: Volts, Amps, Bits, Bytes (Fall, Undergraduate Course, Co-developed by Prof. Bhunia)
First seminar course for freshman. The electrical grid, the computer, biomedical devices, electric vehicles, interactive art, and smart homes are a few examples of the pervasiveness of electronics and computer technology. This seminar will introduce the engineering design process, and present the basics of electricity, electronic circuits, measurement, sensors, and microcomputers (the Arduino), and how to use them to design and build useful devices. Students will reverse-engineer products, learn electrical and mechanical prototyping and fabrication, and apply them in a variety of hands-on labs. The course will conclude with students proposing, designing, and prototyping innovative design projects. The course will make extensive use of the Sears Design Lab and Think[box] and is writing intensive.
EECS 314: Computer Architecture (Spring, Undergraduate course)
This course provides students the opportunity to study and evaluate a modern computer architecture design. The course covers topics in fundamentals of computer design, performance, cost, instruction set design, processor implementation, control unit, pipelining, communication and network, memory hierarchy, computer arithmetic, input-output, and an introduction to RISC and superscalar processors. Recommended preparation: Logic Design and Computer Organization (EECS 281).
EECS 301: Digital Design Laboratory (Fall, Undergraduate course)
This course is an introductory experimental laboratory for digital networks. The course introduces students to the process of design, analysis, synthesis and implementation of digital networks. The course covers the design of combinational circuits, sequential networks, registers, counters, synchronous/asynchronous Finite State Machines, register based design, and arithmetic computational blocks. Recommended preparation: Logic Design and Computer Organization (EECS 281).
Graduate Courses
EECS 495: Nanometer VLSI Design (Fall, Graduate Course, Introduced by Prof. Bhunia)
Semiconductor industry has evolved rapidly over the past four decades to meet the increasing demand on computing power by continuous miniaturization of devices. Now we are in the nanometer technology regime with the device dimensions scaled below 100nm. VLSI design using nanometer technologies involves some major challenges. This course will explain all the major challenges associated with nanoscale VLSI design such as dynamic and leakage power, parameter variations, reliability and robustness. The course will present modeling and analysis techniques for timing, power and noise in nanometer era. Finally, the course will cover the circuit/architecture level design solutions for low power, high-performance, testable and robust VLSI system. The techniques will be applicable to design of microprocessor, digital signal processor (DSP) as well as application specific integrated circuits (ASIC). The course includes a project which requires the student to work on a nanometer design issue. Recommended preparation: VLSI Systems (EECS 426) or MOS Integrated Circuit Design (EECS 485).
EEL 4930: Introduction to Hardware Security and Trust (Spring, Graduate Course, Introduced jointly by Prof. Bhunia, Prof. Forte and Prof. Tehranipoor)
This course covers the following topics: Cryptographic processor and processing overhead analysis, physical and invasive attacks, side-channel attacks, physically unclonable functions, hardware-based true random number generators, watermarking of Intellectual Property (IP) blocks, FPGA security, passive and active metering for prevention of piracy, access control, hardware Trojan detection and isolation in IP cores and integrated circuits (ICs). The course is self contained. Background on digital design would be sufficient. Introductory lectures will cover basic background on cryptography, authentication, secret sharing, VLSI design, test and verification.
EEL 6935: Cybersecurity Case Studies (Spring, Graduate Course, Introduced by Prof. Bhunia)
The course covers real-life cyberattacks through a set of case studies and in-depth analysis of these attacks in terms of underlying causes � i.e. vulnerabilities and exploitations; the associated social/political/economical impact; and technical, legal, policy solutions to deal with them. These topics will be covered through a set of students� presentations and guest lectures. The course will be rich in literature survey and reading. Students will be expected to read, analyze, think and talk. They will also be leading discussions and writing reports on various topics on cybersecurity.
EEL 5934: Hardware Security Lab (Fall, Graduate Course, Introduced by Prof. Bhunia)
This lab course focuses on the hands-on learning of computer hardware security. The course will follow a distinctive hands-on teaching approach using a well-designed set of experiments as learning tool. Students will be able to “hack” a system at different levels and analyze different countermeasures for major hardware attacks.
EEE 6323: VLSI Circuits and Technology 2 (Spring, Graduate Course)
This course focuses on Advanced AVLSI, testability, and performance evaluation, industrial VLSI CAD software and building advanced CMOS VLSI circuits. Students will be able to develop a basic understanding of CMOS integrated circuit design, SoC architecture and design, low power CMOS design, testable SoC design methods and develop proficiency in analysis, design andimplementation of CMOS circuits.