CS2022: Introduction to C

Spring 2011



This course provides a brief introduction to C programming language and standard libraries, with an emphasis on programming for robustness and speed.



Although I do not assume students have any programming experience, some knowledge of Java or C# would be great.

Assignments & Grading

The homework assignments will be released and submitted through the Course Management System.

As this is a S/U course, to complete it successfully you need a "pass" on all of the homework assignments on C programming.  For each assignment, you need to earn at least 70 points to "pass".  This course follows the Cornell University Code of Academic Integrity. Each student in this course is expected to abide by the Cornell University Code of Academic Integrity. You should not discuss solutions to the assignments with your classmates.  This not only implies that you should have written them but also that you should understand them! You are free to consult books and online resources, but you will have to properly cite them.

Development Environment

OS: GNU/Linux
Compiler: gcc

Reference Book

There's no required book for this course. But contents and materials generally follow "the C Bible".


Syllabus and Lecture Slides

  1. Introduction
  2. Control Flow
  3. Functions and Make
  4. Pointers and Arrays
  5. Complex Types
  6. Memory Model
  7. Performance
  8. Preprocessor
  9. Standard Input and Output
  10. File and Variable-length Argument Lists
  11. Threads
  12. To Be a Master Programer