CSCI3150/ESTR3102 Introduction to Operating Systems - CUHK Course Review

Term Taken: 2019 Fall

Instructor: Prof. Shao Zili

Grading Scheme

Original Scheme:

  • Labs (5%)
  • Programming Assignments (45%)
  • Midterm Test (10%)
  • ESTR Labs (15%)
  • Final Exam (25%)

For non-ESTR students, Final Exam takes up 40%.

Scheme for 2019 Course Cancellation:

The final exam was changed to a programming assignment.


Operating Systems: Three Easy Pieces

Topics Covered

  • Basic Linux systems programming.
  • System Calls.
  • CPU Scheduling.
  • Memory Management.
  • Concurrency: Mutex, Pthread, Semaphor, Condition Variable.
  • File Systems.

Additional Materials for ESTR:

  • Assembly Language.
  • RISC-V OS implementation.


This was an intensive programming course. Like most of the computer science courses, the professor introduced operating system concepts in the lectures, but we had to figure out how to implement them in actual C code in our assignments.

For those who hate programming, this course would be a nightmare, but for those who enjoy programming (like me), this course is actually very rewarding and fun. You would not only learn the mechanics behind the low-level computer system where your everyday applications operate on but also get a chance to actually implement some parts of the system. For computer science, computer engineering, or even electronic engineering majors, the low-level systems knowledge you learn in this course is invaluable. You will also gain some Linux experience as a plus! Highly recommended (as long as you know C and data structures).

More CUHK Course Reviews