Analyze and solve problems using a programming language.
- Demonstrate the ability to develop algorithms and computer programs to solve problems by systematically decomposing a complex programming problem into manageable, well-documented steps that results in a design for the problem solution.
- Demonstrate that the program compiles and executes correctly for a given set of data.
- Demonstrate programming competency in a variety of programming structures, including arithmetic operations, control structures and loops, input/output operations including file I/O, the use of function calls, and the use of arrays and other storage types.
- Debug a program using appropriate debugging strategies.
- Produce a complete set of documentation for a program.