Computer Science II: COSC 221 (3)
Formal logic as a tool for mathematical proofs. Propositional calculus—Boolean expressions, logic connectives, axioms, and theorems. Predicate calculus—universal and existential quantification, modeling English propositions. Application to program specification, verification, and derivation.
Prerequisites: MATH 221 or concurrent enrollment and COSC 220.
| Hours | Topic |
|---|---|
| Recursion (10 hours) | |
| 2.0 | The run-time stack and call tree for procedures |
| 1.0 | The run-time stack and call tree for functions |
| 3.0 | Recursive functions—factorial, summation, binomial coefficient |
| 4.0 | Recursive procedures—towers of hanoi, binary search, quick sort |
| Dynamic Storage Allocation (9 hours) | |
| 2.0 | Pointer types—the NEW procedure, pointer assignment |
| 1.0 | Linked nodes |
| 3.0 | Linked lists as abstract data types—iterative and recursive implementations |
| 3.0 | Binary search trees as abstract data types—iterative and recursive implementations |
| Classes (16 hours) | |
| 2.0 | Objects and methods—using lists and trees as objects |
| 2.0 | Building simple objects and writing methods |
| 4.0 | Building simple abstract classes, inheritance and polymorphism |
| 4.0 | The state design pattern implementation of linked lists |
| 4.0 | The state design pattern implementation of binary search trees |
Total: 35.0 hours, excluding holidays, review sessions, and exams
*Fifty-minute class hours