The following is the current weekly schedule. This schedule is subject to change and will be frequently updated throughout the semester. The latest deadlines may also be found on Canvas.
Week 01
Tue 01/25
Lecture Agenda
Additional Content
Fri 01/28
Lab Agenda
- Java and Eclipse Setup
- Github Setup
- Homework Setup
- ArgumentParser (Template)
Additional Content
Assignments
- 01/28: Course Syllabus
- 01/28: Introduction Post
- 02/04: Introduction Reply
- 01/28: Forum Setup
Dates and Deadlines
- 01/24: Classes Begin
Assignments
- 02/04: TA Introuctions
- 02/04: Homework Setup
- 02/04: ArgumentParser
Dates and Deadlines
- Due: Course Syllabus
- Due: Introduction Post
- Due: Forum Setup
- 01/28: Add Deadline
Week 02
Tue 02/01
Lecture Agenda
Thu 02/03
Lecture Agenda
Fri 02/04
Lab Agenda
Assignments
- 02/11: Paths and Files
- 03/11: Piazza Post
- 05/13: Piazza Reply
- 05/13: CS Event
Assignments
- 02/11: Data Structures
- 02/11: Using Maps
Assignments
- 02/11: Lecture Setup
- 02/25: TextFileStemmer
Dates and Deadlines
- Due: Introduction Reply
- Due: TA Introuctions
- Due: Homework Setup
- Due: Homework Bundle 0
- Due: ArgumentParser
Week 03
Tue 02/08
Lecture Agenda
- Project Overview
- Project 1 Inverted Index
- Data Structures
- – NestedMapDemo
- – IterationDemo
- – RemoveDemo
- – MutableSetDemo
Additional Content
Thu 02/10
Lecture Agenda
Fri 02/11
Lab Agenda
Assignments
- 03/01: Project 1 Inverted Index
- 02/25: Code Review Intake
Assignments
- 02/25: Code Review Intake
- 02/18: Project Setup
- 02/25: SimpleJsonWriter
Dates and Deadlines
- Due: Paths and Files
- Due: Data Structures
- Due: Using Maps
- Due: Lecture Setup
- 02/11: Drop Deadline (Census)
Week 04
Tue 02/15
Lecture Agenda
- Object Oriented Programming
- – HashCodeDemo.java
- – MutabilityDemo.java
- – MapMutabilityDemo.java
- – ConcatenationDemo.java
Additional Content
Thu 02/17
Lecture Agenda
- Object Oriented Programming
- – PrefixMap.java
- – PrefixMap.java
- Inheritance Relationships
- Abstract and Interfaces
- Final Keyword
- Generic Types
Additional Content
Fri 02/18
Lab Agenda
Assignments
- 02/18: Instance vs Static
- 02/18: Instance vs Identifier
- 02/25: Mutability Part 1
- 02/25: Mutability Part 2
Assignments
- 02/25: Inheritance Keywords
- 02/25: Collections Revisited
Assignments
- 02/25: TextFileIndex
Dates and Deadlines
- Due: Project Setup
- Due: Instance vs Static
- Due: Instance vs Identifier
Week 05
Tue 02/22
Lecture Agenda
Thu 02/24
Lecture Agenda
Fri 02/25
Lab Agenda
- Homework Bundle 1 Help
- – TextFileStemmer (Template)
- – SimpleJsonWriter (Template)
- – TextFileIndex (Template)
- Homework Bundle 2 Help
- – TextFileSorter (Template)
- Project Help
- – Project Grading
- – Project 1 Inverted Index
Assignments
- 03/04: Java Features
- 03/04: Lambda Expressions
Assignments
- 03/25: TextFileSorter
Dates and Deadlines
- Due: Mutability Part 1
- Due: Mutability Part 2
- Due: Inheritance Keywords
- Due: Collections Revisited
- Due: Code Review Intake
- Due: Homework Bundle 1
- Due: TextFileStemmer
- Due: SimpleJsonWriter
- Due: TextFileIndex
Week 06
Tue 03/01
Lecture Agenda
- LambdaDemo.java
- Stream Basics
- Stream Pipelines
- – StreamDemo.java
- – ParallelStreamBenchmark.java
- – InfiniteStreamDemo.java
Additional Content
Thu 03/03
Lecture Agenda
Fri 03/04
Lab Agenda
- Homework Bundle 2 Help
- – TextFileSorter (Template)
- – TextFileFinder (Template)
- Project Help
- – Project 1 Inverted Index
- – Project 2 Partial Search
Assignments
- 03/04: Stream Pipelines
- 03/11: Project 2 Guide
- 03/29: Project 2 Partial Search
Dates and Deadlines
- Due: Project 1 Tests
Assignments
- 03/25: TextFileFinder
Dates and Deadlines
- Due: Casting
- Due: Nested Classes
- Due: Java Features
- Due: Lambda Expressions
- Due: Stream Pipelines
Week 07
Tue 03/08
Lecture Agenda
Thu 03/10
Lecture Agenda
- Logging
- Logging
- – log4j2.xml
- – Log4j2Demo.java
- – CharacterCounter.java
- CharacterFinder Example
- – CharacterFinder.java
- – CharacterCompare.java
- – CharacterBenchmark.java
Additional Content
Fri 03/11
Lab Agenda
- Homework Bundle 2 Help
- – TextFileSorter (Template)
- – TextFileFinder (Template)
- Homework Bundle 3 Help
- – LoggerSetup (Template)
- Project Help
- – Project 1 Inverted Index
- – Project 2 Partial Search
Dates and Deadlines
- Due: Project 1 Review 1
Assignments
- 03/25: Midterm Survey
- 03/25: Assert Statements
- 03/25: Logging
- Exam 1 Retake
Assignments
- 03/25: Midterm Survey
- 04/08: LoggerSetup
Dates and Deadlines
- Due: Piazza Post
- Due: Project 2 Guide
Week 08
Tue 03/15
No Class
- Spring Break
Thu 03/17
No Class
- Spring Break
Fri 03/18
No Class
- Spring Break
Week 09
Tue 03/22
Lecture Agenda
- Multithreading
- Thread Lifecycle
- Multithreading
- – RandomArrayDemo.java
- – ThreadStateDemo.java
- Consistency
Additional Content
Thu 03/24
Lecture Agenda
Fri 03/25
Lab Agenda
- Homework Bundle 2 Help
- – TextFileSorter (Template)
- – TextFileFinder (Template)
- Homework Bundle 3 Help
- – LoggerSetup (Template)
- – ReadWriteLock (Template)
- Project Help
- – Project 1 Inverted Index
- – Project 2 Partial Search
Assignments
- 04/01: Synchronization
Assignments
- 04/08: ReadWriteLock
Dates and Deadlines
- Due: Midterm Survey
- Due: Assert Statements
- Due: Logging
- Due: Homework Bundle 2
- Due: TextFileSorter
- Due: TextFileFinder
Week 10
Tue 03/29
Lecture Agenda
Thu 03/31
Lecture Agenda
- Thread Pools and Work Queues
- Work Queue
- Directory Listing Demos
- – SerialDirectoryListing.java
- – SlowDirectoryListing.java
- – ThreadDirectoryListing.java
- – FastDirectoryListing.java
Additional Content
Fri 04/01
Lab Agenda
- Homework Bundle 3 Help
- – LoggerSetup (Template)
- – ReadWriteLock (Template)
- – PrimeFinder (Template)
- Project Help
- – Project 2 Partial Search
- – Project 3 Multithreading
Assignments
- 04/08: Work Queues
Week 11
Tue 04/05
Lecture Agenda
- HyperText Markup
- Regular Expressions
- Regular Expressions
- – RegexClasses.java
- – RegexQuantifiers.java
Additional Content
Thu 04/07
Lecture Agenda
- Regular Expressions
- – RegexWordParsing.java
- – RegexBoundaries.java
- – RegexGroups.java
- – RegexChallenge.java
Additional Content
Fri 04/08
Lab Agenda
- Homework Bundle 3 Help
- – LoggerSetup (Template)
- – ReadWriteLock (Template)
- – PrimeFinder (Template)
- Homework Bundle 4 Help
- – LinkParser (LinkParser)
- Project Help
- – Project 2 Partial Search
- – Project 3 Multithreading
Assignments
- 04/15: Regular Expressions
Assignments
- 04/29: LinkParser
Dates and Deadlines
- Due: Work Queues
- Due: Homework Bundle 3
- Due: LoggerSetup
- Due: ReadWriteLock
- Due: PrimeFinder
- Due: Project Pass Requirement
Week 12
Tue 04/12
Lecture Agenda
Thu 04/14
Lecture Agenda
- Jetty and Servlets
- Servlet Basics
- – TodayServer.java
- – HelloServer.java
- – VisitServer.java
- – SimpleFileServer.java
- – GalleryServer.java
Additional Content
Fri 04/15
No Class
- Easter Holiday
Week 13
Tue 04/19
Lecture Agenda
Additional Content
Thu 04/21
Lecture Agenda
Fri 04/22
Lab Agenda
- Homework Bundle 4 Help
- – LinkParser (LinkParser)
- – HtmlCleaner (HtmlCleaner)
- – HtmlFetcher (HtmlFetcher)
- Project Help
- – Project 2 Partial Search
- – Project 3 Multithreading
- – Project 4 Web Crawler
Assignments
- 04/29: Servlet Contexts
- 04/29: Project 4 Writeup
- 05/10: Project 4 Web Crawler
Dates and Deadlines
- Due: Project 3 Tests
Week 14
Tue 04/26
Lecture Agenda
Thu 04/28
Lecture Agenda
Fri 04/29
Lab Agenda
- Homework Bundle 4 Help
- – LinkParser (LinkParser)
- – HtmlCleaner (HtmlCleaner)
- – HtmlFetcher (HtmlFetcher)
- Project Help
- – Project 3 Multithreading
- – Project 4 Web Crawler
Assignments
- Finals: Project 4 Search Engine
- Finals: Final Code Review
Assignments
- 05/06: HeaderServer (Optional)
Dates and Deadlines
- Due: Servlet Contexts
- Due: Project 4 Writeup
- Due: Homework Bundle 4
- Due: LinkParser
- Due: HtmlCleaner
- Due: HtmlFetcher
Week 15
Tue 05/03
Lecture Agenda
- Exam 2
Thu 05/05
Lecture Agenda
Fri 05/06
Lab Agenda
- Project Help
- – Project 3 Multithreading
- – Project 4 Web Crawler
Assignments
- 05/12: Exam 2 Retake
- 05/13: What-If Check
- 05/13: Final Survey
- 05/18: Official Evaluations
Dates and Deadlines
- Due: SQL Joins
- Due: SQL Groups
- Due: Homework Bundle 5
- Due: HeaderServer (Optional)
Week 16
Tue 05/10
Lecture Agenda
Thu 05/12
Lecture Agenda
- Search Engine
- Search Engine Demo
- Course Recap
Fri 05/13
No Class
- Study Day
- CS Picnic
Dates and Deadlines
- Due: Project 4 Tests
- Due: Review Requests
Dates and Deadlines
- Due: Exam 2 Retake
- 05/12: Classes End
End of Semester Deadlines
- 05/13: CS Event
- 05/13: Piazza Reply
- 05/13: What-If Check
- 05/13: Final Survey
- 05/13: Review Cutoff
- 05/15: Project Cutoff
- 05/18: Official Evaluations
Finals