Courses
CS 127B: Program Design & Development
| Objective |
- Continuation of CS127A. Expose students to data abstraction and dynamic
data structures and ensure that they can produce well- designed programs
(150-250 lines of code)
|
| Pre-Conditions |
- [CS127a] functions, stream I/O, value
parameters
- [CS127a] primitive types (int, double, bool),
operators (assignment, arithmetic, logical, relational), precedence of
operators, if/else
- [CS127a] for loops, scope/lifetime of variables,
reference parameters
- [CS127a] basic design issues: information hiding,
specification vs implementation, avoiding redundancy, minimizing
dependencies
- [CS127a] while loops, using simple predefined
classes (member functions, constructors)
- [CS127a] file and character processing, details
of strings and streams
- [CS127a] arrays and typical array operations:
initialize, insert, delete, simple sorting and searching
- [CS127a] structures, complex data structures
(e.g., arrays of structs)
|
Post-Conditions
(Topics) |
- [1 week] review of complex C++ static structures, design issues
- [2 weeks] recursion, including backtracking [CS330] [CS340] [CS372] [CS425] [CS452] [CS453]
- [3 weeks] pointers and linked lists [CS330]
[CS340] [CS425] CS452] [CS453]
- [3 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.5 weeks] efficiency, elementary understanding of big-Oh [CS344]
- [1.5 weeks] optional advanced topics (e.g., recursive decent parsing,
inheritance) final exam)
|
Authored by Stuart Reges.
Last revised on 29 April 1997 by John Hartman.