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