Tutorial Notes & Resources
Textbook Access
- Visit the SFU Bookstore and navigate to the correct course
C Programming
- Essential C, from Stanford University. Covers the basics of the C language.
- Programming in C (online notes).
- Brian W. Kernighan, Dennis Ritchie, The C Programming Language, 2nd edition, 1988.
Linux Programming
- Brian Fraser's YouTube videos on Linux Programming: VM, editors, C programming, Makefiles, pthreads/mutex, and Valgrind
- Linux shell tutorial from Software Carpentry: For shell beginners
- Threads: POSIX thread library documentation
- Unix Programming Tools, from Stanford University: the gcc compiler, make, emacs, and summary of shell commands
- Running Linux, 4th edition: from SFU library
- Xemacs Reference Card, from Stanford University, a two-page summary of the Xemacs commands.
- Free materials to learn Linux
- Makefile Guide: Covers the basics of makefiles
- Free Makefiles book
Software Setup and Tools
- Accessing CSIL remotely
- Note: You must register for SFU Multi-Factor Authentication to access CSIL remotely
- How to access the CSIL Linux machines
- To access one of the Linux machines in CSIL using the SFU VPN, you can use RDP, or SSH to a particular machine
- Virtual Machines
- VirtualBox: Free virtual machine, installed in Linux lab, runs under most OS's
- VM Ware Player: Free virtual machine, use for Linux development under Windows
- Ubuntu Linux: Download 64-bit ISO to run in VM Ware or Virtual Box
- VS Code IDE/editor
Helpful Topics from CMPT 295
Overall, CMPT 295 gives you a good mental model for what is going on inside your computer system. Below are some of the specific topics from CMPT 295 that are relevant for this course:
- Basics of the binary number system
- Von Neumann architecture and the fetch/decode/execute cycle
- Basics of assembly/machine language instructions
- You don't need to remember any specific assembly language, just the details of how the generated machine code is executed
- Basics of memory architecture
- Understanding memory addresses
- Main memory (RAM)
- Cache memory and locality of reference
Updated Fri Jan. 05 2024, 15:12 by hskhangu.