Do you want to understand the magic that makes our computers work? CSCI 0300 is your chance to master that magic.
Office Hours – EdStem – Grading server
Lecture feedback – Lecture code
Announcements
2024/04/29: Optional Rust section materials released!
2024/04/27: Project 5B (Distributed KVStore) released!
2024/04/17: Lab 6 released!
2024/04/13: Project 5A (Concurrent Store) released!
2024/04/11: Midterm Quiz solutions released!
2024/04/04: Lab 5 released!
2024/03/15: SRC Project (Time Machine) released!
2024/03/15: Project 4 (WeensyOS) released!
2024/03/13: Lab 4 released!
2024/03/02: Project 3 (Caching I/O) released!
2024/02/27: Lab 3 released!
2024/02/17: Project 2 (DMalloc) released!
2024/02/12: ☃️❄️ Due to the severe weather, lecture 6 (Tuesday, February 13) will take place on Zoom! 🏂🌨️
2024/02/06: Lab 2 released!
2024/01/30: Lab 1 released!
2024/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, 25, 26, 27.
2024/01/24: Lab 0 and Project 1 (Snake) released!
2024/01/04: 2️⃣4️⃣ Please read the notes on the CSCI 0300 format for 2024 🆕
2024/01/04: Join the EdStem!
Course Summary
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 (missing reviews are due to CR): Spring 2023, Spring 2022, Spring 2021, Spring 2020 (as CSCI 1310).
Prior offerings: Spring 2023, 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).
Course Email: cs0300headtas@lists.cs.brown.edu
.
Instructors: cs300-instructors@brown.edu
.