Calendar
Autocomplete
- Sep 30
- Welcome to CSE 143
- Review, BJP 8
- Oct 1
- SectionObjects
- Oct 2
- Comparable
- BJP 9.5, 10.2
- Describe the relationships between client vs. implementer and interface vs. class.
- Define methods that accept instances of the same class as parameters.
- Define classes that implement public interfaces such as
Comparable
.
- AST 1 outAutocomplete
- App
Letter Inventory
- Oct 5
- ArrayIntList
- BJP 10.1, 15.1, 15.2
- Define classes with an array (storing primitive data types or strings) as a field.
- Define methods that reassign field values while maintaining class invariants.
- Document pre/post conditions and throw exceptions to report problems to clients.
- Oct 6
- SectionArrayIntList
- Oct 7
- Stacks and Queues
- BJP 14
- Define static methods that accept multiple objects as parameters.
- Loop over each item in a queue using the
add
, remove
, and size
methods. - Loop over each item in a stack, storing popped items in another queue or stack.
- Oct 8
- SectionStacks and Queues
- AST 1 dueAutocomplete
- Oct 9
- Algorithm Analysis
- BJP 13.2
- Apply the runtime analysis process to formally describe an algorithm’s runtime.
- Describe an example where a queue or stack would be preferred over a list.
- Explain why
ArrayList
does not implement the Queue
interface.
- AST 2 outLetter Inventory
- App
Search Engine
- Oct 12
- Sets and Maps
- BJP 11.2, 11.3
- Describe an example where a set would be preferred over a list, and vice versa.
- Loop over each item in a collection (or an array) with a for-each loop.
- Apply the if-missing-then-put pattern to provide default map values.
- Oct 13
- SectionSets and Maps
- Oct 14
- Nested Collections
- Trace the execution of programs with reference data types.
- Define methods that use collections containing other collection types.
- Describe the relationship between object reference equality vs. value equality.
- Oct 15
- SectionNested Collections
- AST 2 dueLetter Inventory
- Oct 16
- Linked Nodes
- BJP 16.1
- Evaluate and reassign variable references to deeply linked nodes.
- Trace the execution of programs with references to deeply linked nodes.
- Identify and apply additive changes before destructive linked node changes.
- AST 3 outSearch Engine
- App
DNA Strand
- Oct 19
- LinkedIntList
- BJP 16.2
- Designate private visibility to encapsulate nested classes.
- Trace the execution of programs with nested object references.
- Apply the standard traversal pattern to loop over each item stored in linked nodes.
- Oct 20
- SectionLinkedIntList
- Oct 21
- Verification
- BJP 16.3
- Define methods that handle the empty, front, middle, and end linked node cases.
- Explain why
LinkedList
(unlike ArrayList
) implements the Queue
interface.
- Oct 22
- SectionVerification
- AST 3 dueSearch Engine
- Oct 23
- Recursive Tracing
- BJP 12.1, 12.2
- Trace the execution of programs with method calls by transferring control.
- Trace the execution of programs using stack frames each with their own variables.
- Trace the execution of programs with a single recursive call.
- AST 4 outDNA Strand
- App
Language Generator
- Oct 26
- Recursive Programming
- BJP 12.3, 12.4
- Apply the three-step outline to define programs with a single recursive call.
- Define recursive programs by passing parameters to a private helper method.
- Oct 27
- SectionRecursive Programming
- Oct 28
- Structural Recursion
- Define public/private paired recursive programs to traverse linked nodes.
- Apply the
x = change(x)
pattern to recursively change linked node references.
- Oct 29
- SectionStructural Recursion
- AST 4 dueDNA Strand
- Oct 30
- Generative Recursion
- BJP 689–690
- Trace the execution of programs with more than one recursive call.
- Define generative recursive programs that create new data on each recursive call.
- AST 5 outLanguage Generator
- App
Election Simulator
- Nov 2
- Exhaustive Search
- BJP 12.5
- Enumerate the recursive substructure in a solution space with a decision tree.
- Apply for loops to simplify repeated recursive calls.
- Nov 3
- SectionExhaustive Search
- Nov 4
- Recursive Backtracking
- Apply the choose-explore-unchoose pattern to solve backtracking problems.
- Describe the relationship between exploring with vs. without replacement.
- Nov 5
- SectionRecursive Backtracking
- AST 5 dueLanguage Generator
- Nov 6
- Notional Machine
- BJP 9.1, 9.2, 9.3, 9.4
- Determine the compile-time method signature for a given code snippet.
- Determine the method ultimately called at runtime for a given code snippet.
- AST 6 outElection Simulator
- App
Text Classifier
- Nov 9
- Binary Trees
- BJP 17.1, 17.2
- Run pre-order, in-order, and post-order traversals on a binary tree.
- Define methods that recursively traverse binary trees.
- Define methods that recursively modify binary tree node data values.
- Nov 10
- SectionBinary Trees
- Nov 12
- SectionMore Binary Trees
- AST 6 dueElection Simulator
- Nov 13
- Binary Search Trees
- BJP 17.3, 17.4
- Apply the binary search tree invariant to search for values and add new values.
- Apply the
x = change(x)
pattern to recursively change binary tree references. - Explain why binary search trees would be preferred over binary search on arrays.
- AST 7 outText Classifier
- App
Project Management
- Nov 16
- Specifications
- Nov 17
- SectionGuided Project
- Nov 18
- Teams
- Nov 19
- SectionGuided Project
- AST 7 dueText Classifier
- Nov 20
- Users
- Video
Information
- Nov 23
- Programming the World
- Video
- Nov 24
- SectionGuided Project
- Nov 25
- Computing Education
- Video
Implementations
- Nov 30
- ArrayList
- BJP 15.3
- Dec 1
- SectionFinal Project
- Dec 2
- HashSet
- BJP 18.1
- Dec 3
- SectionFinal Project
- Dec 4
- LinkedList
- BJP 9.5, 9.6
Industry
- Dec 7
- No BS CS Career Talk
- Video, Slides
- Dec 8
- SectionFinal Project
- Dec 9
- Technology Industry
- Dec 10
- SectionFinal Project
- Dec 11
- Project Fair