If you plan to study remotely, you’ll need to know the following information to take part. This will also be useful for in-person students in the event (that hopefully does not occur) that the class goes 100% on-line or individual students have to leave campus…or even if you have to miss a few days of class due to illness.
We’ll follow the “flipped classroom” method of instruction: starting after Tuesday’s class, I will post a video covering material for the next class. It is your responsibility to go through the video before class time. In class I’ll spend some time taking questions over what was covered and going into a bit more detail; then most days you’ll be given a lab assignment. There have always been a few in-class exercises (lab assignments) in this course, but this semester we’re going to dial that up to eleven: MOAR LABS. One of the main ways you’ll learn this material is by getting knee-deep into it yourselves. Sometimes this will be computer work, other times it will be computation using good old-fashioned pencil and paper. Anything not completed by end of class will generally speaking be due by the beginning of next class. The assignment will say when to turn it in.
Join the CS 270 virtual class: https://sewanee-edu.zoom.us/j/95101882439
If you are on Zoom during classtime, please mute your microphone and ask questions using the Chat feature. I will set aside a dedicated time (usually 12:00 CDT) for remote students to unmute and ask questions directly.
Course materials on BrightSpace (learn.sewanee.edu) include:
Course materials at my CSCI 270 website:
We will learn and use the C Programming Language and the gcc compiler (gcc stands for GNU Compiler Collection). We will also learn a subset of Intel's x86-64 assembly language, which needs no compiler, but we won't be writing programs in this language directly. So you'll need a computer with a C compiler, preferably a recent version of the gcc compiler.
This is also necessarily a Linux-centric course, and most Linux (or Unix) installations include the C programming language already installed. The main texts and most course material assume you are using the command shell in a Terminal window on Linux. The command shell is called
bash, and you've used it every time you open and interact with the Terminal window, whether you knew it or not.
Even if you don't have a computer with Linux installed, you can get access to a C compiler in one of two ways: use your computer to connect remotely to the Linux Lab computers, or install software so you can edit, compile, and run your C programs on your own machine.
Each way presents it's own special challenges. Let's look at each in turn:
Going in, you should know the biggest challenge here is not having a mouse, and therefore not having menus. Everything, including editing your files, will be done by keystroke commands.
hive.sewanee.eduusing the command
ssh -X -p 222 hive.sewanee.edu. The first time, you may see some official looking language asking if you really trust hive and want to continue, say yes (or whatever it asks for).
ssh -X biss.sewanee.edufor example.
exitor <Ctrl-D> to disconnect, once from the lab computer, and again from
A few important notes:
emacs. Dale swears by
vi, I'm a fan of
emacs. But you'll have to learn key commands for one of them if you don't already.
If at any point you run into problems, schedule a meeting with me at the next available office hour.
macOS - because the macOS is built on top of Unix, you already have a C compiler installed. The Terminal program
runs a Unix shell just like the Linux Terminal, it just runs a different one (the Ubuntu distribution, and in fact
must versions of Linux, use the shell program bash…you've been using bash all along). To enable bash on the
macOS, run Terminal (Launchpad→Other→Terminal) and choose Preferences. Under the General tab, the second entry is
Shells open with: and you want to choose the second option, Command (complete path) and enter
/bin/bash if it isn't there already.
You can customize the color scheme (I use Homebrew and Novel) and other aspects of the Terminal.
Windows - you have several options, and each is a bit of work. Warning: while I've installed Linux on Windows systems, it's been years. I have no recent experience with any of these steps, but hopefully we can find a friendly system administrator to help.
Options: [UPDATED 8/19/2020 to add two simpler options]