CS255 Systems Programming Lab

Department of Computer Science

University of Crete

Instructor: Angelos Bilas

Semester: Spring 2024

 

 

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 

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

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

- Assignment 1

- Converting FSMs to C

Reading: 

- Assignment 1

- Lecture summary slides 

2 

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

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

26/2

- Writing large programs

- Makefiles

Reading: 

- King Ch. 10, 15, 18.2

- Lecture summary slides

(moved to Fri 1/3)

- Dynamic memory

- Link τηλεδιδασκαλίας

Reading: 

- King Ch. 17

- Lecture summary slides

5 

4/3 

- Abstract data types (ATDs)  

- Assignment 3

Reading: 

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

- Lecture summary slides

- Type conversions

- Polymorphism 

Reading: 

- King 7.4

- Lecture summary slides 

- Tutorial 4: make-2, make-2-examples, clang-format, clang-examples

6

11/3 

- Memory allocators

- How malloc/free works

Reading: 

- Bryant Ch. 9.{9, 11}

- Lecture summary slides

- Stack, recursion

- Sudoku

Reading: 

- King 9.6, 26.2 (rand/srand)

- Lecture summary slides

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

7 midterm

week

18/3

Public Holiday (Καθαρή Δευτέρα)

 

Πρόοδος (την μέρα/ώρα του μαθήματος, Τετάρτη 20/3, 10:00-12:00)

Αίθουσες:  Αναγνωστήριο, Αφμ.ΣΟ, Αμφ.Α, Α.113, Α.121, Α.125, Η.204

Οδηγίες

8

25/3

Public Holiday (25th March)

- Sudoku, recursion

Assignment 4

Reading:

- Discussion of Assignment 4

- Lecture summary slides

9

1/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-2gdb-2_files

10

8/4

- x86 assembly

- Assignment 5

Reading: 

- Bartlett Ch.3

- Bartlett Appendix B

- Lecture summary slides

- x86 stack

- Assignment 5

Reading: 

- Bartlett Ch.4

- Lecture summary slides

- Tutorial 7: Profiling - slides, Examples

11

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

12

22/4 

- Assignment 6

Reading: 

- in class discussion of Assignment 6 related issues

 

- 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

Easter recess

29/4

 

 

 

Easter recess

6/5

 

 

 

13

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

22/5

Final Exam

(1st Period)

TBD

 

Final Exam

(2nd Period)

TBD

 

 

Last Modified: 01-Feb-2024 14:36