CSC 272 - Unix and C - Fall 2008

An introduction to the Unix operating system and the C language

Augsburg Weekend College

Class: Friday 6:00 – 9:30 PM

Students should have previous experience with a programming language. This course requires hands-on work. Students should either have access to a Windows, Unix, Linux, or OS X system with a gnu C compiler. The primary lab will be the Linux machines in Sverdrup 203G. You will be able to use those machines remotely by logging in to one of the CS lab machines (eg, eagle) using ssh.

Instructor:

Noel J. Petit
Office: Sverdrup 203D Email: petit@augsburg.edu Phone: 612-330-1061

Text:

The C/Unix Programmer’s Guide, Jason W. Bacon, 1998, ISBN 0-9670596-0-7

Requirements:

Assignments are all short programs demonstrating some part of C or Unix. Each week, a short description of the new program will be handed out. You are expected to do your own programming. The programs should be well documented with an explanatory header and lots of notes in the code. Keep all of your code well organized in folders as you may reuse some parts of previous assignments.

To work on c programs at home, I recommend the gnu c compiler from http://gcc.gnu.org/ for a unix or linux machine. This will require some work on your part to download and install some software. Read the web pages carefully on doing the installation. If you want to run windows then there is a windows c compiler at http://www.cs.virginia.edu/~lcc-win32/. You may have to do some Google searching for other compilers.

A new option is to use one of the UNIX systems that is available thru the new book "Guide to UNIX Using Linux" by Michael Palmer (4 th Edition, Thompson, 2008). This book is $75 on Amazon. It includes a DVD with Fedora Linux Core 6 that you can install on your PC if you have about 5 Gigabytes of disk space on a separate partition. It also includes a CD with Knoppix Linux 5.1.1 that is a Liunx that runs off the CD (nothing to install). This is a great guide to UNIX and gives you Linux to boot!

Assignments are to be your own individual work. Do NOT share code. Code that is identical to other’s work (or found on Google.com) will be given a zero grade.

Grading will be based on:

Fifteen assigned programs 70%

Quiz I 10 %

Quiz II 10 %

Final Exam 10 %

Course Outline

Week

Topics

Chapters

1

Intro and Binary Numbers

1,2

1

Hardware (read quickly)

3

1

Unix Overview

4

2

Programming in C, Data Types, Input/Output

5, 6, 7

3

Quiz I

1-7

3

C Statements, Expressions

8

3

Decisions and Loops

9,10

4

Functions

11

4

Make and Preprocessor, Pointers

12, 13, 14

5

Arrays, Strings, Dynamic Memory

15, 16

5

Function Pointers, Structures, Unions

17, 18

5

Quiz II

1-18

6

Debugging, Unix Libraries, Files

19, 20, 21

6

Unix Character Functions and File I/O

22, 23, 24, 25

7

Unix Processes, Interprocess Communication

27, 28

7

Programming with Threads

Handout

8

Final

1-28

See Moodle for assignments, handouts and other notes.