Course Overview:
This course teaches students how to program in Standard C. The course is not hardware or operating system-specific.
Goals:
Provided students meet the prerequisites, at the end of the course they should have a good understanding of the following:
1. Have a working knowledge of the language's statements and operators.
2. Have a working knowledge of the purpose and syntax of the preprocessor.
3. Be conversant about the standard runtime library and its headers.
4. Have been exposed to issues regarding the importance of programming style.
5. Be aware of the strengths and weaknesses of C and what it will take to master and exploit it.
6. Be able to "hit the ground running" with regard to working on existing code and in writing new code.
Who This Course Is Appropriate For:
Programmers and technical managers who are seriously interested in, or are about to begin, programming in the C language; or who wish to evaluate the suitability of C for projects and/or programming personnel.
Prerequisites:
A strong working background in at least one of the following languages is expected: any assembler, any systems language (such as PL/I, PL/M, or Bliss), Ada, Algol, compiled BASIC, DIBOL or DBL, FORTRAN, or Pascal.
If COBOL is the only language a student knows, the transition will likely require extra work since COBOL is a different kind of language from the others listed. However, the transition can be made.
If a student's only or primary language is any of the following: Interpreted BASIC, database query language, scripting language, or HTML, they will almost certainly have considerable difficulty keeping up and are advised to seek a language more conducive to learning a first programming language, such as Visual BASIC, C#, or Java.
Attendees are expected to be conversant with the following:
- Communicating between procedures by passing arguments and/or by returning a value.
- The terms bit and byte.
- Binary and either octal or hexadecimal number systems and arithmetic.
- Looping and testing language constructs.
- Single- and multi-dimensional arrays.
- Global variables.
- Creating and using sequential files.
- Formatted I/O.
- Using a text editor.
- The purpose of a compiler and linker/link editor.
Students interested in C from a portability perspective should have some knowledge of different hardware platforms and operating environments.
Materials:
Each buyer will receive one or both of the following materials, depending on purchase:
Programming in C – This manuscript was written specifically for teaching. It serves as a useful reference once the course has been completed.
Source Code – An electronic version of all of the source code shown in the text of this course.
Detailed Topics:
The main topics covered are:
- Identifiers and constants
- Types and type conversion
- Looping, branching, and testing
- Storage classes
- Operators and expressions
- Functions and argument passing
- Single and multi-dimensional arrays
- All preprocessor directives
- Philosophy and syntax of data pointers
- Screen, keyboard, and basic formatted file I/O
- Command-line processing
- Structures, unions, and bit fields
- String manipulation
- Dynamic memory allocation
- Implementation of linked lists