Lectures
CS2110 centers on the twice-weekly lectures. Attendance is required. We may have in-class quizzes without prior notice. We often cover material in different ways than what is in the book, and sometimes the material we cover is not covered at all in the textbook.
Lecture notes are usually posted the da/eveningy before the lecture.
Please download the lecture notes the evening before a lecture, peruse them to get a sense of what the lecture is about, and then have the lecture notes handy during the lecture (either on paper or on your laptop/tablet). During the lecture, we use not only the ppt slides but also Eclipse or DrJava, and when we are using Eclipse, it will be useful for you to have the ppt slides to look at.
Recitations
It is important to attend a weekly recitation, which are considered to be part of the required classwork for the course. We often present material in recitation that is required but not covered in the main lectures. You can switch from recitation to recitation but we like to know which one you are in, in case the University needs to contact you. We added some recitations at a late date; please switch to them if you can to balance out the number of students in each recitation. Use add/drop if you switch sections.
Weekly recitation notes will be posted belowas we finalize them.
CS2111
This 1-credit S/U optional enrichment class is offered for people who are concerned that that CS2110 might move too quickly and would like a bit of additional help understanding the key ideas. Ross Tate and David Gries will be teaching it. Students taking cs2111 must ALSO attend the main lectures and a recitation section. CS2111 is not open to students who are notenrolled in cs2110.
Weekly PDF files for the materials covered in CS2111 are posted on the course CS2111 website.
Course text
Readings refer to the course text: Data Structures and Abstractions with Java, 3rd edition by Frank M. Carrano, Prentice Hall, 2007. ISBN 0-13-237045-X. See also the Prentice Hall website for additional material. Readings are intended to be complementary to the lecture: you can do the reading before class, or after class, but should certainly read the chapter at some point to make sure you fully understand the material. Exams tend to focus on things we covered in class.
You do not need your own copy of the textbook; sharing is fine. You do not need to have access to the e-book; Prentice offers the ebook to people who purchase a new copy, but a used copy of the book is fine. There aren't very many differences between the 2nd and 3rd edition, so you can manage quite well with a used copy of the 2nd edition.
LECTURE / Day |
TOPICS | NOTES | READING / ASSIGNMENTS | |
---|---|---|---|---|
No recitation in the first week | ||||
1 | 7/28 | Course
policies/procedures. Java strong typing. |
Lecture
Notes (pptx)
(pdf)
(pdf 6-up) Why software is so bad First day handout Eclipse: Part 1 Eclipse: Part 2 Eclipse: Part 3 |
Chap 1, App A Hand out A0 |
2 | 2/02 |
OO: Objects and classes |
Lecture Notes (pptx) (pdf) (pdf 6-up) C.java | Chap 1, App A Hand out A2. |
Recitation 01 basicJavaEclipse.pdf ppt.pdf Eclipse: 2 Eclipse: 3 | ||||
3 | 2/04 |
OO: Fields and their conse-quences. JUnit testing |
Lecture
Notes (pptx) (pdf) (pdf 6-up) demoTime.zip (Time/TimeTester) |
Chap 2, App B Hand out A1. A0 due 2/7 |
4 | 2/09 |
OO: The class hierarchy Static components |
Lecture
Notes (pptx) (pdf) (pdf 6-up) W.java Point.java |
some notes on software engineering (video) |
Recitation 02: Packages, char and Character, Strings (pptx) (pdf) (pdf-6up) (files) | ||||
5 | 2/11 |
OO: Inside-out / bottom-up, local vars, constructors |
Lecture
Notes (pptx) (pdf) (pdf 6-up) Middle.java Time.java Person.java |
Chap 3. A1 due 2/12 |
2/16 |
February break |
|||
No recitation this week: February break | ||||
6 | 2/18 |
OO: Types and
their consequences. instanceof |
Lecture Notes (pptx) (pdf)
(pdf 6-up) Animal.java Cat.java Dog.java Demo.java Crash.java |
|
7 | 2/23 | Interfaces and abstract classes | Lecture notes (pptx) (pdf)
(pdf 6-up) final.zip Hierarchy.png |
Chap 10 A2 due 2/24. Hand out A3 |
Recitation 03. Exception handling website for self learning demoJava solutions.pdf | ||||
8 | 2/25 |
Recursion |
Lecture
Notes (pptx) (pdf)
(pdf 6-up) D.java |
|
9 | 3/1 |
Recursion |
Lecture Notes (pptx) (pdf) (pdf 6-up) L08.java SierpinskiTriangle.java kitchen.zip | |
Recitation 04: Loop invariants website for selflearning problem-set solution | ||||
10 | 3/3 |
Searching/sorting |
Lecture Notes (ppt)
(pdf)
(pdf 6-up) searchSortAlgorithms.zip |
Chaps 4-7 |
11 | 3/8 |
Asymptotic complexity Completion of sorting |
Lecture Notes (ppt) (pdf)
(pdf 6-up) searchSortAlgorithms.zip Complexity exercises |
Chap 16 A3 due 3/9 |
Recitation 05: Enums and the Java Collections classes (pptx) (pdf) (pdf-6up) demoJava | ||||
12 | 3/10 |
Trees | Lecture Notes
(ppt) (pdf) (pdf 6-up) BST.java BSTTest.java |
Chaps 25-27 Hand out A4 |
Review for Prelim, Sunday 3/13 | ||||
13 | 3/15 |
Grammars, trees, parsing | Lecture Notes
(pptx) (pdf) (pdf 6-up) parser code (zip) |
Chap 23 |
Recitation 06. I/O (pptx) (pdf) (pdf 6-up) (DemoIO.java | ||||
Prelim 1: Tues 3/15. 5:30 and 7:30 | ||||
14 | 3/17 |
GUIs: Component layout | Lecture Notes
(pptx)
(pdf)
(pdf 6-up) GuiDemos.zip (demos for GUIs) |
Swing Tutorial Chaps 11, 12 |
15 | 3/22 | GUIs: handling events | Lecture Notes (ppt) (pdf) (pdf 6-up) GuiDemos.zip (demos for GUIs) | |
Recitation 07. Hashing (ppt) (pdf) (pdf 6-up) summary HashSet.java HashSetTester.java | ||||
16 | 3/24 |
Generics | Lecture notes (pptx) (pdf) (pdf 6-up) | A4 due Hand out A5 |
17 | 4/5 | Priority Queues, Heaps | Lecture Notes (pptx) (pdf) (pdf 6-up) heapsort.zip | |
Recitation 08. Iterator, and Iterable website for selflearning a3solution.zip IteratorIterable.pdf | ||||
18 | 4/7 | Graphs I: Topological sort, Coloring, Planar graphs, Bipartite graphs | Lecture Notes
(pptx)
(pdf)
(pdf 6-up) |
Chaps 28, 29 |
19 | 4/12 | Graphs II: DFS and BFS | Lecture Notes (pptx) (pdf) (pdf 6-up) | A5 due Hand out A6. |
Recitation 09. Analysis of Algorithms and Inductive Proofs (pptx) (pdf) (pdf 6-up) | ||||
20 | 4/14 | Graphs III: Dijkstra's shortest-path algorithm | Lecture Notes (pptx) (pdf) (pdf 6-up) | |
21 | 4/19 |
Graphs IV: Spanning trees,
etc. |
Lecture Notes (ppt) (pdf) (pdf-6up) |
Hand out A7. A6 due |
Recitation 10. Prelim 2 Review (pptx) (pdf) (pdf 6-up) | ||||
22 | 4/21 |
User-Oriented Language Design |
Lecture Notes (pptx) (pdf) (pdf 6-up) | |
Review for Prelim, Sunday 4/24 | ||||
23 | 4/26 | Concurrency 1 | Lecture Notes (ppt) (pdf) (pdf 6-up) | Hand our A8. A7 due |
Prelim 2. Tuesday, 4/26, 5:30 and 7:30 | ||||
Recitation 11. Lambdas (pptx) (pdf) (pdf 6-up) | ||||
24 | 4/28 |
Concurrency/threads 2 | Lecture Notes (pptx) (pdf) (pdf 6-up) | |
25 | 5/03 |
Concurrency/threads 3 | Lecture notes (pptx) (pdf) (pdf 6-up) boundedBuffer.zip notifyVsNotifyall.zip |
|
Recitation 12. Individual and group help on assignment A8 | ||||
26 | 5/05 | Fibonacci numbers and the golden ratio |
Lecture notes (pptx) (pdf) (pdf 6-up) |
|
27 | 5/10 |
Interview with Pooja Shankar | Pooja is the creator of Piazza.com. She will Skype in and talk and answer questions | |
Final: TBA |