CS 262
Introduction to Low-level Programming
Spring 2017

Office hours

My office hours are Monday and Wednsday 1:45 - 2:45, Tuesday 9:00 - 10:00 and by appointment.

Programming assignments

Progamming assignments and labs will be posted on Blackboard.


Midterm exam
   Wednesday, March 8
   A review sheet for the midtrem is here.
Final exam
   Monday, May 15, 7:30am-10:15am.
   A review sheet for the final is here.


gdb reference

The "official" gdb reference card is here.

C compiler

Your programs must compile and run on the Zeus system here at Mason. However you may work on the (Unix) system of your choice.

You should program with the gcc compiler. gcc is available on (virtually) all Unix systems. This includes the mason cluster, zeus, GNU/Linux, Cygwin (on Windows), and Mac OS X.

For Windows users: A simple way of doing Unix programming on a Windows machine is to use Cygwin. Cygwin can be run from Windows (it does not require any virtualization or a reboot) which provides a Unix session to the user. The download from cygwin.com is a setup.exe file which then is used for a long download of the system and lots of other stuff of your choice. You must include the developement tools (or at least the gcc compiler listed under developement tools). If you want a windowed environment you should include X11 in your system. Another option for Windows users is to set up a virtual machine (VMWare has a free and easy to install virtual machine) and install a version of Linux. Ubuntu is a popular Linux distribution. Another which may be easier to adapt to from Windows is Linux Mint.

For Mac OS X users: gcc does not come installed on your Mac. You must install Xcode (an IDE for Mac) -- this will install gcc.


Emacs is a very powerful and popular editor. It is available on (virtually) all Unix-GNU/Linux systems. Learning Emacs is not particularly easy, but it is worth the effort. When you start Emacs typing ctrl-h t will start a lesson on how to use it. If you get frustrated you can get a session with a psychotherapist by typing alt-x doctor (or esc x doctor). Several tutorials on using Emacs are available on the web (Google "Emacs tutorial").

vim is an update of the classic vi editor. It, also, is available on virtually all Unix-GNU/Linux systems. A good way to start a brawl is to step into a room full of programmers and ask which of them prefer emacs and which prefer vi.

jEdit is an editor whose operation is similar to a word processor. It is available from http://www.jedit.org. It runs on all relevant systems. jEdit is easy to learn and complete documentation is available from the jEdit website.


The website for the GDB debugger is here with documentation here.
A command reference (pdf) for GDB is here.