CS211, or ENGRD211 is the second programming course in the Computer Science curriculum, following CS100, and an engineering distribution course required of ECE and OR&IE majors. The primary goal of this course is to have students learn intermediate programming in a high-level language and introduce computer science. The topics range over recursion, program structure and organization, object oriented programming, analysis of algorithms, proofs of program correctness, data structures and types (lists, stacks, queues, trees, hashtables), and some graph theory. Java is the principal programming language, but this is not a course on Java.
We want our students to come out of this course knowing how to program well, but this is not the only goal. We also wish them to gain exposure to the topics that are the foundation of computer science. If they become comfortable with these concepts in CS211 then they will be well equipped to pursue further coursework offered in computer science (and other disciplins) at Cornell and elsewhere.
We reserve the right to make changes to the schedule, because we're the boss!
| Meeting | Date | Topic | |
|---|---|---|---|
| Lec. 1 | June 24 | Course overview and motivation | |
| Lec. 2 | 25 | Recursion and Induction | |
| Lec. 3 | 26 | Recursion and Induction | |
| Lec. 4 | 27 | Recursion and Induction | |
| Lec. 5 | 28 | Object Oriented Programming | |
| Lec. 6 | July 1 | Interfaces and Subclasses | |
| Lec. 7 | 2 | Inner and Abstract Classes | |
| Lec. 8 | 3 | Java API and Programming Style | |
| Holiday! | |||
| Lec. 9 | 5 | Searching and Sorting | |
| Prelim I | 8 | Induction, Recursion, and Java | |
| Lec. 10 | 9 | Searching and Sorting | |
| Lec. 11 | 10 | Searching and Sorting | |
| Lec. 12 | 11 | Abstract Data Types | |
| Lec. 13 | 12 | Trees | |
| Lec. 14 | 15 | Tree Traversals and Binary Search Trees | |
| Lec. 15 | 16 | Other ADT's | |
| Lec. 16 | 17 | Other ADT's | |
| Lec. 17 | 18 | Algorithm Analysis | |
| Prelim II | 19 | Searching, Sorting, and ADT's | |
| Lec. 18 | 22 | Algorithm Analysis | |
| Lec. 19 | 23 | Algorithm Analysis | |
| Lec. 20 | 24 | Algorithm Analysis | |
| Lec. 21 | 25 | Program Correctness | |
| Lec. 22 | 26 | Program Correctness | |
| Lec. 23 | 29 | Graph Theory | |
| Lec. 24 | 30 | Graph Theory | |
| Lec. 25 | 31 | Graph Theory | |
| Lec. 26 | August 1 | ||
| Lec. 27 | 2 | ||
| Lec. 28 | 3 | ||
| August 6 | Final Exam, August 6, 8am, Phillips 203 | ||