Lectures
CS2110 has the twice-weekly lectures. Attendance is required.
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 below as 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. Adrian Sampson and David Gries will be teaching it. Students taking CS2111 must ALSO attend the main lectures and a recitation section. You must be enrolled in ENGRD/CS2110 in oder to take CS2111.
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
You don't have to buy a book! We have produced online materials for most of the course: JavaHyperText and Data Structures. Part of this "book" consists of over 50 short (2-6 minute) tutorial/videos, which you will look at at the appropriate time.
Lecture schedule
Below is a tentative list of lecture topics, times for handing out assignments, deadlines for submitting assignments, and times for the prelims and prelim review sessions. The order and content of lectures may be changed as the course progresses.
LECTURE / Day |
TOPICS | NOTES | READING / ASSIGNMENTS | |
---|---|---|---|---|
1 | 01/25 | Course
policies/procedures. Java strong typing. |
Lecture
Notes (pptx)
(pdf)
(pdf-6up)
Why software is so bad First day handout Eclipse tutorial |
Hand out A0 |
2 | 01/30 |
OO: Objects and classes |
Lecture Notes (ppt) (pdf) (pdf-6up) C.java | Hand out HW1 |
Recitation 01: Packages, API Specs, String. See Piazza note @14 for the tutorial to watch | ||||
3 | 02/01 |
OO: Fields and their conse- quences. JUnit testing |
Lecture Notes
(ppt)
(pdf)
(pdf-6up) demoTime.zip |
A0 due Hand out A1 |
4 | 02/06 |
OO: The class hierarchy Static components |
Lecture Notes
(ppt)
(pdf)
(pdf-6up)
demos.zip |
Hand out A2 |
Recitation 02: Exception handling | ||||
5 | 02/08 |
OO: Inside-out / bottom-up, local vars, constructors |
Lecture Notes
(ppt)
(pdf)
(pdf-6up)
demos.zip |
A1 due |
6 | 02/13 |
OO: Types and their conse- quences. function equals |
Lecture Notes
(pptx)
(pdf)
(pdf-6up) demoLecture6.zip pollslide.pdf |
|
Recitation 03: Testing. (pdf-6up) Rectangle.java TODO.txt | ||||
7 | 02/15 | Interfaces and abstract classes |
Watch tutorial before the lecture. Lecture notes (pptx) (pdf) (pdf-6up) TimeSet.zip |
A2 due Hand out A3 |
02/20 |
February Break |
|||
No recitation ---February Break | ||||
8 | 02/22 |
Recursion 1 |
Lecture Notes (pptx) (pdf) (pdf-6up) recursionDemo.zip | |
9 | 02/27 |
Recursion 2 |
Lecture Notes
(pptx)
(pdf )
(pdf-6up) recursionDemo.zip Iterative palindrome (ppt) (pdf) |
|
Recitation 04: Loop invariants tutorial loop invariants problem-set (docx) (pdf) (solutions) |
||||
10 | 03/01 |
Complexity |
Lecture Notes (pptx) (pdf) (pdf-6up) | A3 due |
11 | 03/06 |
Sorting | Lectures notes
(pptx)
(pdf)
(pdf-6up)
searchSortAlgorithms.zip |
|
Recitation 05: Review for prelim 1 (pptx) (pdf) (pdf-6up) | ||||
12 | 03/08 |
Trees | Lectures notes
(pptx)
(pdf)
(pdf-6up)
TreeDemo.zip |
Hand out A4 |
13 | 03/13 | Trees |
Lecture Notes (pptx) (pdf) (pdf-6up) | Prelim 1 5:30 & 7:30 |
Recitation 06: Iterator, Iterable
Watch tutorial beforehand iterableProblemSet.pdf DLLTest.java |
||||
14 | 03/15 |
GUIs: Placing components |
Lecture Notes (pptx) (pdf) (pdf-6up) demoGui.zip |
Swing Tutorial |
15 | 03/20 |
GUIs: handling events | Lecture notes
(pptx) (pdf) (pdf-6up) demoGui.zip |
Hand out A5 |
Recitation 07. Enums and Java Collections classes (pptx) (pdf) (pdf-6up) demo.zip |
||||
16 | 03/22 | Priority queues / heaps | Lecture notes
(pptx)
(pdf)
(pdf-6up)
heapsort.zip |
A4 due |
17 | 03/27 |
Graphs I: Topological sort, Coloring, Planar graphs, Bipartite graphs |
Lecture Notes (pptx) (pdf) (pdf-6up) | Hand out A6 |
Recitation 08. I/O (pptx) (pdf) (pdf-6up) iodemo.zip IOProblems.java | ||||
18 | 03/29 | Graphs II: DFS and BFS | Lecture Notes
(pptx)
(pdf)
(pdf-6up)
dfsBfsDemo.zip |
A5 due |
19 | 04/10 | Graphs III: Dijkstra's shortest-path algorithm |
Lecture Notes (pptx) (pdf) (pdf-6up) Do this before the lecture: tutorial. |
Hand out A7 |
Recitation 09: Generics |
20 | 04/12 | Graphs IV. Spanning trees | Lecture Notes (pptx) (pdf) (pdf-6up) | A6 due |
21 | 04/17 | Hashing |
Lecture Notes (pptx) (pdf) (pdf-6up) | |
Recitation 10. Prelim Review (pptx) / Analysis | ||||
22 | 04/19 |
Hashing | Lecture notes (pptx) (pdf) (pdf-6up) | Hand out A8 A7 due |
23 | 04/24 | Concurrency |
Lecture notes
(pptx)
(pdf)
(pdf-6up) |
Prelim 2 5:30 & 7:30 |
Recitation 11. Anonymous functions (pptx) PairSorter.java | ||||
24 | 04/26 |
Concurrency | Lecture notes
(pptx)
(pdf)
(pdf-6up) boundedBuffer.zip ConcurrentLinkedQueue.java |
|
25 | 05/01 | Fibonnacci | Lecture Notes (pptx) (pdf) (pdf-6up) | |
Recitation 12: Choose your own adventure | ||||
26 | 05/03 | Security | Lecture Notes (pptx) (pdf) (pdf-6up) | |
27 | 05/08 | Conclusion | Lecture Notes (pptx) (pdf) (pdf-6up) | A8 due |
Optional Final: Thu 05/17/18, 7:00-9:30PM |