This course introduces the fundamentals of computer hardware where the students will learn basic building blocks of a small computer and how the hardware and software interface with one another. The course will have a lab component requiring dedicated desktop computers or laptops requiring the use of a Hardware Description Language and a programmable device such as an FPGA.