This course provides the basic skills and concepts required to design, write and compile computer programs. Software topics include arithmetic and logic operations, variable and constant data, functions, input and output (I/O), the preprocessor, arrays, structures, unions, pointers and standard library functions. Learners will diagnose, specify, select, and design computer programs using appropriate coding and debugging environments. Course learning outcomes are re-enforced using practical lab applications.