Prerequisites: No programming or computer science experience is required. Students should have sufficient facility with high-school mathematics to solve simple linear equations and to appreciate the use of mathematical notation and formalism.
Syllabus:
Units covered:
| PF1 | Fundamental programming constructs | 9 | core hours |
| PF2 | Algorithms and problem-solving | 3 | core hours (of 6) |
| PF3 | Fundamental data structures | 3 | core hours (of 14) |
| AL3 | Fundamental computing algorithms | 1 | core hour (of 12) |
| AL5 | Basic computability | 1 | core hour (of 6) |
| AR2 | Machine level representation of data | 2 | core hours (of 3) |
| PL1 | Overview of programming languages | 2 | core hours |
| PL4 | Declarations and types | 2 | core hours (of 3) |
| PL6 | Object-oriented programming | 7 | core hours (of 10) |
| PL8 | Language translation systems | 1 | hour |
| SP1 | History of computing | 1 | core hour |
| SP4 | Professional and ethical responsibilities | 1 | core hour (of 3) |
| SP5 | Risks and liabilities of computer-based systems | 1 | core hour (of 2) |
| SE3 | Software tools and environments | 1 | core hour (of 3) |
| SE6 | Software validation | 1 | core hour (of 3) |
| Elective topics | 4 | hours |
Notes:
This course is part of an alternative implementation of the objects-first introductory track that covers the fundamental programming concepts in three semesters rather than two. In terms of the curriculum, students should be able to move on to more advanced courses after taking either the sequence CS101O-102O-103O or the two-semester sequence sequence CS111O-112O, which covers the same material in a more concentrated fashion. Although covering programming fundamentals in two semesters has long been standard in computer science education, more and more programming topics can legitimately be identified as fundamental, making it more difficult to provide a complete introduction to this material in a single year. The CC2001 Task Force anticipates that three-semester introductory sequences will become increasingly common over the next decade and encourages departments and individual faculty to experiment with models along these lines.
What differentiates this course from the imperative-first implementation in CS101I-102I-103I is the early emphasis on objects. In this course, the discussion of classes, subclasses, and inheritance typically precedes even such basic concepts as conditional and iterative control statements.
|
December 15, 2001 |