Computer Organization / Systems Architecture, BSc, VU (2017-ongoing)

Computers are everywhere, in industry, academia, governance, and many other activities that impact our society. But what are they? How do they work? How to analyze them and to improve their performance?

Matching the requirements of the IEEE/ACM CS Curriculum 2013, topics for this course include: the architecture, the structure, the operation and the interconnection of computer components into computer systems, including modern architectures, data representation, assembler programming, virtual machines, the structure of translators, compiling and loading, basic operating systems concepts (I/O, interrupt handling, process).

Syllabus

Study Goals

Upon completing this course, you will be able to:

  1. Explain the basic concepts, historical objectives, and modern functions of digital computers.
  2. Describe the basic architecture and operation of digital computers.
  3. Use proficiently binary data representation, number representation, and arithmetic and data conversion.
  4. Explain at a proficient level the architecture and operation of each of the main components of a digital computer: the basic processing unit, the hierarchical memory system, the I/O system, and the interconnection system.
  5. Explain at a basic level various system mechanisms for building faster single-node systems, such as pipelining and caching, and large-scale systems, such as interconnects and program synchronization.
  6. Demonstrate proficiency with basic assembly programming by implementing basic operations of digital computing in realistic scenarios.
  7. Analyze at a basic level the tradeoffs inherent in the design of digital computers, concerning among others performance (simple modeling), scalability (Amdahl's Law), availability, energy consumption, and cost.
Education Method and Contact Hours
Gamification

This course uses gamification. In our course design, the core of gamification is not that you receive points for every step you make in learning the topics of the course, but that gamification helps stimulate you to take the step without fear of failure, and that it accommodates many types of student abilities and desires. Among other things, our approach to social gamification allows you to choose your own path of advancement:

  1. Attend the Lecture, Tutorial, and Lab sessions you want. (With freedom comes responsibility.)
  2. Choose which type of activity to engage with, from being active in Lectures and Tutorials, to programming and demonstrating your technical skill in the Lab, to working in a team to solve exercises in the Self-Study activity. Choose also with whom, for Self-Study.
  3. Choose which difficulty of exercises to try, beyond the basic requirements.
  4. Choose how to construct your own grade, by combining large rewards from Exams and choice Lab exercises, and small rewards from in-class participation and end-lecture quizzes.
  5. Choose to expand your knowledge for the sake of knowledge (outside the grade of the course), by getting invited and then participating in the extra-lectures offered to the best students in the cohort.
Textbooks

(students can pick any)

  1. Carl Hamacher and Zvonko Vranesic, Computer Organization, 6th edition, McGraw-Hill Education, 2011. ISBN-13: 978-0073380650
  2. Andrew S. Tanenbaum and Todd Austin, Structured Computer Organization, 6th edition, Pearson, 2012. ISBN-13: 978-0132916523
  3. David A. Patterson and John L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 5th edition, Morgan Kaufmann, 2013. ISBN-13: 978-0124077263
Additional Study Materials

Course and Lab guides are also provided via Blackboard. Introductions to the process of each activity, including assessment, appear in the first session of each activity.

Assessment

Example Material

The Team