CS W3101 – Section 001Programming Languages (C)Spring 2005, Mon 11am-1pm, 253 Engineering Terrace |
||
3/08/05 - HW 5 solution posted.
3/01/05 - HW 4 solution posted.
2/22/05 - Lecture 5 posted.
2/20/05 - HW 5 and Final Exam Info posted.
2/18/05 - HW 3 solution posted.
2/16/05 - Lecture 4 posted.
2/13/05 - HW 2 solution and HW 4 posted.
2/09/05 - HW 3 posted.
2/08/05 - Lecture 3 posted.
2/06/05 - HW 1 solution posted.
1/31/05 - HW 2 and Lecture 2 posted.
1/30/05 - Added link to ASCII table.
1/26/05 - Lecture 1 posted.
1/24/05 - HW 1 posted.
1/24/05 - Welcome to Programming Languages (C)!! The class bulletin board has been setup in CourseWorks. All registered students should have access. You can login using your UNI id (CUNIX id). Use it to post general questions about the class, C, or the assignments.
An anonymous feedback form has also been setup in
CourseWorks. You can use
this to let me know how I'm doing or suggest improvements. Go to
"Programming Languages (C)", "Test&Quizzes", and click on "Class Feedback".
By the end of the course, students will know how to write a significant program in C. Students will also learn the elements of good C programming style. The course is a good precursor to more advanced courses in system-level programming (Operating Systems) and object-oriented programming (C++, Java, C#). Students will learn
The course prerequisite is that students must be fluent in at least one programming language.
Every week (except the first) there will be a programming assignment due. You are responsible for all material covered in class and all the assigned reading, including any changes or additions announced in class.
Marc Eaddy (homepage)
me133@columbia.edu
IM: marceaddynyc, AIM
Office Hours: Mondays & Thursdays, 1pm-2pm, and
by appointment
Location: 603 CEPSR
![]() |
Brian W. Kernighan and Dennis M. Ritchie, The C Programming Language, Second Edition, Prentice Hall, Englewood Cliffs, NJ, 1988. ISBN 0-13-110362-8. (Amazon) (errata) (click here and scroll down to see the funny cover art) |
The Kernighan/Ritchie book is a great but minimalist reference for the C language. If you want a more verbose textbook-like introduction complete with examples, tips, hints, etc. I recommend the following:
![]() |
Tomasz Müldner, C for Java Programmers, Addison Wesley Longman, 2000. ISBN 0-201-70279-7. (Amazon) (errata) |
The C Programming Language and C for Java Programmers should be available on Fri, 1/28, at Morningside Bookshop (Broadway b/w 113th and 114th St).
K&R = The C Programming Language book, aka "The C bible"| # | Date | Lecture | Reading | HW Assigned |
| 1 | Mon, Jan 24 | Introduction, types | K&R Chap. 1, 2 | HW 1 (soln) |
| 2 | Mon, Jan 31 | Operators, control flow, arrays | K&R Chap. 3 | HW 2 (soln) |
| 3 | Mon, Feb 7 | QUIZ; Functions, modules, macros | K&R Chap. 4 | HW 3 (soln) |
| 4 | Mon, Feb 14 | Preprocessor cont'd, pointers | K&R Chaps. 5 & 7 | HW 4 (soln) |
| 5 | Mon, Feb 21 | Pointers, structures | K&R Chap 6 | HW 5 (soln) |
| 6 | Mon, Feb 28 | EXAM (in class) | K&R Chap. 8 |
(Note: Schedule is subject to change.)
The final grade will be based on:
The best four homework assignments - 70%
Quiz – 5%
Exam –25%
All assignments will be submitted electronically using a submission program
called "submit". Please do not email me your submissions.
The "submit" program can be used from an AcIS/CUNIX (cunix.cc.columbia.edu)
account. You should make sure your programs run on CUNIX, in addition to
whatever machine you actually develop on.
See the individual assignments for submission information.
Assignments are given every Monday and are due on the following Monday at MIDNIGHT. Late assignments will be marked down according to the following policy:
Turned in before MIDNIGHT on:
| Monday | Full Credit |
| Tuesday | -10% penalty |
| Wednesday | -50% penalty |
Assignments turned in after Wednesday will receive no credit.
Collaboration on any assignment is, as in all Columbia courses, strictly prohibited. Submitted assignments are automatically checked for similarities. Infractions will be given a zero for the entire assignment and the student(s) involved will be referred to the Deans. Please refer to Columbia University's Official Policy on cheating.
Please note that it is also not allowed to submit answers or homework solutions found online or from any other source, even if you cite the source. Feel free to ask me if you are unsure about something.
All programming assignments will be submitted electronically (see Homework
Submission above).
Assignments will be graded using an automated test procedure. Although you are
free to write the assignments in whichever text editor or development
environment you want, you should make sure it compiles and runs on the CUNIX
machines using the gcc compiler. I recommend you test
your programs using the CUNIX machines to avoid any surprises. You can access these
machines on-campus or off-campus via telnet/secure
shell client.
AcIS Internet Software
I strongly recommend that you use a C development environment that includes an integrated debugger (Microsoft Visual Studio, Borland, Macintosh Programmer's Workshop, Watcom, Symantec, etc.). This is the easiest way to find and fix bugs. Otherwise you'll have to result to using gdb, a cryptic command-line debugger for Unix, or using low-tech "printf debugging". No matter which development environment you use make sure you compile and test using gcc on the CUNIX machines as this is where the testing will be done.
Here is some additional info about developing off-campus.
EFNet Recommended C++
Compilers
Lint - static C program
verifier/checker
ASCII Table
C FAQ
C Questions
Quick Guide to
Unix
Quick Guide to
Emacs
History of the C
Language
10 Commandments for
C programmer
The Top 10 Ways to
get screwed by the C programming language
MSDN C/C++ Languages Reference
How to write a Makefile
Other courses and notes:
Aya Aner's C Notes
Tutorial on pointers
and arrays in C
Just plain silly:
errno
errors.funny
| Copyright © 2004,2005 Marc Eaddy | Updated 3/08/2005 | All rights reserved. |