Introduction to Programming in C

Computer sketch

COMS S1003.001
MW 6:15p-9:25p
627 S.W. Mudd Bldg

Introduction to Programming in C is a general introduction to computer programming focusing on the C programming language. Students will learn structured program design and explore the Unix development environment.

Instructor

Matthew Burnside
mb@cs.columbia.edu
212-939-7156
521 CSB
Office hours: MW 5p-6p, in the CLIC lab.

TA

Abhilash Itharaju
ai2160@columbia.edu
Office hours: MW 9:25p-10:25p, in the CLIC lab.

Textbook

References

Prerequisites

This course requires a Computer Science account ($50.00). If this fee represents a financial hardship, contact me. Your CS username must be the same as your UNI. After purchasing your account, log on to MICE and under Access/Request access, you should request access level 6. Choose Remi Moss as your sponsor.

Grading

Course grades will be based on homework (40%), midterm (20%), final (30%), and class participation (10%). Homework will be collected at the beginning of class on the assigned due date. Late homework will NOT BE ACCEPTED except on prior approval of the instructor.

If you have a complaint about a grade, contact the TA by email within one week of the grade's assignment. If you're not satisfied, forward the relevant emails to me.

Academic honesty

Collaboration on homework and exams is not permitted. It is your responsibility to be aware of and conform to the department policy on academic honesty.

Bulletin board

The course bulletin board is at http://groups.google.com/group/coms1003-su07. When you apply for membership, make certain to enter your CUNI in the "Additional information" box.

Syllabus

May 21
Introduction, history, computer organization, compiler chain.
K&R: 1.1-1.2
Ritchie: The Unix Time-Sharing System
[hw1, hello.c, soln]
May 23
Statements, conditionals, simple C programs. [code]
K&R: 2.1-2.12
Ritchie: The Development of the C Language
May 28
No class! Make up on June 1.
May 30
Loops. [code]
K&R: 3.1-3.8
June 1
Functions, scope, macros, organization. [code]
K&R: 4.1-4.9, 4.11
Dijkstra: Go To Statement Considered Harmful
[hw2, broken.c, soln]
June 4
More functions, scope, organization. [code, fib]
K&R: 5.1-5.11
June 6
Arrays, pointers, review. [code]
K&R: 7.1-7.8
[Practice problems]
June 11
Midterm.
[soln, stats]
[hw3]
June 13
I/O, Strings. [code]
K&R: 6.1-6.8
June 18
Structures, dynamic memory.
[hw4, arithmetic.c, manual]
June 20
Science of computing.
June 25
Operating systems, networks, security.
Aleph One: Smashing the Stack for Fun and Profit.
June 27
Final exam.