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 Course
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).