Courses/Computer Science/CPSC 457.S2016/Tutorial Schedule

From wiki.ucalgary.ca
< Courses‎ | Computer Science‎ | CPSC 457.S2016
Revision as of 18:31, 27 June 2016 by Mbclark (talk | contribs) (added missing tutorials for a2 work/demo periods)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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


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

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

Resources

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

Resources

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


June 15,16: A2 Work Period

Topics

Material

Resources

June 20,21: A2 Demo

Topics

Material

Resources

June 27,28: Java Threads

Topics

Multithreaded programming in Java

  • Thread creation
  • Thread synchronization

Material

Resources

June 29,30: TBD

Topics

Material

Resources