Skip to content
@allegheny-college-cmpsc-200-fall-2023

CMPSC 200: Computer Organization, Allegheny College Fall 2023

Course organization for CMPSC 200: Computer Organization, Allegheny College Fall 2023

CMPSC 200: Computer Organization, Allegheny College Fall 2023

Vector art of 200 in hex, subtitle of course: Bare Metal in pale green and gold

Canonical course description

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.

Learning objectives

  • 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.

Pinned

  1. liftoff-assignment liftoff-assignment Public template

    An assignment introducing the concept of an Instruction Set Architecture (ISA) via the CARDIAC paper computer.

    Assembly

  2. single-pile-nim-assignment single-pile-nim-assignment Public template

    An assignment the CARDIAC paper computer ISA.

    Assembly

  3. hello-blinky-assignment hello-blinky-assignment Public template

    An assignment demonstrating and testing GDB, OpenOCD, and VSCode debugging setup.

    CMake

  4. space-rock-surprise-assignment space-rock-surprise-assignment Public template

    An assignment introducing the ARMv6-M architecture and debugging with the Raspberry Pi Pico.

    CMake

  5. ore-processing-assignment ore-processing-assignment Public template

    An assignment using the ARMv6-M ISA to explore the concepts of memory size.

    Assembly

  6. circuit-scramble-assignment circuit-scramble-assignment Public template

    An assignment demonstrating digital circuit design from truth tables; recreating circuits in Assembly to examine boolean logic.

    Assembly

Repositories

Showing 10 of 15 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…