CS1141: C for Java Programmers
MW 1:05 PM - 1:55 PM, Dow 642
Note: All homework must be turned in via Canvas. These PDFs are provided
as a convenience only.
Programs are to be turned in using Submit by the appointed time, or
according to the Slip Days rules.
Linux - Most linux distros either install GCC by default (eg
Ubuntu) or provide it in their package manager (eg Debian).
Installation (if needed) should be straight-forward. You'll also want to
be sure Make is installed. Debian's build-essential package includes
everything you need (and some things you don't).
Mac OS X - Mac users will need to install Xcode if they want to
use GCC. It's available free from Apple, and can be downloaded from the
Once you have Xcode installed, install the command line tools by
running the command xcode-select --install in a terminal.
Windows - Do not develop programs for this class on Windows.
While it's possible to run GCC on Windows, some of the course projects
cannot be completed in non-Linux environments, and in all other cases
you'll most likely end up with weird bugs. If you insist on using a
Windows machine, please consider either setting up a Linux virtual
machine or ssh-ing into the school servers. I will help you configure
Remote Work Tools
Komodo Edit -
This is the text editor being used in lecture. It's free and reasonably
full-featured, but you're free to use something else if you like.
Notepad++ - Another
fantastic text editor. A bit speedier than Komodo Edit, but it's
General C Stuff
PuTTY - PuTTY is an SSH and Telnet client for Windows. It requires
no installation, and is fully capable of connecting to the campus
servers. Linux and OS X users should use the SSH client provided by
FileZilla - FileZilla is a graphical FTP client that also supports
SCP and SFTP, and thus can be used to get files to and from campus
servers. It's available for Linux, OS X, and Windows.
Binky at Stanford - Hailed
by many as "the best 3 minute video on pointers---Ever." It may help,
it may not, but it's available. (There is also lots of other stuff from
Stanford's CS program at the same place.)
CPP Macros - A nicely readable introduction to C/C++ macros.
Includes a good discussion of pitfalls of macros. Pay special attention
to the 'decalog of a prudent macro writer' at the end of the page.
The Function Pointer
Tutorials - An introduction to using and understanding function
pointers. Note that things the author refers to as 'C++' deal with
classes. The C syntax will work fine in C++, too.
This page last updated 2 December 2014