CS255 Systems Programming Lab

Department of Computer Science

University of Crete

Instructor: Angelos Bilas

Semester: Spring 2021

___________________________________________________________________________________________________________________________________


Course Info Syllabus Assignments Policies

___________________________________________________________________________________________________________________________________

Syllabus

___________________________________________________________________________________________________________________________________


Semester 

Week #

Week 

Start 

Mon (Lecture 1)

10:00-12:00  Amph.B

Wed (Lecture 2)

10:00-12:00 Amph.B

Fri (Backup)

10:00-12:00 Amph.B 

1 

15/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

- Assignment 1

- Converting FSMs to C

Reading: 

- Assignment 1

- Lecture summary slides

- Tutorial 1 - Basics: 

bash-1, 

vim-1, 

emacs-1, 

git-1

2 

22/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: 

befriending vim, 

emacs-2, 

emacs configuration

3 

1/3

- Program building process

- C pre-processor (cpp) 

Reading: 

- King Ch. 14

- Bryant Ch. 7.1

- Lecture summary slides

- Modules

- Assignment 2

Reading: 

- King Ch. 18.2, 19.{1,2}

- Lecture summary slides

 - Tutorial 3:

make-1, 

make-examples, 

gdb-1 


4

8/3

- Writing large programs

- Makefiles

Reading: 

- King Ch. 10, 15, 18.2

- Lecture summary slides

- Dynamic memory

Reading: 

- King Ch. 17

- Lecture summary slides

- Tutorial 4: 

make-2, 

clang-format 

5 

15/3 

Καθαρή Δευτέρα

- Abstract data types (ATDs) 

- Assignment 3

Reading: 

- King Ch. 19.{3,4,5}

- Lecture summary slides


6

22/3 

- Type conversions

- Polymorphism 

Reading: 

- King 7.4

- Lecture summary slides

- Memory allocators

- How malloc/free works

Reading: 

- Bryant Ch. 9.{9, 11}

- Lecture summary slides

- Tutorial 5: 

git-2 

lint-sanitizers 

lint-sanitizers files 

7 midterm

week

29/3

- Stack, recursion

- Sudoku

Reading: 

- King 9.6, 26.2 (rand/srand)

- Lecture summary slides

- Sudoku, recursion

Assignment 4

Reading:

- Discussion of Assignment 4

- Lecture summary slides


8

5/4

- Checking program conditions

- Assertions

Reading: 

- King Ch. 24.{1,2}

- Lecture summary slides

- Debugging 

- Debugging is not about debuggers

- How debuggers work

Reading:

- Bartlett Appendix F 

- GDB Internals: Breakpoint handling

- Lecture summary slides

- Tutorial 6: 

gdb-2 

9

12/4

- x86 assembly

Reading: 

- Bartlett Ch.3

- Bartlett Appendix B

- Lecture summary slides

- x86 stack

- Assignment 5

Reading: 

- Bartlett Ch.4

- Lecture summary slides


10

19/4 

- Concept of buffer overrun attacks

- Assignment 6

Reading: 

- in class discussion of Assignment 6 related issues

- Assignment 6

Reading: 

- in class discussion of Assignment 6 related issues


Easter recess

26/4




Easter recess

3/5




11

10/5

- Error handling

- Exceptions

Reading: 

- King 24.{3,4}

- Linking/loading

Reading:

- (static) Bryant Ch. 7.{2,3,4,5,6,13}

- (dynamic) Bryant Ch. 7.{8,9,10,11,12}


12

17/5 

- Measuring performance

- Sample profiling

Reading:

- Bryant Ch. 5.14 

- Bartlett Ch.12

- Code reviews - Coding style

- Comments

Reading:

- Skinner: C Style and Coding Standards [pdf]

 - Tutorial 7: gprof

13

24/5

- Concurrency and Threads

- The power of ten

Reading: 

- Bryant Ch. 12.{1,2,3}

- Gerard J. Holzmann. The power of 10: Rules for Developing Safety-Critical Code 



Reading Week 

31/5




Final Exam

(1st Period)

TBD

- Instructions 

- Πρόγραμμα εξετάσεων



Final Exam

(2nd Period)

TBD

- Instructions 

- Πρόγραμμα εξετάσεων









___________________________________________________________________________________________________________________________________

Last Modified: 10-Feb-2021 14:36