Courses/Computer Science/CPSC 457.S2016/Tutorial Schedule
From wiki.ucalgary.ca
< Courses | Computer Science | CPSC 457.S2016
Tutorial topics that we will discuss each week are below.
T01 MW MS160 13:00 - 14:50 Mohammad Reza Zakerinasab T02 TR MS176 10:00 - 11:50 Mohammad Reza Zakerinasab (May 11 - Jun. 7) T02 TR MS176 10:00 - 11:50 Mike Clark (Jun. 9 - Jun 30) T03 MW MS176 13:00 - 14:50 Mike Clark
Contents
- 1 May 09,10: Introduction to C (Part 1)
- 2 May 11,12: Introduction to C (Part 2)
- 3 May 16,17: Environment Setup
- 4 May 18,19: LKMs
- 5 No Tutorial May 23 (Victoria Day)
- 6 May 24,25: Linux Kernel Development
- 7 No Tutorial May 26
- 8 No Tutorial May 30,31
- 9 No Tutorial June 1,2
- 10 June 6,7: Multi-process and Multi-threaded Programming
- 11 June 8,9: Midterm Review
- 12 June 13,14: A2 Work Period
- 13 June 15,16: A2 Work Period
- 14 June 20,21: A2 Demo
- 15 June 27,28: Java Threads
- 16 June 29,30: TBD
May 09,10: Introduction to C (Part 1)
Introduction to the C syntax and compilation of C programs.
Topics
- Preprocessor Directives & Header Files
- Compilation & Linking
- Data Types
- Operators
- Control Structures
- Data Structures
Material
Resources
- Third section of the MAN pages (Library functions).
$ man 3 <TOPIC>
- Interactive C programming exercises - Quick and helpful interactive programming exercises intended for beginners learning C.
- The C Programming Language Book - Free, online version of the book sometimes referred to as the "K&R book". This book was co-authored by the man who 'originally designed and implemented the language, as well as co-designed the Unix operating system'.
- GNU C Reference Manual - Comprehensive, but it may be a bit overwhelming. So just use it as reference.
May 11,12: Introduction to C (Part 2)
Introduction to the C syntax and compilation of C programs.
Topics
- Pointers & Casting
- C Standard Library
- Advantages and disadvantages of C
Material
Resources
- Undefined Behaviour in C - An example of the dangers of overly-complicated statements in C.
May 16,17: Environment Setup
Setting up the Linux VM environment and the git repository for the assignments.
Topics
- USB Formatting
- Virtual Machine (VM) Setup
- git
- CPSC GitLab
Material
May 18,19: LKMs
An introduction to loadable kernel modules and kernel memory allocation.
Topics
- Loadable Kernel Modules vs. Applications
- Writing simple LKMs
- Kernel memory allocation
Material
No Tutorial May 23 (Victoria Day)
May 24,25: Linux Kernel Development
Topics
- Modifying Linux kernel source code
- Adding new system calls to the kernel
- Compiling the kernel from source
- Installing a new kernel
Material
- Tutorial -VM Modifications ( YOU NEED TO DO THIS FIRST!)
- Tutorial - Kernel Development
- Tutorial - Diff & Patch
Resources
- Linux Cross Reference - Browse different versions of the Linux kernel.
- Linux README - These are the release notes for Linux. Read them carefully, as they tell you what this is all about, explain how to install the kernel, and what to do if something goes wrong.
- Linux Documentation -The Linux kernel documentation has a wealth of information about all of the parts of the kernel.
- kernel.org - Repository of kernel source code
- Local Mirror of kernel.org - University of Calgary mirror of kernel source code.
- Verifying kernel code - How to verify the integrity of the source code you download.
- Verifying older kernels - A different key for kernels released prior to Sept. 2011
- Why do we need to verify older kernels differently? - An explanation of why the signing keys once used were revoked.
No Tutorial May 26
No Tutorial May 30,31
No Tutorial June 1,2
June 6,7: Multi-process and Multi-threaded Programming
Topics
Multiprocess programming
- Process creation
- Process IDs
- wait() and exec()
Multithreaded programming
- Thread creation
- Thread wait (join)
- Parameter passing
Material
- Tutorial Slides
- Worksheet1: Multiprocess Programming
- Worksheet2: Multithreaded Programming
- Source Code for Worksheet 1
- Source Code for Worksheet 2
Resources
- Linux Tutorial: Fork, Exec and Process Control
- Linux Tutorial: POSIX Threads
- Multithreaded Programming
June 8,9: Midterm Review
Topics
Material
- Some Midterm Review Questions slides
- You can find an answer sheet for those questions here
Resources
June 13,14: A2 Work Period
Topics
Material
Resources
- Assignment 2 specs
June 15,16: A2 Work Period
Topics
Material
Resources
- Assignment 2 specs
June 20,21: A2 Demo
Topics
Material
Resources
- Assignment 2 Rubric
- Assignment 2 Demonstration Procedure
June 27,28: Java Threads
Topics
Multithreaded programming in Java
- Thread creation
- Thread synchronization