Special Topics - Programming in C

CS197C - UMass Amherst - Spring 2018

Course Information

InstructorJohn Foley jfoley@cs.umass.edu
TimeT 2:30-3:45 - Lecture / Coding Lab
LocationEdlab LGRT225
PrerequsitesCS121 & CS186
TextbookNone required; try: Wikibook on C Programming
Office HoursI don't have a private office! I'll probably arrange to be hanging out somewhere before class on Wednesdays, but don't hesitate to email me for a meeting.

Course Description

A brief introduction to the C programming language for students with a good working knowledge of Java and data structures. This course is good preparation for COMPSCI 230 and courses that use C and C++. Prerequisites: COMPSCI 121 and 187. Runs for 6 weeks. This course is for CS minors and majors only, but it does not count towards either degree. 1 credit.

Course Goals & objectives

The goal of this course is to provide a hands-on experience with C programming. A successful student will be comfortable compiling C programs at the command line and is familiar with basic structured programming concepts: structs, unions, functions, enums, loops, switch statements, and standard IO mechanisms.


This class is a 1-credit P/F class. If you get a 65 or higher you will "Pass" and it will not affect your GPA. If you receive a lower grade, 1 credit point of a zero will be averaged into your GPA.

30% - Class Exercises

Usually we will begin class with an example program for you to type into the computer, compile & run. In this workshop time, we will discuss concepts. You will receive full credit if your program compiles and runs by the midnight the following week.

30% - Worksheets

Your worksheet assignments will be C files that are partially created by me. By filling out the function definitions and blocks you will be able to edit and get full credit on these files. These are also due midnight the following week.

The worksheets will be located on the umassc.ddns.net machine under the worksheet1 ... worksheet6 directories

40% - Projects

Starting Week 4, you will begin work on a small project. We will work on selecting one or two appropriate projects together. You will not be able to work in groups or to use any projects from other classes (i.e., CS230) for these projects. You will either do 1 medium sized project (40pts) or 2 small projects (20 pts each). More information on the project and suggestions are available here.

Where are the slides?

This class is not a puzzle where you decode the slides and shuffle them into the assignments. The code itself will be your resource, and you are encouraged to use high quality resources on the internet to help in certain circumstances. I may occasionally present slides, but I find them to be a poor method of learning new programming languages: you're only likely to learn new syntax, ideas, and concepts if you put them to use.