620 - Introduction to C Programming
Table of Contents
Course Overview
This is an introduction to the C programming language. C is
likely the most widely used language for systems and applications
programming in the Unix environment. This intensive class covers
most aspects of the C language, including the preprocessor and the
standard library. Students write programs during class labs that
implement the concepts taught.
Course Objectives
By the end of the course, students will be able to:
- Write and Execute a C Program
- Declare and Use C variables and datatypes
- Use C's branching and looping constructions
- Perform input and output from a C program
- Use C functions and paramter passing
- Use C pointers, arrays, and strings
- Use the C preprocessor
- Design a multi-file C program
Prerequisites
Some programming background is required. Students should be familiar
with variables, branching, and loops. These concepts are introduced in our
Unix shell scripting course if you have not
programmed in other languages before.
No prior C programming experience is expected.
Course Series
This course is often taken as part of the following course sequence:
Shell Programming for Unix Systems
Introduction to C Programming
Introduction to C++ Programming
Applications Programming for Unix Systems
SCO UnixWare 2.1 Internals
Writing UnixWare 2.1 Device Drivers
Course Topics
This course covers the following topics in a lecture/lab format:
- The Programming Environment
- The Development Cycle
- The cc Command
- The lint Command
- The cb Command
- A Simple C Program
- Basic C Program Structure
- Simple Operators
- Basic I/O
- Variables, Constants, and Operators
- Variables
- Constants
- C Operators
- Conversions and Type Casts
- Looping Constructs
- The for Statement
- The while Statement
- The do-while Statement
- Decision-Making Constructs
- Simple if Statement
- The if-else Statement
- The switch Statement
- Conditional Expression
- Arrays
- Using Arrays
- Character Strings
- Multidimensional Arrays
- Functions
- Writing Functions
- Returning a Value from a Function
- Functions Calling Functions
- Passing Arrays to a Function
- Variable Scope
- Automatic and Static Variables
- Recursive Functions
- Structures
- Declaration and Initialization of a Structure
- Structures and Functions
- Arrays of Structures
- Structures within Structures
- Arrays within Structures
- Pointers
- Introduction to Indirection
- Pointers and Structures
- Linked Lists
- Dynamic Linked Lists
- Changing Values in Function
- Pointers and Arrays
- Pointers to Functions
- Character Strings
- Using Character Strings
- Character I/O
- String Functions
- Escape Sequences
- String Conversions
- File I/O
- Standard I/O
- I/O Redirection
- Stream I/O
- Formatted I/O
- Character I/O
- String I/O
- Buffered Binary I/O
- Additional I/O Functions
- Buffer I/O
- Low-Level I/O
- Additional Data Types and Topics
- Program Jumps
- Unions
- Structure Bit Fields
- Enumerated Data Type
- Using typedefs
- Command-Line Arguments
- The Preprocessor
- The #define Directive
- The include Directive
- The #ifdeh, #ifndef, #else, #undef, and #endif Directives
- The #pragma Directive
- Compiler Options for the Preprocessor
- Modular Development
- External Variables and Functions
- Linking Modules
- Compiler Options