·         Plan and design a program using structured development techniques.

·         Anticipate, design, create, and use functions by breaking a problem into sub-tasks.

·         Pass arguments by reference or by value between functions in various contexts.

·         Write valid programming statements to declare, initialize, manipulate, and pass pointers as arguments to functions.

·         Use and explain the relationship between pointers and the values they reference.

·         Use and manipulate data structures.

Apply C language tools to implement algorithmic solutions