A study of the low-level operation of computer systems. Participating in hands-on activities that often require teamwork, students investigate how computers process instructions in modern computers as information is encoded, stored, and executed in a machine’s physical structures. In addition to learning how to program in assembly and machine languages, students investigate the design and logical operation of processors and the mathematics of machine computation. During a weekly laboratory session, students use industry-grade technology to complete projects, reporting on their results through both written documents and oral presentations. Students are invited to use their own departmentally approved laptop in this course; a limited number of laptops are available for use during class and lab sessions.
- Explain how programs written in high-level computer programming languages execute using lower-level computer circuitry
- Identify levels of the Memory Hierarchy and the implications of using the various levels to implement high-performance programs
- Develop C and Assembly language programs which use the appropriate levels of the Memory Hierarchy and processor registers to create performant, executable programs and arithmetic logic units
- Describe and use parallel processing techniques to increase a program’s performance and efficiency
For more on course governance and supporting materials, see the course materials repository.