Yang Xiao Home

CS 270 (Fall 2025)
Systems Programming

Course Information

Instructor: Yang Xiao (contact: xiaoy[AT]uky.edu)
Meeting Times: M/W/F 2:00-2:50 PM (Section 001), 3:00-3:50 PM (Section 002)
Office Hour: Hardymon Rm 233, Thu 2:00 PM – 4:00 PM
TA: TBD (contact: TBD), Office Hour: TBD

Course Description

This course provides an introduction to computer systems and explores computer architecture, operating systems, and networks from a programmer's perspective. The course also introduces advanced programming and debugging tools. Topics include hardware instruction sets, machine language and C language program representations, linking/loading, operating systems (process management, scheduling, memory management, interprocess communication, and file systems), network programming (socket programming and web protocols), and common security attacks and solutions.

Textbooks and Materials

Required Textbook: R. Bryant and D. O'Hallaron, Computer Systems: A Programmer's Perspective, third edition, Pearson, 2016. ISBN 978-0-13-409266-9.
Strongly Recommended Textbook: B. Kernighan and D. Ritchie, The C Programming Language, second edition, Prentice Hall, 1988. ISBN 0-13-110362-8. Why this text is strongly recommended: It is both (i) the best way to learn C language; and (ii) a great reference for the future. Why C language is important (at least for this course): Because C is the closest high-level language to machine language—It is designed so that you can know exactly what the machine is doing when it executes your programs.

Course Schedule (Tentative)

Week Agenda Reading Assignment
1
  • 08/25: Course introduction
  • 08/27:
  • 08/39: Lab 1: VM, Basic C programming
  • 2
  • 09/01: Labor Day - no class
  • 09/03:
  • 09/05:
  • 3
  • 09/08:
  • 09/10:
  • 09/12: Lab 2: Debugging with gdb
  • 4
  • 09/15:
  • 09/17:
  • 09/29:
  • 5
  • 09/22:
  • 09/24:
  • 09/26: Lab 3: Stack overflows
  • 6
  • 09/29:
  • 10/01:
  • 10/03:
  • 7
  • 10/06:
  • 10/08:
  • 10/10:
  • 8
  • 10/13:
  • 10/15: Midterm Examination
  • 10/17:
  • 9
  • 10/20:
  • 10/22:
  • 10/24:
  • 10
  • 10/27: Fall Break - no class
  • 10/29:
  • 10/31:
  • 11
  • 11/03:
  • 11/05:
  • 11/07:
  • 12
  • 11/10: Lab 4: Co-ordinating with Signals
  • 11/12:
  • 11/14:
  • 13
  • 11/17:
  • 11/19:
  • 11/21: Midterm Examination
  • 14
  • 11/24: Lab 5: Using Threads
  • 11/26: Thanksgiving Break - no class
  • 11/28: Thanksgiving Break - no class
  • 15
  • 12/01:
  • 12/03:
  • 12/05:
  • 16
  • 12/08: (Prep Days)
  • 12/10: (Prep Days) Final Exam Review
  • 12/12: No class
  • 17
  • Final exam (Section 001), TBD, in classroom
  • Final exam (Section 002), TBD, in classroom
  • Learning/Research Resources

    UK Libraries, Free Tutoring and Coaching at UK, Google Scholar, ACM Digital Library, IEEE Xplore.