Courses/Computer Science/CPSC 355.W2014/Tutorial Schedule
Contents
- 1 List of Tutorials
- 1.1 TAs and Tutorial Sessions
- 1.2 Tutorial Slides
- 1.3 SVN/Version Control
- 1.4 Using a Command Line
- 1.5 The C Language
- 1.6 udcli / udis86
- 1.7 NASM
- 1.8 GDB
- 1.9 GLIBC
- 1.10 Number Systems Practice
- 1.11 GNU Tools
- 1.12 Taking Apart ELF files
- 1.13 ASCII
- 1.14 Floating Point
- 1.15 Disassembly Tools and Debuggers
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 <username> <server>
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[1] 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