We're offering 20% off September Live Online classes! See which courses are applicable.   |   Details

AccountIcon BigDataIcon BlogIcon default_resource_icon CartIcon checkmark_icon cloud_devops_icon computer_network_admin_icon cyber_security_icon gsa_schedule_icon human_resources_icon location_icon phone_icon plus_icon programming_software_icon project_management_icon redhat_linux_icon search_icon sonography_icon sql_database_icon webinar_icon

Search UMBC Training Centers


Intermediate C Programming

Group Training + View more dates & times


This course continues the study of the C programming language using the C23 standard. The core language features covered in this course include functions, arrays, strings, pointers, dynamic memory
allocation, library functions, structures, and file I/O. Programming techniques covered by this course
include modularity, top-down design, documentation, debugging, and testing. Lab exercises throughout the course test and reinforce understanding of the concepts.

Cumulative graded assessments available for group training.

Upon completion of this course, students will be able to the following in C:
• Build complex programs.
• Declare, define, and manipulate pointers to data or functions.
• Dynamically allocate and deallocate memory as needed.
• Design large program components and APIs.
• Write and run unit tests.
• Inspect and manipulate bits of integers.
• Perform binary I/O with a console and on-disk files using library functions.
• Profile a running program for performance hotspots and improvements.
• Choose appropriate library functions for common tasks.


40 hours

Who Should Take This Course


This course is intended for developers with some programming experience in C and understand programming concepts. This course is not designed for students who are completely new to programming; it is targeted at developers with at least one month of programming experience.


Students should have completed our “Introduction to C Programming” course or have equivalent knowledge of the C programming language. They should understand how to do the following in C:

• Build and run simple C programs.
• Name, declare, initialize, and manipulate numeric values in variables.
• Define and manipulate arrays.
• Create and call functions.
• Control program flow through conditionals and loops.
• Define, manipulate, and call functions with strings (character arrays).
• Perform basic I/O with a console and on-disk files using library functions.
• Declare, define, initialize, and manipulate new struct types.
• Search, parse, and split strings using library functions.
• Debug the behavior of a running program.

Course Outline

1. Compilation Units
◦ C Build Pipeline
◦ Header Files and Header Guards
◦ Internal and External Linkage

2. Pointers
◦ Pointer Operators and Declarations
◦ Pointers as Function Arguments
◦ struct Pointers and the -> Operator
◦ Pointers Arithmetic
◦ Pointers to Pointers
◦ void Pointers and Casting
◦ Function Pointers

3. Dynamic Memory
◦ Heap Allocations via malloc()/free()
◦ Valgrind for Dynamic Analysis
◦ Fine control with calloc()/realloc()
◦ Auto-Sizing Data Structures

4. C Program Design
◦ Effective typedefs
◦ Opaque Types
◦ Designing C APIs

5. Unit Testing
◦ check Library
◦ Assertions
◦ Unit Tests
◦ Test Suites, Runners, and Cases

6. Bit Manipulation
◦ Bitwise Operators
◦ Bitfields
◦ Endianness
◦ Binary Input/Output
◦ union Applications

7. Profiling and Optimization
◦ Measuring Program Performance
◦ Profile Build Targets
◦ Dynamic Analysis Profiling Tools
◦ Optimization Techniques

8. Standard Library Functions
◦ Array Sorting and Searching
◦ Processing Command-Line Options and Arguments
◦ Variadic Functions
◦ Time and Timing Functions

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. Asynchronous 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.

Contact Us