Software and Homework Setup


C Programming. Here are a few additional references where you can refresh basic C programming.


I have put up some videos on YouTube demonstrating some of the basics of logging into and using the CS server. You can view the YouTube channel at Or click on one of the links here to view a particular video.

Software Environment/Installation/Login

Working remotely on the CS server.   For most of the CS courses, you will only need the ability to login remotely to the CS server and the ability to transfer files to the CS server.

If you are using Windows, you will need to install Putty and FileZilla. Putty lets you login remotely to the CS server (with a text terminal). FileZilla lets you transfer files to the CS server.

If you are using Mac or Linux or Unix, you do not need to install putty. Instead, you can open your terminal or shell program, and then type "ssh". For file transfers, you can still use FileZilla, or any other sftp program.

Installing Putty and FileZilla.   To install the FileZilla ftp client, go to FileZilla. To work on your assignments on the CS server, you must install Putty if you are using Windows. If you are using Linux or Mac, you can just use ssh from the terminal/shell.

Login to CS server.   You will turn your assignments in by leaving them on the Computer Science server. I have administrator access to this server and can easily grade your homeworks once they are on the server. In your home directory create a new directory called handin. Make sure to use all lower case. You will leave your completed C programs in your ~/handin/ directory.

Working on your own system.   If you are using Windows and do not always have an internet connection, you can install the programming tools on your own computer. The easiest way is to install Cygwin. This gives a program that looks kind of like Putty, but is running on your own computer. You can then do most of the things you'd do on the CS server, but they'd be running just on your computer.

Homework Assignments

The homework assignments are posted in the in class code directory for the class you are taking. I will announce in class and/or by email when a new assignment has been posted. Each homework assignment will list the date the assignment is due. Late assignments will not receive any credit; I will grade them just so you know how you did.

To complete a homework assignment, (1) download the assignment from the in class code, (2) make changes to the file provided to complete the assignement, (3) upload your completed assignment to the CS server before the due date. OR, log into CS with putty/ssh, copy the assignment to your own directory, make changes to complete the assignment, and copy it into your handin directory. To download the file, you should browse to the in class code on the course website, right-click, and choose "Save as" or "Save target as" (depending on your browser) to save the file to your computer. DO NOT copy/paste into a word document, or send an email with your assignment. DO NOT change the name of the homework file - keep the name exactly the same as on the class website.

For some hw assignments, I may post a Tegrity video where I describe the hw assignment and show how my correct solution works. You will need to watch this video on your own time. The reason I do this is to FORCE you to spend some time outside of class looking at the homeworks.

Shell commands when logged into CS server

When you use putty from Windows (or ssh from Linux/Unix/Mac) to connecto the CS server, you have a text-based login to the CS computer. When you first login you are given a prompt, and it is ready for you to type some commands. Below is a list of the command commands. For more, you can search online for something like Linux shell commands.


If you are programming by logging into the CS server or using Cygwin to edit your files, you have some choice about what text editor to use. Those installed on the CS server include: vi, pico, nano, emacs. If you want to use a strictly Windows text editor, you might try Notepad++. I use emacs because it does auto-indenting and other things. If you decide to use emacs, you'll need to learn the shortcuts for things. The ones I use most are the following (search online for others).