Courses/Computer Science/CPSC 355.W2014/Tutorial Schedule

= List of Tutorials =

TAs and Tutorial Sessions
Rashmi Kumari T01 TR 13:00 (MS 119)

Michel Laterman T02 MW 15:00 MS 119

Tutorial Slides
http://pages.cpsc.ucalgary.ca/~rkumari/tutorials.php

SVN/Version Control
You will be submitting your homework assignments and your project via Subversion, a version control system. The CPSC Department maintains an SVN repository server.

SVN is normally used for keeping an ongoing history and backup of files in a project, but its properties also lend themselves nicely to the submission of computer science work assignments.

SVN Guide Book: http://svnbook.red-bean.com/

Using a Command Line
In which students learn how to speak directly to an OS without GUI intervention.


 * Read this essay: http://www.cryptonomicon.com/beginning.html
 * Introduction to the Unix command line

Using SSH
On Mac & Linux: Use the SSH command through the terminal
 * ssh -l

On Windows: The Windows machines in the the computer science lab have SSH Secure Shell installed.

Windows does not (by default) have an SSH program, so you need to get your own (PuTTY for example).

The C Language

 * C keywords
 * control flow: decision, repetition
 * if
 * while
 * for
 * do..while
 * switch/case
 * variables and data
 * variable naming, content, addressing (pointers)
 * primitive types
 * arrays
 * structures
 * unions
 * pointers
 * functions
 * call by value
 * call by reference

udcli / udis86
A series of tutorials on using the udcli (a front-end to the udis86 library) to disassemble byte streams.

NASM
A series of tutorials on using the NASM assembler.

GDB
Ongoing use of gdb is expected throughout the course, some introductory tutorials on gdb
 * starting up
 * basic commands
 * syntax
 * examining registers / machine state
 * examining memory
 * controlling control flow
 * breakpoints
 * watchpoints

GLIBC

 * I/O, file I/O
 * math
 * dynamic memory allocation

Number Systems Practice

 * base2
 * base8
 * base10
 * base16

GNU Tools

 * hexdump
 * od
 * nm
 * objdump
 * objcopy
 * readelf