Skip to content

Introduction to Computer Systems (ICS)

Welcome to the XJTU-ICS course! This course offers a programmer’s perspective on how computer systems execute programs store data, and communicate with each other.

A key focus of the course is on developing your system programming skills. To achieve this, the course includes 6 hands-on lab assignments, which will help you strengthen your understanding of how systems operate at the code level. These lab assignments make up approximately 50% of your final grade, emphasizing the importance of practical programming in mastering the concepts covered in the course.

Enjoy!

Prerequisites: C Programming

Textbook: Randal E. Bryant and David R. O'Hallaron, Computer Systems: A Programmer's Perspective, Third Edition, Pearson, 2016

Announcements

Announcements for Week 6 📢

Please note the deadline and release date of labs:

  • AttackLab is due this Sunday (2025-03-30 23:59). Don't forget to submit. ⚠

  • CacheLab is planned to released this week. Enjoy! 😄

DON'T CHEAT. Big Brother is watching you!

~ XJTU-ICS Course Staff

Getting Help

  • Piazza
  • QQ group: 1030663999
  • Office Hours
    • Danfeng Shan: 21:30-22:30, Every Tuesday and Thursday
    • Hao Li: TBD

Schedule

Week Date Lecture Instructors Materials Reading Labs
1 2025-02-18 Overview Hao Li && Danfeng Shan Slides 1
1 2025-02-20 Bits, Bytes, & Integers Danfeng Shan Slides 2.1-2.3 datalab out
2 2025-02-25 Machine Prog: Basics Danfeng Shan Slides 3.1-3.3
2 2025-02-27 Machine Prog: Basics Danfeng Shan Slides 3.4-3.5
3 2025-03-04 Machine Prog: Control Danfeng Shan Slides 3.7
3 2025-03-06 Machine Prog: Procedures Danfeng Shan Slides 3.7 bomblab out
3 2025-03-09 No Lecture datalab due
4 2025-03-11 Machine Prog: Data Danfeng Shan Slides 3.8-3.9
4 2025-03-13 Machine Prog: Advanced Danfeng Shan Slides 3.1
5 2025-03-18 Machine Prog: Advanced Danfeng Shan Slides 3.1 attacklab out
5 2025-03-20 The Memory Hierarchy Danfeng Shan Slides 6.1-6.3
5 2025-03-23 No Lecture bomblab due
6 2025-03-25 Cache Memories Danfeng Shan Slides 6.4-6.7
6 2025-03-27 Cache Memories Danfeng Shan Slides 6.4-6.7 cachelab out
6 2025-03-30 No Lecture attacklab due
7 2025-04-01 Machine independent Optimization Hao Li Slides 5.1-5.6
7 2025-04-03 Machine dependent Optimization Hao Li Slides 5.7-5.11 optimlab out
8 2025-04-08 Linking I: Basic Concepts and Procedures Hao Li Slides 7.1-7.7
8 2025-04-10 Linking II: Static and Dynamic Linking Hao Li Slides 7.7-7.13
8 2025-04-13 No Lecture cachelab due
9 2025-04-15 Linking II: Static and Dynamic Linking Hao Li Slides 7.7-7.13
9 2025-04-17 Operating System: History and Three Easy Pieces Hao Li Slides linkerlab out
10 2025-04-22 Processes and Multitasking Hao Li Slides 8.2-8.4
10 2025-04-24 Processes and Multitasking Hao Li Slides 8.2-8.4 optimlab due
11 2025-04-29 Exceptional Control Flow Hao Li Slides 8.1
11 2025-05-01 No Lecture (Labour Day)
12 2025-05-06 Exceptional Control Flow Hao Li Slides 8.5-8.7 linkerlab due
12 2025-05-08 Virtual Memory: Concepts Hao Li Slides 9.1-9.6
13 2025-05-13 Virtual Memory: Concepts Hao Li Slides 9.1-9.6
13 2025-05-15 Virtual Memory: Details Hao Li Slides 9.7-9.8
14 2025-05-20 Dynamic Memory Allocation: Basic Concepts Hao Li Slides 9.9
14 2025-05-22 Dynamic Memory Allocation: Advanced Concepts Hao Li Slides 9.9 malloclab out
15 2025-05-27 Processor Architecture Danfeng Shan 4.1-4.3
15 2025-05-29 Processor Architecture Danfeng Shan 4.4-4.6
16 2025-06-03 Exam Review Danfeng Shan malloclab due
16 2025-06-05 Exam Review Danfeng Shan