CS2011 Computing Systems Principles

Designed to provide computer science majors with a basic understanding of computer systems hardware. The course includes the following topics. Basic computer concepts, number systems and data representation, digital logic and Boolean algebra, storage devices and organization, basic computer organization and control, and instruction formats, addressing modes and the assembler process. No previous background in computer hardware is assumed. PREREQUISITE: None.

Lecture Hours

4

Lab Hours

0

Course Learning Outcomes

Upon successfully completing the course, the student will be able to:

  • Appreciate the ramifications of computer architecture concepts on real-world processors and systems.
  • Accelerate programs by identifying hardware and software bottlenecks.
  • Understand the fundamental concepts of floating-point representation.
  • Understand how errors can occur in computations because of overflow, underflow, and truncation.
  • Understand the concepts of error detecting and correcting codes.
  • Understand the relationship between a truth table, Boolean expression, and combinational circuit.
  • Be able to derive a Boolean expression from a truth table and then simplify that expression by applying Boolean identities.
  • Describe and explain how program components are linked (bound together) at runtime.
  • Understand the difference between static and dynamic linking.
  • Understand the interface between the software and the processor.
  • Understand the tradeoffs involved in instruction set architecture design.
  • Gain familiarity with memory addressing modes used in modern computer systems.
  • Understand the concept of instruction-level pipelining and its effect on performance.
  • Master the concept of hierarchical memory organization.
  • Understand how each level of the memory hierarchy contributes to system performance, and how the performance is measured.
  • Master the concepts behind cache memory, virtual memory, memory segmentation, paging, and address translation.
  • Understand how I/O systems work, including I/O methods and architectures.
  • Become familiar with storage media and the differences in their respective formats.
  • Understand how to improve disk performance and reliability.
  • Be familiar with the capabilities and limitations of emerging data storage technologies.