CS 3130 Fall 2025
Study MaterialsMain/ReadingsOffice HoursPoliciesHWs+LabsQuizzesSubmissionSchedule
This website may change (perhaps significantly) before the semester starts.
  • 1 Learning Outcomes
  • 2 Readings
    • 2.1 Environment for assignments
    • 2.2 Old quizzes/exams
  • 3 Getting Help
  • 4 Course Staff

This is the website for the Fall 2025 offering of CS 3130.

You’ll probably find the schedule link above most useful.

1 Learning Outcomes

As a result of taking this course, you should learn

  • core system architecture, including DMA, interrupts, and cache coherency
  • real hardware, including concurrency complexities and what makes SPECTRE work
  • concurrency, including synchronization, mutual exclusion, coherency, and concurrency bugs
  • virtual memory, including process isolation and shared memory
  • practical networking, including familiarity with TCP/IP, DNS, snooping, spoofing, and TLS
  • security, including unix permissions, privilege escalation, and modern exploits
  • ethical and legal issues, including reporting
  • a build system and practical command-line tools

2 Readings

We have created several writeups for this course:

  • CSO2 overview
  • Building
    • Compilation and Libraries
    • Makefiles
  • Kernels – Software for the Hardware
    • Virtual Memory
  • User Accounts
    • File Permissions
  • Buses (and networks)
  • Networking Protocols
  • Cryptographic protocols
  • Caches – Keep a finger in it
  • Processes and threads
    • Synchronization primitives
    • Using POSIX Threads
    • Deadlock
    • Consistency
  • Processors

(The original version of these was written by Professor Tychonievich.)

We will augment these with various examples, online articles, and other resources.

2.1 Environment for assignments

We will test your assignments on an environment similar to the department’s Linux machines that are accessible via SSH.

Unlike some offerings of CSO1, you are welcome to use an IDE of your choice (that doesn’t write your code for you) as long as your submission will work when we test it from a command line-like environment.

A lot of students have had success using VSCode and its SSH support to access the department machines, as is (for example) described in the Fall 2023 CSO1’s first lab. If using VSCode, you may find it helpful to install the C/C++ and Makefile extensions.

In addition, for accessing the department machines remotely, you may find these writeups helpful:

  • options for using SSH and setting up keypairs to avoid retyping your password all the time
  • instructions for remote desktop access (via NoMachine)

2.2 Old quizzes/exams

On the study materials link above, you can find some old exams and quizzes.

3 Getting Help

  • Office hours

  • Piazza (linked off Collab site)

  • emailing us (not preferred for course material questions)

4 Course Staff

Charles Reiss
Office: Rice 205.
Email: creiss@virginia.edu
Telephone: 434-924-8274
Office Hours: (see office hours page)

Kevin Skadron

TAs
TBA

CS 3130 Fall 2025

  • Charles Reiss and Kevin Skadron
  • creiss@virginia.edu
By Charles Reiss. Released under the Creative Commons License CC-BY-NC-SA 4.0.