Introduction to C Programming
This course provides students with a comprehensive study of the C programming language. Classroom lectures stress the strengths of C, which provide programmers with the means of writing efficient, maintainable, and portable code. The lectures are supplemented with non-trivial lab exercises.
This course is for programmers who have had experience in any programming language or have been tasked with a C programming project, and other technical types including managers and customer support engineers who need to know C.
PREREQUISITES
Students should have taken the Software Development for Non-Programmers course or have experience with a programming or an assembly language.
Upon completion of this course, students will be able to:
- Write C programs that are non-trivial.
- Use the variety of data types appropriate to specific programming problems.
- Utilize the modular features of the language.
- Demonstrate efficiency and readability.
- Demonstrate the use of the various control flow constructs.
- Use arrays as part of the software solution.
- Utilize pointers to efficiently solve problems.
- Include the structure data type as part of the solution.
- Create their own data types. Use functions from the portable C library.
- What is C?
- Background
- Sample Program
- Components of a C Program
- Examples
- Data Types
- Variables
- Naming Conventions for C Variables
- Printing and Initializing Variables
- Array Examples
- Compiling and Executing a C Program
- Functions
- Invoking Functions
- Elementary Operators
- The Assignment Operators
- Number of Operands
- The Conditional Operator
- Increment and Decrement Operators
- Examples of Expressions
- if
- if-else
- while
- for
- Endless Loops
- do while
- break and continue
- switch
- else if
- #define
- Preprocessor Macros
- #include
- Conditional Compilation
- #ifndef
- Character I/O
- End of File
- Simple I/O Examples
- Simple I/O Redirection
- I/O with Character Arrays
- Introduction
- Function Declarations
- Returning a Value or Not
- Function Prototypes
- Arguments and Parameters
- Organization of C Source Files
- Extended Example
- The getaline Function
- The strcmp Function
- The check Function
- The atoi Function
- The average Function
- Summary
- Defining the Problem Space
- A Programming Example
- Bit Wise Operators
- Bit Manipulation Functions
- Circular Shifts
- Fundamental Concepts
- Aggregate Operations
- String Functions
- String Functions Example
- Array Dimensions
- An Array as an Argument to a Function
- Two-Dimensional Array Example
- String Arrays
- Compiling Over Several Files
- Function Scope
- File Scope
- Program Scope
- Local static
- register and extern
- Object Files
- Libraries
- The C Loader
- Header Files
- Fundamental Concepts
- Pointer Operators and Operations
- Changing an Argument with a Function Call
- Pointer Arithmetic
- Array Traversal
- String Functions with Pointers
- Pointer Difference
- Prototypes for String Functions
- Relationship Between an Array and a Pointer
- The Pointer Notation *p++
- Dynamic Storage Allocation – malloc
- Functions Returning a Pointer
- Initialization of Pointers
- gets – a Function Returning a Pointer
- An Array of Character Pointers
- Two Dimensional Arrays vs. Array of Pointers
- Command Line Arguments
- Pointers to Pointers
- Practice with Pointers
- Function Pointers
- Fundamental Concepts
- Describing a Structure
- Creating Structures
- Operations on Structures
- Functions Returning Structures
- Passing Structures to Functions
- Pointers to Structures
- Array of Structures
- Functions Returning a Pointer to a Structure
- typedef – New Name for an Existing Type
- Bit Fields
- unions
- Non-Homogeneous Arrays
- Enumerations
- System Calls vs. Library Calls
- Opening Disk Files
- fopen
- I/O Library Functions
- Copying a File
- Character Input vs. Line Input
- scanf
- fprintf
- fclose
- Servicing Errors – errno.h
- feof
- The stat Function
- File Existence
- Telling Time – time and ctime
- Telling Time – localtime
- A Database Application
- The menu Function
- fwrite
- The create_db Function
- fread
- The print_db Function
- fseek
- The retrieve_db Function
- The Utility Functions
- Important Header Files
- printf Formats
- C Reserved Words
- Conversion
- Precedence Chart
- strstr
- strchr, strrchr
- system
- strtok
- strspn, strcspn
- Math Functions
- Character Testing Functions
- exit and atexit
- signal
- memcpy
- memset
- qsort
- Binary Search – bsearch
Is there a discount available for current students?
UMBC students and alumni, as well as students who have previously taken a public training course with UMBC Training Centers are eligible for a 10% discount, capped at $250. Please provide a copy of your UMBC student ID or an unofficial transcript or the name of the UMBC Training Centers course you have completed. Online courses are excluded from this offer.
What is the cancellation and refund policy?
Student will receive a refund of paid registration fees only if UMBC Training Centers receives a notice of cancellation at least 10 business days prior to the class start date for classes or the exam date for exams.