CS2022: Introduction to C

Fall 2009



This course provides a brief introduction to the C programming language and standard libraries for students with programming experience at the CS1110 level. We will cover basic syntax, programming paradigm, standard libraries, and debugging for C on the GNU/Linux platform.


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.  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. If there is enough interest, a more elaborate "final" project might be an option for completing the class, provided that it covers all features in the homeworks.

Development Environment

The class will use Linux as an environment for development and testing. Programs will be compiled with gcc and debugging will be done with gdb. You can do the homeworks on other platforms, but testing will be done on Linux and thus it is recommended to try to use Linux.


Homeworks will be published here and should be handed in via CMS

Syllabus and Lecture Slides

  1. General Introduction
  2. Basic Syntax, Hello World
  3. Pointers
  4. Memory Model
  5. Arrays & Strings
  6. Complex Types
  7. Debugging
  8. The Preprocessor
  9. File & Network IO
  10. Serialization & Bitwise Operations
  11. Threads
  12. GoTo, Exceptions, and Inline Assembly
  13. Course Recap