Link Search Menu Expand Document

Calendar

Autocomplete

Sep 30
Welcome to CSE 143
Review, BJP 8
Oct 1
SectionObjects
Oct 2
Comparable
BJP 9.5, 10.2
  1. Describe the relationships between client vs. implementer and interface vs. class.
  2. Define methods that accept instances of the same class as parameters.
  3. 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
  1. Define classes with an array (storing primitive data types or strings) as a field.
  2. Define methods that reassign field values while maintaining class invariants.
  3. Document pre/post conditions and throw exceptions to report problems to clients.
Oct 6
SectionArrayIntList
Oct 7
Stacks and Queues
BJP 14
  1. Define static methods that accept multiple objects as parameters.
  2. Loop over each item in a queue using the add, remove, and size methods.
  3. 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
  1. Apply the runtime analysis process to formally describe an algorithm’s runtime.
  2. Describe an example where a queue or stack would be preferred over a list.
  3. 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
  1. Describe an example where a set would be preferred over a list, and vice versa.
  2. Loop over each item in a collection (or an array) with a for-each loop.
  3. Apply the if-missing-then-put pattern to provide default map values.
Oct 13
SectionSets and Maps
Oct 14
Nested Collections
  1. Trace the execution of programs with reference data types.
  2. Define methods that use collections containing other collection types.
  3. 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
  1. Evaluate and reassign variable references to deeply linked nodes.
  2. Trace the execution of programs with references to deeply linked nodes.
  3. Identify and apply additive changes before destructive linked node changes.
AST 3 outSearch Engine
App

DNA Strand

Oct 19
LinkedIntList
BJP 16.2
  1. Designate private visibility to encapsulate nested classes.
  2. Trace the execution of programs with nested object references.
  3. Apply the standard traversal pattern to loop over each item stored in linked nodes.
Oct 20
SectionLinkedIntList
Oct 21
Verification
BJP 16.3
  1. Define methods that handle the empty, front, middle, and end linked node cases.
  2. 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
  1. Trace the execution of programs with method calls by transferring control.
  2. Trace the execution of programs using stack frames each with their own variables.
  3. 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
  1. Apply the three-step outline to define programs with a single recursive call.
  2. Define recursive programs by passing parameters to a private helper method.
Oct 27
SectionRecursive Programming
Oct 28
Structural Recursion
  1. Define public/private paired recursive programs to traverse linked nodes.
  2. 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
  1. Trace the execution of programs with more than one recursive call.
  2. 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
  1. Enumerate the recursive substructure in a solution space with a decision tree.
  2. Apply for loops to simplify repeated recursive calls.
Nov 3
SectionExhaustive Search
Nov 4
Recursive Backtracking
  1. Apply the choose-explore-unchoose pattern to solve backtracking problems.
  2. 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
  1. Determine the compile-time method signature for a given code snippet.
  2. 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
  1. Run pre-order, in-order, and post-order traversals on a binary tree.
  2. Define methods that recursively traverse binary trees.
  3. 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
  1. Apply the binary search tree invariant to search for values and add new values.
  2. Apply the x = change(x) pattern to recursively change binary tree references.
  3. 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