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

Tutorial topics that the TA will discuss each week are below. This schedule is under construction and is subject to change as needed.

Tutorial session 1 takes place from 11 to 11:50.

Tutorial session 2 takes place from 4 to 4:50.

Both begin on 17 January and end on 12 April.

Daniel's Feedback Form
The feedback form is available here. It is anonymous. Please use with responsibility.

Jan 17: SVN tutorial
A brief tutorial of using Subversion, a source code control package.

Other source or revision control packages include cvs and git, but this class will use svn, especially for submitting homework assignments.

Includes use of ssh-based public key authentication.

Reading

 * Version Control with Subversion (Online eBook)

Jan 19: Introduction to the C language

 * A refresher on the C programming language, including language basics, the C library, I/O, error handling, getopts, cmd line args, environment, the C preprocessor macro language, header files, linking, gcc options, debugging.


 * Practice of writing basic Makefiles and controlling compilation from the command line.


 * Writing a Unix Shell

This content will be spread along the next 5 sections, i.e., from Jan 19 to Feb 02.

Jan 24: Intro to C (cont.) / Writing a UNIX shell
A continuation of the 19th, we will talk briefly about C and move on to a guided exercise of implementing a simple shell in C.

This exercise intends to reinforce C programming skills, I/O, and invocation of standard system calls from userland or via the C library. It should also offer insight into the operation of the standard set of Unix shells and put the use of Makefiles into practice.

We will continue developing our UNIX shell for the next two sessions.

Jan 26: Writing a UNIX shell (cont.)
A continuation of the last tutorial session.


 * Slides from today
 * Practice exercise from today
 * Complete source code from today

Jan 31: Writing a UNIX shell (cont.)
Conclusion of the previous tutorials. Topics: Running in background, system calls


 * Slides from today
 * Practice exercise from today

Feb 2: Installing and running a virtual machine in VMWare
A guided tour of installing an OS image into VMWare Workstation.

Feb 7: Measuring time
An exercise on performing measurements, using the "time" command and also performing system calls.


 * Slides from today

Feb 9: An overview of pthreads
An introduction to the pthreads package, API, and features. Creating and destroying pthreads.


 * Slides from today

Feb 14: An overview of pthreads (cont.)
Continued discussion of pthreads API. Synchronization using Mutex.


 * Slides from today

Feb 16: The Patch and Diff tools
An overview of using patch(1) and diff(1)

Time also allotted for questions about HW 3.


 * Slides from today

Feb 28: Midterm Review
A discussion and review of topics that may appear on the midterm exam.

Mar 6: Configuring, Compiling, and Installing a fresh kernel
Using your virtual machine, download, configure and compile.

Mar 8: Configuring, Compiling, and Installing a fresh kernel
Installing a fresh kernel, introduction to GRUB and starting the development of a new system call.

Helpful for HW 4.

Mar 13: Modifying a kernel (creating a system call)
Today we should finish our system call.

Mar 15: Kernel (Final steps) and HW 4 Questions
We go over the system call implementation (as per task list from last tutorial), then the space is yours for questions about HW4.

Mar 20: Program supervision with Ptrace
Today we had a refresh/review on Ptrace. We looked at the kernel source for code that is related to ptrace (such as API and implementation).

Mar 22: Homework 4
Use this time to work on HW4.

Any questions will be welcome!

Mar 27: LKM

 * Slides from today
 * Practice exercise from today

Mar 29: ELF overview

 * Slides from today
 * Practice exercise from today

Apr 3: LKM and system calls
Today we talked about how to use LKMs to modify a system call implementing what is usually called a "hook". As practice, we modified sys_open to send a message using the syslog system (printk).


 * Practice exercise from today

NOTE: Due to the slide format, in special because of some pictures in the slides. This slide set is not available yet. Coming soon!

Apr 5: SystemTap

 * Slides from today
 * Practice exercise from today

Apr 10-12: No Tutorials
As suggested by the instructor, there will not happen "formal" tutorials this week. However, during the tutorial times, the TA will be in class in case you need.