Semester.ly

Johns Hopkins University | EN.600.233

Computer System Fundamentals

3.0

credits

Average Course Rating

(3.7)

[Formerly EN.600.333/433] We study the design and performance of a variety of computer systems from simple 8-bit micro-controllers through 32/64-bit RISC architectures all the way to ubiquitous x86 CISC architecture. We'll start from logic gates and digital circuits before delving into arithmetic and logic units, registers, caches, memory, stacks and procedure calls, pipelined execution, super-scalar architectures, memory management units, etc. Along the way we'll study several typical instruction set architectures and review concepts such as interrupts, hardware and software exceptions, serial and other peripheral communications protocols, etc. A number of programming projects, frequently done in assembly language and using various processor simulators, round out the course. [Systems]. Students may receive credit for only one of EN.600.233, EN.600.333 or EN.600.433.

Fall 2014

(3.78)

Spring 2015

(3.62)

Fall 2014

Professor: Peter Froehlich

(3.78)

Students appreciated that this course covered unique and useful material. They perceived that the weakest element of the course was the difficulty of exams. Some students also thought that the professor could have been more approachable. Students felt that the course could have been improved by a grading system for exams that better reflected their knowledge and performance in the class. In addition, they thought it was important for people considering this class to know that the course had a heavy emphasis on assembly languages.

Spring 2015

Professor: Peter Froehlich

(3.62)

The best aspects of the course included the passionate and knowledgeable professor, as well as the interesting material. Students found lectures to be very informative, though many indicated that having class notes posted in advance would have been helpful for weekly preparation. Students appreciated the difficulty of assignments, but many were confused by the grading system. Suggestions for improvement included providing more supplemental resources for students to better understand concepts, and providing more prompt and detailed feedback on assignments. Prospective students may benefit from a background in programming and should be prepared for a heavy work load.