Introduction to C Programming
Course Notes Main Page


This web site contains course notes for an introductory C Programming course, that does not include any features of C++ ( Until the very last section, which describes the special features available in C++ but does not attempt to teach how to use or implement them. )


  1. This version of these course notes was assembled Spring 2013 by John Bell, for CS 107 at the University of Illinois Chicago.
  2. The required textbook for CS 107 in Spring 2013 is "C Programming, A Modern Approach" by K.N. King. These notes are organized roughly according to the chapters of that book, in the order in which they are being taught this semester, which is not always the order in which they are presented in the book.

Note: Any topic which does not have a page linked to it, or for which the linked page is unavailable, is under consideration and/or under development, and is subject to change.

Disclaimer: The following note pages are just that - notes. They serve as reminders to myself of what I want to talk about, but not much more. They do not replace the need for students to take their own notes during class, and they certainly do not replace reading and studying the material in the required textbook.

Course Notes, by Topic

  1. Introduction and Fundamentals

  2. Program Development Approach

  3. Data Types

  4. Formatted Input and Output

  5. Library Functions

  6. Expressions ( Operators )

  7. Selection ( Branching, Decision Structures )

  8. Loops

  9. Arrays

  10. Functions

  11. Basic Text File I/O

  12. Pointers

  13. Character Strings

  14. Additional File I/O ( including Binary I/O and File Manipulations )

  15. Structs, Unions, & Enums

  16. Advanced Pointers

  17. Writing Large Programs ( Multi-file development, #include )

  18. Preprocessor Directives ( Beyond #include )

  19. Introduction to Object-Oriented Programming (OOP) and C++ Features