Principles of algorithm design and their application to procedural programming: state, control structures, functions modules. Patterns of conditional and iterative control structure. Program testing. Introduction to data structures, classes, and objects. Programming projects. Analyzing problems, designing solutions and expressing them in the form of a well-structured program in a high-level language such as Java and C+.
MA106 College Algebra, and CS111 Visual Basic Programming, or Departmental Consent