Course Summary
Credit Type:
Self-Paced (19 hours)
Dates Offered:
Credit Recommendation & Competencies
Level Credits (SH) Subject
Lower-Division Baccalaureate 3 C Programming


The objective of this course is for learners to understand the procedural/functional programming model. The first track of this journey focuses on the fundamentals of C where the learners will become familiar with the language features and syntax. The next track leads the learners toward building the logical programs using control structures, which then enables them to explore the functional programming aspects of the C language. The journey concludes with an exploration of advanced topics of C, such as File Handling, Preprocessor directives, and type conversions.

Learning Outcomes:

  • use storage classes such as automatic, register, static, and extern, employ correct pass-by-value and pass-by-reference semantics, and use user-defined types such as structs, unions, and enums
  • use fclose and fopen to work with file handlers, read and write text files and binary files, and perform file seek operations
  • declare and initialize variables, use arithmetic and logical operators, and identify use cases for pre-increment and post-increment operators
  • create arrays and access and update array elements, accept input from the user using scanf, getc, gets and fgets, and display output using printf, fprintf, puts and putchar
  • implement while loops, for loops, do-while loops, break, and continue, avoid infinite loops, and outline why the use of goto is not recommended
  • use the referencing and dereferencing operators in C and test for and use NULL values
  • leverage the equivalence between pointers and arrays, apply pointer arithmetic, and return pointers from functions correctly
  • allocate memory correctly using malloc, calloc and realloc, free memory correctly, use pointers to structs, and avoid problems related to dangling pointers and memory leaks
  • work with C strings using character arrays, library functions, and header files, perform type conversions, and use command line arguments in C programs
  • use basic C syntax and compile and run C programs on both Windows and Unix-based platforms
  • work with control structures to change the flow of execution of a C program, use if and else conditions, and employ the ternary operator in assignments and expressions
  • invoke functions, apply implicit and explicit function declarations, and leverage both library functions and user-defined functions
  • create macros with preprocessor directives, control conditional compilation, and use pragmas to alter compiler settings

General Topics:

  • Fundamentals of the C Language
  • Control Structures in C
  • Functions and Memory in C
  • Advanced Topics in C
Instruction & Assessment

Instructional Strategies:

  • Computer Based Training
  • Laboratory
  • Practical Exercises

Methods of Assessment:

  • Examinations

Minimum Passing Score:

Supplemental Materials