Yang Xiao Home

CS 270 (Fall 2026)
Systems Programming

Course Information

Instructor: Yang Xiao (contact: xiaoy[AT]uky.edu)
Meeting Times: T/R 3:30-4:45 PM
Office Hour: Hardymon Rm 233, Wed 2:00 PM – 4:00 PM
TA: TBD, Office Hour: TBD, EE Annex 205

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 Toolbook: 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 Date Agenda
(Lecture notes uploaded to Canvas the same day before class)
Textbook Reading Assignment
(H: Homework, P: Project)
1 08/25 T
08/27 R

Lec 0: Course intro + Lec 1: Intro to C (Part 1)
Lab 0: Your VM, the shell, basic C tool chain, gdb + Lec 2: bit-diddling in C/C++
1
2-2.2

H0 (survey) out
P0 out (Fri)

2 09/01 T
09/03 R
Lec 3: Integers and Two's Complement
Lec 4: Intro to x86-64 - machine state
2.3 & Sppl. Notes
3-3.3
H1 out

3 09/08 T

09/10 R
Lec 5: x86-64 - basic instructions & operand modes + Lec 6: x86-64 - control flow instructions
Lab 1: Understanding a Program W/o Source Code + Lec 6 cont.
3.4-3.6

3.10
H1 due; H2 out (Wed)

P0 due; P1 out
4 09/15 R

09/17 T
Lec 7: x86-64 - procedure call and linkage
(Yang is in travel; watch pre-recorded video at your own pace)
Lec 8: Intro to C (Part 2) - data structures & pointers
3.7


5 09/22 T
09/24 R
Lec 9: Implementing arrays/structs in memory

3.8-3.9

6 09/29 T
10/01 R
7 10/06 T
10/08 R
8 10/13 T
10/15 R
9 10/20 T
10/22 R
10 10/27 T
10/29 R
Fall Break - no class

11 11/03 T
11/05 R
12 11/10 T
11/12 R
13 11/17 T
11/19 R

14 11/24 T
11/26 R

Thanksgiving Break - no class
15 12/01 T
12/03 R
16 12/08 T
12/10 R
(Prep Days)
(Reading Days) No class.
17 12/15 T
12/17 R
Final exam, Tuesday, December 15, 1:00 - 3:00 PM, in classroom

Learning/Research Resources

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