By Greg Gibeling 2024-03-20 00:14:51 +0000


Components and Design Techniques for Digital Systems

EECS150 was, at the time I was a TA, a 5-unit (very rare) capstone undergraduate engineering course at U.C. Berkeley. Designed to teach digital systems and logic to undergrads, this course often resulted in advanced learning for graduate student instructors and even professors, due to its focus on a major project.

In a ~15 week course, there were generally about 5 early labs designed to teach basic skills, followed by the project. These projects were to be completed in two person teams, using ModelSim and Xilinx Virtex-E FPGAs on a custom board. The combination of complex digital systems (without CPUs), and the need to implement a solution which would work on real hardware made these demanding projects.

As Head TA, I was responsible for design and implementation of the reference project, lab lectures about the project, and finally project grading. This entailed not only technical work, but course design, weekly lectures, maintenance of course website, and significant student interaction well beyond a normal TA or GSI commitment. Grading included not only functionality, but code review and review of a ~20 page technical report by students.