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