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 08/23
Lecture Agenda
Additional Content
Thu 08/25
Lecture Agenda
Additional Content
Fri 08/26
Lab Agenda
- Java and Eclipse Setup
- GitHub Setup
- Importing Code from GitHub
- Homework Setup
- Homework Help
- ArgumentParser (Template)
Additional Content
Assignments
- 08/26: Course Syllabus
- 08/26: Introduction Post
- 08/26: Forum Setup
Dates and Deadlines
- Due: Classes Begin
Assignments
- 10/14: Ask Why on Piazza
- 12/02: Ask Anything on Piazza
- 12/02: Reply on Piazza
- 12/09: CS Event
Assignments
- 09/02: Introduction Reply
- 09/02: TA Introductions
- 09/02: Homework Setup
- 09/02: ArgumentParser (Template)
Dates and Deadlines
- Due: Course Syllabus
- Due: Introduction Post
- Due: Forum Setup
- 08/29: Add Deadline
Week 02
Tue 08/30
Lecture Agenda
Additional Content
Thu 09/01
Lecture Agenda
Fri 09/02
Lab Agenda
- Project Setup
- Homework Help
- ArgumentParser (Template)
- WordCleaner (Template)
- Project Help
- Project 1 Inverted Index
Assignments
- 09/09: Paths and Files
- 09/09: Project 1 Guide
- 09/20: Project 1 Inverted Index
Assignments
- 09/09: Data Structures
- 09/09: Using Maps
Assignments
- 09/09: Lecture Setup
- 09/09: Project Setup
- 09/09: WordCleaner (Template)
Dates and Deadlines
- Due: Introduction Reply
- Due: TA Introductions
- Due: Homework Setup
- Due: ArgumentParser (Template)
- 09/05: Labor Day Holiday
Week 03
Tue 09/06
Lecture Agenda
Additional Content
Thu 09/08
Lecture Agenda
- Object Oriented Programming
- Inheritance Relationships
- Abstract and Interfaces
- Collections Revisited
- Inheritance Basics
- WordGroup.java
- PrefixMap.java
- PrefixDemo.java
Additional Content
Fri 09/09
Lab Agenda
- Project Testing
- Comparing Files
- Homework Help
- WordCleaner (Template)
- WordIndex (Template)
- Project Help
- Project 1 Inverted Index
Assignments
- 09/16: Code Review Intake
Assignments
- 09/16: Inheritance Keywords
- 09/16: Collections Revisited
Assignments
Dates and Deadlines
- Due: Paths and Files
- Due: Data Structures
- Due: Using Maps
- Due: Project 1 Guide
- Due: Lecture Setup
- Due: Project Setup
- Due: WordCleaner (Template)
- 09/09: Drop Deadline (Census)
Week 04
Tue 09/13
Lecture Agenda
Additional Content
Thu 09/15
Lecture Agenda
- Exploring Objects
- StringDemo.java (Revisited)
- HashCodeDemo.java
- MutabilityDemo.java
- MapMutabilityDemo.java
- ConcatenationDemo.java
Additional Content
Fri 09/16
Lab Agenda
- Homework Help
- WordIndex (Template)
- PrettyJsonWriter (Template)
- Project Help
- Project 1 Inverted Index
- Code Reviews
Assignments
- 09/23: Instance vs Identifier
- 09/23: Instance vs Static
Assignments
- 09/23: Mutability Part 1
- 09/23: Mutability Part 2
- 09/23: Casting
- 09/23: Nested Classes
Assignments
- 09/23: PrettyJsonWriter (Template)
Dates and Deadlines
- Due: Code Review Intake
- Due: Inheritance Keywords
- Due: Collections Revisited
- Due: WordIndex (Template)
Week 05
Tue 09/20
Lecture Agenda
Thu 09/22
Lecture Agenda
Fri 09/23
Lab Agenda
- Using Branches
- Homework Help
- PrettyJsonWriter (Template)
- FileSorter (Template)
- Project Help
- Project 1 Inverted Index
- Project 2 Partial Search
- Code Reviews
Assignments
- 10/25: Project 2 Partial Search
- 09/30: Project 2 Guide
Dates and Deadlines
- Due: Project 1 Tests
Assignments
- 09/30: FileSorter (Template)
Dates and Deadlines
- Due: Instance vs Identifier
- Due: Instance vs Static
- Due: Mutability Part 1
- Due: Mutability Part 2
- Due: Casting
- Due: Nested Classes
- Due: PrettyJsonWriter (Template)
Week 06
Tue 09/27
Lecture Agenda
Thu 09/29
Lecture Agenda
- CLASS CANCELED
- Instead of in-person lecture, watch the videos (1h 22m) and complete the quizzes (15m) listed below during our normally scheduled class time.
Assigned Videos (1h 22m)
- Stream Pipelines ( 20:36 Video)
- Problem1Revisited.java ( 13:24 Video)
- InfiniteStreamDemo.java ( 09:16 Video)
- TextFileParser.java ( 18:31 Video)
- TextFileStreamer.java ( 21:03 Video)
Assigned Quizzes (15m)
- Check Deadlines
- Since these quizzes are part of the asynchronous lecture content, they are due within 24 hours of the normally scheduled lecture time.
- Java Features (05:00)
- Lambda Expressions (05:00)
- Stream Pipelines (05:00)
Fri 09/30
Lab Agenda
- Homework Help
- FileSorter (Template)
- FileFinder (Template)
- Project Help
- Project 1 Inverted Index
- Project 2 Partial Search
- Code Reviews
Dates and Deadlines
- Due: Project 1 Review 1
Dates and Deadlines
- Sophie @ Conference
Assignments
- 10/07: FileFinder (Template)
Dates and Deadlines
- Due: Project 2 Guide
- Due: Java Features
- Due: Lambda Expressions
- Due: Stream Pipelines
- Due: FileSorter (Template)
- Sophie @ Conference
Week 07
Tue 10/04
Lecture Agenda
- Stream Pipelines
- PipelineDemo.java
- ParallelStreamBenchmark.java
- Regular Expressions
- Regular Expressions
- RegexClasses.java
- RegexQuantifiers.java
- RegexWordParsing.java
Additional Content
Thu 10/06
Lecture Agenda
- Exam Guides
- Exam Review
- Regular Expressions
- RegexWordParsing.java
- RegexBoundaries.java
- RegexGroups.java (101 )
- RegexChallenge.java
Additional Content
Fri 10/07
Lab Agenda
- Homework Help
- FileFinder (Template)
- LinkFinder (Template)
- Project Help
- Project 1 Inverted Index
- Project 2 Partial Search
- Code Reviews
Week 08
Tue 10/11
Lecture Agenda
- Exam 1
Fri 10/14
Lab Agenda
- Homework Help
- LinkFinder (Template)
- HtmlCleaner (Template)
- Project Help
- Project 1 Inverted Index
- Project 2 Partial Search
- Code Reviews
Dates and Deadlines
- Due: Project 1 Design
Assignments
- 10/20: Exam 1 Retake
Assignments
- 10/21: HtmlCleaner (Template)
Dates and Deadlines
- Due: LinkFinder (Template)
- Due: Ask Why on Piazza
- Due: Regular Expressions
- 10/17: Fall Break
Week 09
Tue 10/18
No Class
- Fall Break
Tue 10/18
Optional Content
- Software Testing (Full Lecture)
- Software Testing
- Unit Testing
Thu 10/20
Lecture Agenda
Fri 10/21
Lab Agenda
- Homework Help
- HtmlCleaner (Template)
- LoggerSetup (Template)
- Project Help
- Project 1 Inverted Index
- Project 2 Partial Search
- Code Reviews
Assignments
- 10/28: Assert Statements
- 10/28: Logging
- 10/28: Thread Basics
- 10/28: Midterm Survey
Dates and Deadlines
- Due: Exam 1 Retake
Week 10
Tue 10/25
Lecture Agenda
Thu 10/27
Lecture Agenda
Fri 10/28
Lab Agenda
- Homework Help
- LoggerSetup (Template)
- ReadWriteLock (Template)
- Project Help
- Project 1 Inverted Index
- Project 2 Partial Search
- Project 3 Multithreading
- Code Reviews
Assignments
- 11/15: Project 3 Multithreading
- 11/04: Project 3 Writeup
Dates and Deadlines
- Due: Project 2 Tests
Assignments
- 11/04: Synchronization
Assignments
- 11/04: ReadWriteLock (Template)
Dates and Deadlines
- Due: Assert Statements
- Due: Logging
- Due: Thread Basics
- Due: Midterm Survey
- Due: LoggerSetup (Template)
Week 11
Tue 11/01
Lecture Agenda
- Work Queues (Part 1)
- SerialDirectoryListing.java
- BlockingDirectoryListing.java
- ThreadedDirectoryListing.java
- Work Queues (Part 2)
- WorkQueue.java
- QueuedDirectoryListing.java
- ListingBenchmark.java
Additional Content
Thu 11/03
Lecture Agenda
- Work Queues (Part 2)
- WorkQueue.java
- QueuedDirectoryListing.java
- ListingBenchmark.java
- Sockets
- SimpleServer.java
- SimpleClient.java
- Hypertext Transfer Protocol (HTTP)
- UrlFetcher.java
- HttpFetcher.java
Additional Content
Fri 11/04
Lab Agenda
- Homework Help
- ReadWriteLock (Template)
- PrimeFinder (Template)
- Project Help
- Project 2 Partial Search
- Project 3 Multithreading
- Code Reviews
Assignments
- 11/11: HTTP Basics
Assignments
- 11/11: PrimeFinder (Template)
Dates and Deadlines
- Due: ReadWriteLock (Template)
- Due: Synchronization
- Due: Project 3 Writeup
- Due: Withdraw Deadline
Week 12
Tue 11/08
Lecture Agenda
Thu 11/10
Lecture Agenda
- GalleryServer.java
- Servlet Data
- ReverseServer.java
- MessageServer.java
- MessageServlet.java
- BulmaMessageServlet.java
Additional Content
Fri 11/11
Lab Agenda
- Homework Help
- PrimeFinder (Template)
- HtmlFetcher (Template)
- Project Help
- Project 2 Partial Search
- Project 3 Multithreading
- Code Reviews
Assignments
- 11/18: Servlet Contexts
Assignments
- 11/18: HtmlFetcher (Template)
Dates and Deadlines
- Due: PrimeFinder (Template)
- Due: Work Queues
- Due: HTTP Basics
Week 13
Tue 11/15
Lecture Agenda
- CLASS CANCELED
- Instead of in-person lecture, please watch one of the linked lecture recordings from previous semesters.
Lecture Alternatives
- Spring 2022 Recording (In Person)
- Spring 2021 Recording (Remote)
Lecture Code
Thu 11/17
Lecture Agenda
Fri 11/18
Lab Agenda
- Homework Help
- HtmlFetcher (Template)
- Project Help
- Project 2 Partial Search
- Project 3 Multithreading
- Project 4 Web Crawler
- Code Reviews
Dates and Deadlines
- Due: Project 2 Design
- Due: Project 3 Tests
Assignments
- 12/06: Project 4 Web Crawler
- 12/02: Project 4 Writeup
Dates and Deadlines
- Due: What-If Check
- Due: Dynamic Web
- Due: Servlet Contexts
- Due: HtmlFetcher (Template)
Week 14
Tue 11/22
Lecture Agenda
Thu 11/24
No Class
- Thanksgiving Recess
Fri 11/25
No Class
- Thanksgiving Recess
Week 15
Tue 11/29
Lecture Agenda
Thu 12/01
Lecture Agenda
Fri 12/02
Lab Agenda
- Homework Help
- Project Help
- Project 3 Multithreading
- Project 4 Web Crawler
- Project 4 Search Engine
- Code Reviews
Dates and Deadlines
- Due: Project 3 Review 1
Assignments
- 12/16: Exam 2 Retake
- 12/09: Final Survey
- 12/12: Project 4 Search Engine
Dates and Deadlines
- Due: Ask Anything on Piazza
- Due: Reply on Piazza
- Due: SQL Joins
- Due: SQL Groups
- Due: Project 4 Writeup
Week 16
Tue 12/06
Lecture Agenda
- Search Engine Demo
- Course Recap
Thu 12/08
No Class
- Study Day
Fri 12/09
Deadlines
- 12/09: CS Event
- 12/09: Final Survey
- 12/09: Project 3 Design
- 12/09: Code Review Cutoff
Dates and Deadlines
- Due: Project 3 Review 2
- Due: Project 4 Tests
- 12/07: Classes End
Upcoming Deadlines
- 12/09: Finals Begin
Finals
Tue 12/13 to Thu 12/15
Tue 12/13 to Thu 12/15
Fri 12/16 Deadlines
- 12/16: Exam 2 Retake
- 12/16: Late Work Cutoff