Teaching

I teach a range of classes from computer architecture, VLSI design, low-power computing, robot system design, and digital logic. Here is a sample from the past few years.

Fall 2020: Topics in Computing with Emerging Technologies(CSCI 2952J/ENGN 2952J)

In the past, computer system performance was driven by improvements in silicon fabrication technology. However, a number of promising candidates for new basic technologies have emerged recently, including single-molecule organic switches and non-volatile memory structures. This course will consider how these new basic devices will affect our past assumptions about computing from both hardware and software perspectives. Class will include a mix of lectures and discussion on assigned reading of recent publications. Students will be responsible for leading and participating in these discussions. A course project will also be required.


Fall 2019: Digital Electronics System Design (ENGN 1630)

Fundamentals of digital logic design including: Boolean algebra, gates, truth tables, logic families, flip-flops, finite state machines, memory, and timing. More advanced topics include A-D conversion, binary arithmetic, CPU organization, programmable logic (CPLDs and FPGAs), and VHDL. Extensive laboratory requirement.


Spring 2019: Design of Robotic Systems (ENGN 1931I)

Designing kinetic systems (i.e., systems requiring movement or motion) relies on both mechanical and electrical engineering. These systems include everything from mobile robots for rescue operation to electrically powered moving sculptures. Through a series of projects, students combine knowledge of electronic circuit design, sensors, actuators, motors, microcontrollers, control theory, and programming to build interactive art and robotic systems. Projects culminate in the design of a creative kinetic system that incorporates several of the principles learned in class. Some programming experience is helpful but not required.