Lectures
CS2110 has the twice-weekly lectures. Attendance is required. Our discussion of material that may be in the optional book is different, and sometimes the material we cover is not covered at all in the textbook.
Lecture notes are usually posted the day/evening 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/phone). During the lecture, we use not only the ppt slides but also Eclipse, DrJava, and the web, and when we are not using the ppt slides it will be useful for you to have them 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. Mike George 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 not enrolled in cs2110.
Weekly PDF files for the materials covered in CS2111 are posted on the course CS2111 website ---get to it from a link on the Links page.
Course text
Readings refer to the optional 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. Exams tend to focus on things we covered in class.
You do not need your own copy of the textbook. It is optional. 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. The 4th appears to be a major change.
Lecture schedule
Below is a tentative list of lecture topics, times for handing out and deadlines for submitting assignments, and times for the prelims and prelim review sessions. The order and content of lectures are likely to be changed as the course progresses.
LECTURE / Day |
TOPICS | NOTES | READING / ASSIGNMENTS | |
---|---|---|---|---|
1 | 01/26 | Course
policies/procedures. Java strong typing. |
Lecture
Notes (pptx) (pdf) (pdf-6up) Why software is so bad First day handout Learn about Eclipse |
Chap 1, App A Hand out A0 |
2 | 01/31 |
OO: Objects and classes |
Lecture Notes (pptx ) (pdf) (pdf-6up) C.java |
Chap 1, App A Hand out A2. |
Recitation 01: Packages, API Specs, Character, String (pptx) (pdf-6up) | ||||
3 | 02/02 |
OO: Fields and their conse-quences. JUnit testing |
Lecture
Notes (pptx ) (pdf) (pdf-6up) demoTime.zip (Time/TimeTester) |
Chap 2, App B Hand out A1. A0 due |
4 | 02/07 |
OO: The class hierarchy Static components |
Lecture
Notes
(pptx )
(pdf)
(pdf-6up)
W.java (before) (after) JavaProgram.java |
some notes on software engineering (video) |
Recitation 02: Exception handling tutorial problemSet.docx problemSet.pdf
Slides (pptx) (pdf) Demo1.java Demo2.java |
||||
5 | 02/09 |
OO: Inside-out / bottom-up, local vars, constructors |
Lecture Notes
(pptx)
(pdf)
(pdf-6up)
Middle.java
(before)
(after)
Person.java (before) (after) Time.java (before) (after) |
Chap 3. A1 due |
6 | 02/14 |
OO: Types and their consequences. instanceof |
Lecture Notes (pptx ) (pdf) (pdf-6up) | |
Recitation 03: Loop invariants program correctness (first 3 videos) loop invariants problem-set (docx) (pdf) (solutions) |
||||
7 | 02/16 | Interfaces and abstract classes |
Lecture notes (pptx ) (pdf) (pdf-6up) Following zip files have a README in them: simple.zip extensive.zip |
Chap 10 A2 due. Hand out A3 |
02/21 |
February Break |
|||
No recitation due to break | ||||
8 | 02/23 |
Recursion |
Tutorial (watch before lecure) Lecture Notes (pptx) (pdf) (pdf-6up) D.java (skeleton) (with countEm) |
|
9 | 02/28 |
Recursion |
Lecture Notes (pptx) (pdf) (pdf-6up) code.zip (before) (after) | |
Recitation 04: Enums and Java Collections classes (pptx) (pdf) (pdf-6up) demo.zip | ||||
10 | 03/02 |
Asymptotic complexity, searching |
Lecture Notes (pptx) (pdf) (pdf-6up) ComplexityExercises searchSortAlgorithms.zip |
Chaps 4-7 A3 due (see CMS for due date) |
11 | 03/07 |
Sorting and other array algorithms |
Lecture Notes (pptx ) (pdf) (pdf-6up) searchSortAlgorithms.zip |
Chap 16 |
Recitation 05: Review for prelim (study guide) | ||||
12 | 03/09 |
Trees | Lecture Notes
(pptx)
(pdf)
(pdf-6up)
TreeDemo.zip |
Chaps 25-27 Hand out A4 |
Review for Prelim, Sunday 3/12 Prelim1, 3/14 at 5:30 and 7:30 |
||||
13 | 03/14 |
Grammars, trees, parsing | Lecture Notes
(pptx)
(pdf)
(pdf-6up) parsing.zip (before) (after) |
Chap 23 |
No recitation due to prelim | ||||
14 | 03/16 | GUIs: Placing components | Lecture Notes (pptx) (pdf) (pdf-6up) guiDemos.zip |
Swing Tutorial Chaps 11, 12 |
15 | 03/21 |
GUIs: handling events | Lecture notes
(pptx) (pdf) (pdf-6up) these will change guiDemos.zip |
A4 due Hand out A5 |
Recitation 06. Iterator, Iterable
Watch tutorial beforehand problemSet.docx problemSet.pdf CLLIterable.zip |
||||
16 | 03/23 | Priority Queues, Heaps | Lecture Notes
(pptx)
(pdf)
(pdf-6up)
Heapsort.zip |
|
17 | 03/28 |
Generics | Lecture Notes (pptx) (pdf) (pdf-6up) will be updated | |
Recitation 07. Hashing tutorial summary.pdf HashSetDemo.zip hashingProblemSet.pdf | ||||
18 | 03/30 | Graphs I: Topological sort, Coloring, Planar graphs, Bipartite graphs | Lecture Notes
(pptx)
(pdf)
(pdf-6up) |
Chaps 28, 29 |
19 | 04/11 | Graphs II: DFS and BFS | Lecture Notes
(pptx)
(pdf)
(pdf-6up) dfsBfsDemo.zip |
|
Recitation 08. I/O (pptx) (pdf) (pdf-6up) DemoIO.java IOProblems.java | ||||
20 | 04/13 | Movie: Hidden Figures | A5 due | |
21 | 04/18 | Graphs III: Dijkstra's
shortest-path algorithm |
Lecture Notes (pptx) (pdf) (pdf-6up) Do this before the lecture: tutorial |
Hand out A7. A6 due |
Recitation 9. Analysis of Algorithms: (pptx) (pdf) (pdf-6up) Prelim review: (pptx) (pdf) (pdf-6up) | ||||
22 | 04/20 |
Graphs IV: Spanning trees,
algorithms |
Lecture Notes (pptx) (pdf) (pdf-6up) | |
Review for Prelim, Sunday 4/23 Prelim1, 4/25 at 5:30 and 7:30 |
||||
23 | 04/25 | Fibonnaci and the golden ratio |
Lecture Notes
(pptx) (pdf) (pdf-6up) demoFib.zip Fib-history.pdf |
|
No recitation due to prelim | ||||
24 | 04/27 |
Concurrency/threads 1 | Lecture notes (pptx) (pdf) (pdf-6up) ThreadTest.java |
Hand out A8. A7 due |
25 | 05/02 | Concurrency/threads 2 | Lecture notes (pptx) (pdf) (pdf-6up) boundedBuffer.zip |
|
Recitation 11. Lambdas (pptx) (pdf) (pdf 6-up) PairSorter.java | ||||
26 | 05/04 |
Concurrency/threads 3 | Lecture notes
(pptx)
(pdf)
(pdf-6up) ConcurrentLinkedQueue.java |
|
27 | 05/09 |
TBA | TBA | |
Recitation 12: individual and group help on A8 | ||||
Final: TBA |