CPSC 213

Introduction to Computer Systems

Course Description

Software architecture, operating systems, and I/O architectures. Relationships between application software, operating systems, and computing hardware; critical sections, deadlock avoidance, and performance; principles and operation of disks and networks.

Average difficulty
4.25 / 5
Average quality
4.38 / 5
Scroll to see reviews

Add a Review for this course

Please ensure that your review is respectful and constructive. Read about UBC's aim for creating a safe and inclusive learning environment here. These reviews may take several days to process and will be scanned for inappropriate or malicious content.

Please enter a name/username.
Enter a valid url including the 'https://' prefix. (https://www.example.com)
Please enter your course review. [minimum length: 50 characters]
3
3

A friend described this course as a “religious experience”. Surely a joke, but 213 is definitely an experience. Probably the hardest CPSC I’ve ever taken. I spent hours upon hours reviewing slide decks and grinding practice problems and exams for this course. I left most lectures feeling confused and would have to spend at least an hour if not more going over things to “unconfuse” myself. However, this is also one of the most satisfying courses I ever taken. Every unit and topic covered is extremely interesting imo. In particular, the final unit on concurrency is one of my favourite units of any CPSC course. I enjoyed cracking open what is a black box to most people and taking a look at the internals. I also feel knowing some of these internals has improved my ability to use computers to solve problems. The assignments are all great. However, the last assignments (for the concurrency unit) are a significant step up in difficulty. The tests in this class are hard but if you put in work things should work out fine in the end (likely due to some scaling magic).
Difficulty:4
Quality:4
ushankab, Dec 17 2023, course taken 2021W2

what I took away was the foundational relationships between how hardware was designed and how software programming languages are built on top of one another.

topics in my term

  • assembly and hardware-to-software design
  • using c and java to abstract parts of hardware instructions
  • asynchronous code
Difficulty:4.5
Quality:5
2nd year bsc student, May 26 2023, course taken 2022W2
This course teaches a lot about how computers work on the hardware side and how low level code works. Fun course that teaches you a lot but not an easy one for sure. I liked the concepts of deadlocks the most. Took this course with Robert Xiao and had a great time!
Difficulty:4
Quality:5
averagestudent, Nov 3 2022, course taken 2020W2
Was quite fun. Assembly was a bit annoying at first, and it remained annoying unfortunately. But, It was interesting. I recommend to all CS students.
Difficulty:4.5
Quality:3.5
lolmaker, Nov 5 2022, course taken 2020W1

Historical grade information

Grades information from UBC Grades Database