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 |