Tutorial slides for COMP2017: System Programming

If you have any questions, please email me at stvya.sharma@sydney.edu.au or post it on EdStem.

Important: For any discrepancy, please refer to the content in the Lecture Slides and the Tutorial Exercises. These slides are only to be used to help explain concepts. They may leave out small details that are examinable, or they may contain information that is not examinable. Always use the Lecture Content and Tutorial Exercises as the primary reference.
22 tutorials
Week Topic Description
Week 2 Tut A Introduction to C History of C, differences from Java, and fundamental language characteristics
open
Week 2 Tut B Arrays & Pointers C arrays, pointer arithmetic, and introduction to Linux and the shell
open
Week 3 Tut A Number Systems & Memory Binary and hex, data representation, endianness, IEEE 754 floating point
open
Week 3 Tut B Strings & Preprocessing C string manipulation functions, compiler usage, and preprocessing directives
open
Week 4 Tut A Standard Library & Bitfields String functions, math.h, and bitwise operations with bitfields
open
Week 4 Tut B Structs & Unions Declaration, initialization, memory layout, padding, and nested structures
open
Week 5 Tut A File I/O Unix file philosophy, file descriptors, and standard C file I/O functions
open
Week 5 Tut B Dynamic Memory Stack vs heap, malloc/calloc/realloc/free, and building linked lists
open
Week 6 Tut A Linked Lists & Generics Singly/doubly/circular linked lists, dynamic arrays, and void* generic lists
open
Week 6 Tut B System Calls & Signals File descriptors, syscalls, blocking vs non-blocking I/O, and POSIX signals
open
Week 7 Tut A Function Pointers Declaration syntax, callbacks, typedefs, dispatch tables, and qsort
open
Week 7 Tut B Compilation Pipeline Stages of C compilation: preprocessing, lexing, parsing, assembly, and linking
open
Week 8 Tut B Unix/Linux Processes and Memory Processes, threads, fork/exec/wait, popen, race conditions
open
Week 9 Tut A Fork Review & Safe Forking Review of fork/exec/wait/popen, race conditions, safe/unsafe fork patterns, and mmap for memory-mapped files
open
Week 9 Tut B Advanced IPC Pipes, FIFOs, shared memory, message queues, and semaphores for Inter-Process Communication
open
Week 10 Tut A Asynchronous I/O Interrupt-based vs epoll-based async I/O, epoll_create/ctl/wait, edge-triggered vs level-triggered
open
Week 10 Tut B POSIX Threads Thread vs process, pthread_create/join/exit, race conditions, thread-specific data
open
Week 11 Tut A Critical Sections & Mutexes Critical sections, race conditions, mutex locking/unlocking, initialization, types, and common pitfalls
open
Week 11 Tut B Deadlocks & Starvation Deadlock definition, wait-for graphs, lock ordering, prevention strategies, dining philosophers, starvation vs deadlock
open
Week 12 Tut A Synchronisation using Semaphores and Conditional Variables Semaphore API, condition variables, bounded buffer producer-consumer, semaphore vs mutex comparison, Amdahl's Law
open
Week 12 Tut B Recursion in C Base cases, recursive cases, the call stack, tail recursion, and common recursive algorithms
open
Questions for practice Questions that are being used in my slides.
open

Please fill up Student Survey and Tutor Feedback

Student Surveys QR Code