Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

COMP2017 Systems Programming Tutorial Notes

Semester 1, 2026 | The University of Sydney

TutorHao Ren
Emailhao.ren@sydney.edu.au

Welcome! This repository contains notes and examples for my COMP2017 tutorial classes. They are intended to help you review key concepts, practise further, and revise after class.

Please note that if anything in these notes differs from the lecture slides, the lecture slides take precedence.

If you have questions about the tutorial content, please feel free to get in touch by email or ask me in tutorials.


2026 S1 Feedback for Teachers (FFT)

As your tutor, your feedback really matters to me. It helps me understand what is working well and how I can better support your learning. Please take a few minutes to complete the "Feedback for Teachers" survey honestly and thoughtfully. I would especially appreciate any comments you are willing to share. If you have enjoyed our tutorials, please let me know what you found most helpful or memorable. If you think there is something I could improve, I would also be grateful for your kind suggestions. The survey is completely voluntary and anonymous, and your feedback will help make our tutorials more effective, engaging, and meaningful for everyone.
https://student-surveys.sydney.edu.au/students/

Table of Contents

Weeks Tutorials Ed Lessons Contents
Week 2 Tutorial A W1 All
  • Compiler
  • C Documents
  • C Types
  • Simple Pointers
Tutorial B W2 Part 1
  • Intro to Linux
  • Command Line
  • PATH
  • Common Linux Commands
  • sizeof
  • Pointer Arithmetic
  • Basic I/O
Week 3 Tutorial A W2 Part 2
  • ASCII Codes
  • String in C
  • Basic String Manipulations
Tutorial B W3 Part 1
  • Preprocessor
  • Compiler Flags
  • C String Standard Library string.h
Week 4 Tutorial A W3 Part 2
  • More String Manipulations
  • C Math Standard Library math.h
  • Bits
  • Bitwise Operators
Tutorial B W4 Part 1
  • Struct
  • Union
Week 5 Tutorial A W4 Part 2
  • File Operations
Tutorial B W5 Part 1
  • Stack and Heap
  • Memory Management Functions
  • Singly Linked List
Week 6 Tutorial A W5 Part 2
  • Doubly Linked List
  • Circular Linked List
  • Void Pointers
  • More Exercises about Dynamic Memory Programming
Tutorial B W6 Part 1
  • Device I/O and File Descriptors
  • System Calls
  • Non-blocking `STDIN`
  • Function Pointers
Week 7 Tutorial A W6 Part 2
  • Function Pointer Exercises
  • Signals
  • Signal Safety
  • signal() and sigaction()
Tutorial B W7 All
  • Compilation: C Compiling Process
  • Linkage
  • extern and static
  • const and restrict
  • Advanced C Programming Exercises
Week 8 Tutorial A N/A Assignment P1 Code Interview
Tutorial B W8 Part 1
  • Process
  • Race Conditions
  • fork(), wait(), and exec*()
Week 9 Tutorial A W8 Part 2
  • Safe fork() + exec*()
  • More About sigaction()
  • Process Exercises
  • Advanced Signal Manipulation Exercises
Tutorial B W9 Part 1
  • Inter-Process Communication (IPC)
  • Message Passing: Pipes and pipe() in C
  • File Descriptor Table
  • IPC Exercises
Week 10 Tutorial A W9 Part 2
  • Asynchronous I/O: Interrupt-Based vs epoll-Based
  • select(), poll(), and epoll()
  • socketpair()
  • Shared Memory
  • Brief Intro to Semaphores (More in W12 Tutorial A)
  • Advanced IPC Exercises
Tutorial B W10 Part 1
  • Threads
  • Thread Exercises
  • Threads vs Processes
Week 11 Tutorial A W10 Part 2
  • Critical Sections
  • Mutexes
  • ThreadSanitizer
Tutorial B W11 Part 1
  • Deadlocks
  • Read-Write Locks
Week 12 Tutorial A W11 Part 2
  • Semaphores
  • Semaphore Exercises
  • Condition Variables
Tutorial B W12 All
  • Recursion
  • Recursion Overhead
  • Recursion with Multi-Threads
Week 13 Tutorial A N/A Assignment P2 Code Interview
Tutorial B Revision
Passway to Pass Workshop Part 2 Slides
Part 2 Exercises - Questions
Part 2 Exercises - Solutions

Tutorial Schedule

Time Monday Wednesday Thursday
10:00-11:00 B/02
11:00-12:00 B/47 B/03
12:00-13:00 A/14 B/13
13:00-14:00 A/15 B/14
14:00-15:00 A/16
15:00-16:00 A/17
16:00-17:00 A/18 A/39
17:00-18:00 A/19 A/38

I taught A/14, A/15, and A/16 in Weeks 2 and 3 only.


Copyright

Copyright © 2026 by Hao Ren. All rights reserved.

About

Hao Ren’s Tutor Notes for COMP2017 Systems Programming (Semester 1, 2026)

Topics

Resources

Stars

33 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages