This course goes through the fundamentals of computer systems, architecture and assembly language programming for the x86 and Intel64 processors. The primary goal of the course is to teach students how a computer works, and how to write and debug programs at the machine level. Students should then be able to approach programming problems with a machine-level mindset.