To understand the general-purpose programming concepts.
To understand the principles of data storage and manipulation.
To learn and experience/build/trace components of programming processes, including procedural programming (modules, functions, parameters, and return values).
To understand syntax, grammar, and control flows of C programming languages.
To be able to use major programming patterns.
To be able to write reasonably correct C/C++ code on paper, so that the programming skill can be evaluated by exams.
To get prepared for the more advanced programming courses: Assembly Language, Object Programming Language, Data Structure, and Algorithms.