CS255 Systems Programming Lab
Department of Computer Science
University of Crete
Instructor: Angelos Bilas
Semester: Spring 2026
Syllabus
|
Semester Week # |
Week Start |
Mon (Lecture 1) 09:00-11:00 Amph.B |
Wed (Lecture 2) 09:00-11:00 Amph.B |
Fri (Backup) 09:00-11:00 Amph.B |
|
1 |
9/2 |
- Introduction - Review of basic C language - I/O in C Reading: - King Ch.1-6, 7.{1-3}, 8, 9.1, 16, 22.{1,3,4} - The C Library Reference Guide, Eric Huss, 1997 - Lecture summary slides |
- Converting FSMs to C Reading: - Lecture summary slides |
- Tutorial 1 – Basics: git-1 , git-1-video |
|
2 |
16/2 |
- Pointers, arrays, strings Reading: - King Ch. 11, 12, 13 - Lecture summary slides |
- C declarations Reading: - King 18.{1,3,4,5} - Lecture summary slides |
- Tutorial 2 - Editing: vim_bash , vim-2 , vim_tutorial, emacs-2, emacs_tutorial, emacs configuration |
|
3 |
23/2 |
Public Holiday (Καθαρή Δευτέρα) |
- Program building process - C pre-processor (cpp) Reading: - King Ch. 14 - Bryant Ch. 7.1 - Lecture summary slides |
- Tutorial 3: make-1, make-examples, gdb-1, |
|
4 |
2/3 |
- Modules Reading: - King Ch. 18.2, 19.{1,2} - Lecture summary slides |
- Writing large programs - Makefiles Reading: - King Ch. 10, 15, 18.2 - Lecture summary slides |
- Tutorial 4: make-2, make-2-examples, clang-format, clang-examples |
|
5 |
9/3 |
- Dynamic memory Reading: - King Ch. 17 - Lecture summary slides |
- Abstract data types (ATDs) Reading: - King Ch. 19.{3,4,5} - Lecture summary slides |
- Tutorial 5: git-2 & lint-sanitizers, lint-sanitizers files |
|
6 |
16/3 |
- Type conversions - Polymorphism Reading: - King 7.4 - Lecture summary slides |
||
|
7 midterm Week
|
23/3
Πρόοδος: Fri, 27/3 |
- Memory allocators - How malloc/free works Reading: - Bryant Ch. 9.{9, 11} - Lecture summary slides |
- national holiday |
- midterm (την ώρα του μαθήματος 09:00-11:00) |
|
8 |
30/3 |
- Stack, recursion - Sudoku Reading: - King 9.6, 26.2 (rand/srand) - Lecture summary slides |
- Sudoku, recursion Reading: - Discussion of Assignment 4 - Lecture summary slides |
- Checking program conditions - Assertions Reading: - King Ch. 24.{1,2} - Lecture summary slides |
|
Easter recess |
6/4 |
|
|
|
|
Easter recess |
13/4 |
|||
|
9 |
20/4 |
- Debugging - Debugging is not about debuggers - How debuggers work Reading: - Bartlett Appendix F - GDB Internals: Breakpoint handling - Lecture summary slides |
- x86 assembly Reading: - Bartlett Ch.3 - Bartlett Appendix B - Lecture summary slides |
- Tutorial 7: Profiling - slides, Examples |
|
10 |
27/4 |
- x86 stack Reading: - Bartlett Ch.4 - Lecture summary slides |
- Concept of buffer overrun attacks Reading: - in class discussion of Assignment 6 related issues |
|
|
11 |
4/5 |
Reading: - in class discussion of Assignment 6 related issues |
Reading: - in class discussion of Assignment 6 related issues |
|
|
12 |
11/5 |
- Linking/loading Reading: - (static) Bryant Ch. 7.{2,3,4,5,6,7,8,9} - (dynamic) Bryant Ch. 7.{10,11,12,13} - (tools) Bryant Ch. 7.14 - Lecture summary slides |
- Error handling - Exceptions Reading: - King 24.{3,4} - Lecture summary slides |
|
|
13 |
18/5 |
- Measuring performance - Sample profiling Reading: - Bryant Ch. 5.14 - Bartlett Ch.12 - Lecture summary slides
or
- Code reviews - Coding style - Comments Reading: - Skinner: C Style and Coding Standards [pdf] - Lecture summary slides |
(optional) - Concurrency and Threads - Application – OS interface Reading: - Bryant Ch. 12.{1,2,3}
- The power of ten Reading: - Gerard J. Holzmann. The power of 10: Rules for Developing Safety-Critical Code |
|
|
Reading Week |
25/5 |
|||
|
Final Exam (1st Period) |
TBD |
- Πρόγραμμα εξετάσεων - Οδηγίες διεξαγωγής εξέτασης |
||
|
Final Exam (2nd Period) |
TBD |
- Πρόγραμμα εξετάσεων - Οδηγίες διεξαγωγής εξέτασης |
||
|
Final Exam (3rd Period) |
3/2 09:30-12.30 |
Last Modified: 01-Feb-2024 14:36