Do you want to understand the magic that makes our computers work? CSCI 0300 is your chance to master that magic.
Infrastructure – EdStem – Grading server
Lecture feedback – Lecture code
2023/04/15: Project 5B (Privacy-Compliant KVStore) released!
2023/04/20: Lab 6 released!
2023/04/18: Project 5A (KVStore) released!
2023/04/12: Midterm Quiz solutions released!
2023/04/09: Lab 5 released!
2023/03/21: SRC Project (Time Machine) released!
2023/03/21: Project 4 (WeensyOS) released!
2023/03/15: Lab 4 released!
2023/03/05: Project 3 (Caching I/O) released!
2023/03/01: Lab 3 released!
2023/02/18: Project 2 (DMalloc) released!
2023/02/07: Lab 2 released!
2023/01/31: Lab 1 released!
2023/01/26: Lab 0 and Project 1 (Snake) released!
2023/01/24: Lecture notes, code, and videos will be available from the schedule page.
Here are lecture notes for lectures 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24.
2023/01/03: 2️⃣3️⃣ Please read the notes on the CSCI 0300 format for 2023 🆕
2023/01/03: Join the EdStem!
The goal of CSCI 0300/CS 300 is to teach the fundamentals behind the "magic" of computer systems from the hardware level to the global internet. We'll cover the ideas, principles and abstractions that unify computer systems design – from how your laptop runs multiple programs at the same time, to how companies like Instagram, Airbnb, and Google operate large websites, to how easy it is to exploit security vulnerabilities on badly designed systems. This is a great class for students who are interested in learning what systems programming is, how systems work, and why these systems are so critical to modern technology.
CSCI 0300 highlights
- Learn how a computer really works: we'll look into what happens when a program runs, from the basics to high-level concepts!
- Use industry-strength tools: CSCI 0300 teaches you modern C/C++ programming with the tools that professional software engineers use!
- Two programming languages for the price of one: learn C and C++, two widely-used systems programming languages for high-performance software!
- Real-world inspired projects: in CSCI 0300's projects, you'll implement the core of your own operating system, and learn to build scalable infrastructure such as a distributed data store and a multi-threaded server similar to those companies use to run web services you use every day!
Testimonial and Reviews
"...the resources section, the final quiz, the lectures, labs and lecture notes, all have been immensely helpful in my preparation for interviews. Just today in an interview I got asked to explain how virtual memory works and was able to explain it correctly. I was also able to give intuition on why it is necessary. [...] Overall, this interview was one I really wanted to ace and I’m really glad it went well - all thanks to CS131."
— Spring 2020 CSCI 1310 (CS131) student.
Critical Review: Spring 2022, Spring 2021, Spring 2020 (as CSCI 1310).
Prior offerings: Spring 2022, Spring 2021, Spring 2020 (as CSCI 1310).
Enrollment. CSCI 0300/CS 300 is open to anyone who has completed the introductory sequence (i.e., CSCI 0160, 0180, 0190, or 0200).