My favorite course to teach is CSC258: Computer Organization.

Computer Organization

This is a fundamental CS course and the only compulasory one that gives the student a view of the hardware side of computers. We begin our journey by learning about the most basic component of a processor which is the transistor. From there we shall learn how to combine transistors to build logic gates, logic gates to build small circuits, circuits to build devices and devices to be built into processor components. Along the way we will learn the concepts of combinational circuits vs sequential circuits. Some interesting things to learn include Finite State Machines (FSMs) and Arithmetic Logic Units (ALUs). There are 3-hour long labs each week where we will design the circuits based on concepts we learn each week in class and we will incrementally design more complex circuits by using the modules built in prior labs. These designs are coded in Verilog HDL and downloaded onto an FPGA board, the DE1-SoC in lab. During these CoVid semesters, we will have remote lab sessions where we use Logisim-Evolution instead.

CSC258 Supplementary Resources

top