CS255 Systems Programming Lab

Department of Computer Science

University of Crete

Instructor: Angelos Bilas

Semester: Spring 2023

 

 

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 

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

- Pointers, arrays, strings

Reading: 

- King Ch. 11, 12, 13

- Lecture summary slides 

 

2 

13/2 

- Tutorial 1 - Basics:   git-1 , git-1-video

- Tutorial 2 - Editing:     bash , vim-2 , vim_tutorial, emacs-2, emacs_tutorial, emacs configuration

- C declarations 

Reading: 

- King 18.{1,3,4,5}

- Lecture summary slides

3 

20/2

- 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 

gdb-examples 

4

27/2

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

- 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 

6/3 

- Dynamic memory

Reading: 

- King Ch. 17

- Lecture summary slides

- Abstract data types (ATDs)  

- Assignment 3

Reading: 

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

- Lecture summary slides

 - Tutorial 5: git-2, lint-sanitizers, lint-sanitizers files 

6

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

7 midterm

week

20/3

- Stack, recursion

- Sudoku

Reading: 

- King 9.6, 26.2 (rand/srand)

- Lecture summary slides

No class due to midterm week

Πρόοδος: Την ώρα του μαθήματος, Παρασκευή 24/3, 10:00-12:00, Οδηγίες

8

27/3

- Sudoku, recursion

Assignment 4

Reading:

- Discussion of Assignment 4

- Lecture summary slides

- Checking program conditions

- Assertions

Reading: 

- King Ch. 24.{1,2}

- Lecture summary slides

9

3/4

- Debugging 

- Debugging is not about debuggers

- How debuggers work

Reading:

- Bartlett Appendix F 

- GDB Internals: Breakpoint handling

- Lecture summary slides

- x86 assembly

- Assignment 5

Reading: 

- Bartlett Ch.3

- Bartlett Appendix B

- Lecture summary slides

Easter recess

10/4 

Easter recess

17/4

10

24/4

- x86 stack

- Assignment 5

Reading: 

- Bartlett Ch.4

- Lecture summary slides

- Concept of buffer overrun attacks

- Assignment 6

Reading: 

- in class discussion of Assignment 6 related issues

- Tutorial 6: gdb-2

11

1/5

- Assignment 6

Reading: 

- in class discussion of Assignment 6 related issues

- Assignment 6

Reading: 

- in class discussion of Assignment 6 related issues

- Assignment 6

Reading: 

- in class discussion of Assignment 6 related issues

12

8/5 

- Code reviews - Coding style

- Comments

Reading:

- Skinner: C Style and Coding Standards [pdf] 

- Lecture summary slides

- 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

- Tutorial 7: Profiling - slides, Examples 

13

15/5

- Error handling

- Exceptions

Reading: 

- King 24.{3,4}

- Lecture summary slides 

- Measuring performance

- Sample profiling

Reading:

- Bryant Ch. 5.14 

- Bartlett Ch.12

- Lecture summary slides 

- 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 

22/5

Final Exam

(1st Period)

TBD

- TBD 

Final Exam

(2nd Period)

TBD

- TBD

 

Last Modified: 07-Feb-2022 14:36