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
Wed 08/24
Lecture Agenda
Additional Content
Fri 08/26
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
- 08/23: 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
Wed 08/31
Lecture Agenda
- Project 1 Inverted Index
- Paths and Files
- File IO
- – EliteFileConverter.java
- – DirectoryStreamDemo.java
Additional Content
Fri 09/02
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/21: 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
Wed 09/07
Lecture Agenda
Additional Content
Fri 09/09
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: 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
Wed 09/14
Lecture Agenda
- Getting Help
- Generic Types
- GenericTypesDemo.java
- Object Class
- ObjectDemo.java
- Exploring Objects
- – StringDemo.java
- – HashCodeDemo.java
Additional Content
Fri 09/16
Lecture Agenda
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
Wed 09/21
Lecture Agenda
Fri 09/23
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/26: 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
Wed 09/28
Lecture Agenda
Fri 09/30
Lecture Agenda
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
Assignments
- 10/07: FileFinder (Template)
Dates and Deadlines
- Due: Project 2 Guide
- Due: FileSorter (Template)
Week 07
Wed 10/05
Lecture Agenda
- Stream Pipelines
- PipelineDemo.java
- ParallelStreamBenchmark.java
- Regular Expressions
- Regular Expressions
- RegexClasses.java
- RegexQuantifiers.java
- RegexWordParsing.java
Additional Content
Fri 10/07
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
Assignments
- 10/14: Regular Expressions
Week 08
Wed 10/12
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 Review 1
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
Wed 10/19
Lecture Agenda
- Software Testing (Full Lecture)
- Software Testing
- Unit Testing
Fri 10/21
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
Dates and Deadlines
- Due: Exam 1 Retake
- Due: Project 1 Review 2
Assignments
- 11/02: Assert Statements
- 11/02: Logging
- 11/02: Thread Basics
- 10/28: Midterm Survey
Week 10
Wed 10/26
Lecture Agenda
Fri 10/28
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/16: Project 3 Multithreading
- 11/04: Project 3 Writeup
Dates and Deadlines
- Due: Project 1 Design
- Due: Project 2 Tests
Assignments
- 11/04: Synchronization
Assignments
- 11/04: ReadWriteLock (Template)
Dates and Deadlines
- Due: Midterm Survey
- Due: LoggerSetup (Template)
- 11/01: Project Cutoff
- 11/02: Assert Statements
- 11/02: Logging
- 11/02: Thread Basics
Week 11
Wed 11/02
Lecture Agenda
- Coordination Recap
- Bounded Buffer
- BoundedBuffer.java
- MirrorDriver.java
- Conditional Locks
- Synchronization
- ConcurrentSet.java
- SetDemo.java
Additional Content
Fri 11/04
Lecture Agenda
- Thread Pools and Work Queues Recap
- Work Queues (Part 1)
- SerialDirectoryListing.java
- BlockingDirectoryListing.java
- ThreadedDirectoryListing.java
- Work Queues (Part 2)
- WorkQueue.java
- QueuedDirectoryListing.java
- ListingBenchmark.java
- Hypertext Transfer Protocol (HTTP)
Additional Content
Fri 11/04
Lab Agenda
- Homework Help
- ReadWriteLock (Template)
- PrimeFinder (Template)
- Project Help
- Project 2 Partial Search
- Project 3 Multithreading
Assignments
- 11/04: Synchronization
Dates and Deadlines
- 11/01: Project Cutoff
- Due: Assert Statements
- Due: Logging
- Due: Thread Basics
Assignments
- 11/11: Work Queues
- 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
Wed 11/09
Lecture Agenda
Fri 11/11
Lecture Agenda
- Servlet Basics
- HelloServer.java
- VisitServer.java
- SimpleFileServer.java
- 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: Dynamic Web
- 11/18: What-If Check
Assignments
- 11/18: Servlet Contexts
Assignments
- 11/18: HtmlFetcher (Template)
Dates and Deadlines
- Due: PrimeFinder (Template)
- Due: Work Queues
- Due: HTTP Basics
Week 13
Wed 11/16
Lecture Agenda
- Servlet Data
- MessageServer.java
- MessageServlet.java
- BulmaMessageServlet.java
- HTTP Cookies
- – CookieServer.java
- – CookieLandingServlet.java
- – CookieVisitServlet.java
- Sessions Adventure
- – AdventureServer.java
- – AdventureRoom.java
- – AdventureServlet.java
Previous Lecture Videos
- Spring 2022 Recording (In Person)
- Spring 2021 Recording (Remote)
Fri 11/18
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 3 Tests
Assignments
- 12/07: 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
Wed 11/23
Lecture Agenda
Fri 11/25
No Class
- Thanksgiving Recess
Fri 11/25
No Class
- Thanksgiving Recess
Week 15
Wed 11/30
Lecture Agenda
Fri 12/02
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 2+3 Review 2
Assignments
- 12/08: 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
Wed 12/07
Lecture Agenda
- Search Engine Demo
- Course Recap
Fri 12/09
No Class
- Study Day
Fri 12/09
Deadlines
- 12/09: CS Event
- 12/09: Final Survey
- 12/09: Code Review Cutoff
Dates and Deadlines
- Due: Project 2+3 Design
- Due: Project 4 Tests
- 12/08: Exam 2 Retake
- 12/07: Classes End
Dates and Deadlines
- Due: Code Review Cutoff
Upcoming Deadlines
- 12/09: Finals Begin
Finals