The University of Arizona

Courses

CS 227: Program Design & Development


Objective
  • Accelerated version of CS127A/CS127B. Introduce students to programming in C++ and ensure that they can produce well- designed programs (100-250 lines of code)
Pre-Conditions
  • [Algebra1] algebra I and sufficient programming expertise to allow the student to learn the material at an accelerated pace
Post-Conditions
(Topics)
  • [0.66 weeks] functions, stream I/O, value parameters
  • [0.66 weeks] primitive types (int, double, bool), operators (assignment, arithmetic, logical, relational), precedence of operators, if/else, for loops
  • [0.66 weeks] scope/lifetime of variables, reference parameters, basic design issues: information hiding, specification vs implementation, avoiding redundancy, minimizing dependencies [CS342]
  • [0.66 weeks] while loops, using simple predefined classes (member functions, constructors)
  • [0.66 weeks] file and character processing, details of strings and streams
  • [0.66 weeks] arrays and typical array operations: initialize, insert, delete, simple sorting and searching
  • [1 week] structures, complex data structures (e.g., arrays of structs)
  • [2 weeks] recursion, including backtracking [CS330] [CS340] [CS372] [CS425] [CS452] [CS453]
  • [2 weeks] pointers and linked lists [CS330] [CS340] [CS425] [CS452] [CS453]
  • [2 weeks] binary trees [CS330] [CS340] [CS453] [CS460]
  • [1 week] data abstraction, classes as a mechanism to encapsulate an ADT, implementation of a class given a specification [CS330] [CS340] [CS460]
  • [1 week] fundamental structures and their implementation as classes: stacks, queues, other list structures [CS330] [CS340] [CS342] [CS425] [CS452] [CS453]
  • [1 week] hashing [CS452] [CS453]
  • [1 week] efficiency, elementary understanding of big-Oh [CS344]



Last revised on 27 February 1997 by John Hartman