CS 20 is an intermediate course in programming using Java. Instruction and programming assignments will focus on a selection of fundamental data structures and algorithms. Practice implementing and applying these data structures and algorithms will be required for the course.
The following programming techniques and principles are emphasized:
Computer Science 10 and Mathematics 3B.
| Primary Topics | Read (Dale/Joyce/Weems text) |
|---|---|
| Introduction, Java foundation, and OOP concepts | Chapters 1-2, Section 9.1, and all Appendices |
| Algorithm analysis, program correctness/testing | |
| Abstract data types, and Java Collections | |
| Stacks | Chapter 3 |
| Recursion | Chapter 4 |
| Queues | Chapter 5 |
| Lists | Chapters 6-7 |
| Binary trees: heaps, and binary search trees | Chapter 8, and Section 9.2 |
| Sorting, searching, and hashing | Chapter 10 |
| More Java collections [as time permits] | TBA |
| 30% | Assignments | Written homeworks - handed out in lectures, and turned in at discussion section, probably each Thursday except July 30. Purpose is to learn concepts and practice answering exam-like problems. May include small programming tasks. |
| Programming projects - to be posted on the Projects (web) page, and turned in electronically. Purpose is to master techniques and concepts learned in class, and practice writing and testing larger programs. | ||
| 10% | Attendance | Full credit earned by attending 20 or more meetings, including lectures and discussion sections. Arriving late or leaving early reduces the points earned on a given day. |
| 20% | Monday, July 6 | All topics covered in class during first two weeks |
| 20% | Monday, July 20 | All topics covered through week four, cumulative |
| 20% | Thursday, July 30 | All topics, cumulative |