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 is changed to a programming assignment.


Operating Systems: Three Easy Pieces

Topics Covered

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

Additional Materials for ESTR:

  • Assembly Language.
  • RISC-V OS implementation.


This is an intensive programming course. The professor introduces operating system concepts in the lectures, but we have to figure out how to implement them in acutal 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 computer you are using every day 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, and is essential in your future computer science-related career. You will also gain some Linux experience as a plus! Highly recommended (as long as you know C and data structures).

P.S. Make sure you don’t lend your homework to your friends, I got a 0 for one of my assignments by doing this :(

More CUHK Course Reviews