CSE 143, Winter 2021: Calendar

This is a rough sketch of the quarter that is likely to change. We can accurately predict the past, but predicting the future is hard! In particular, all future assignment dates should be considered tentative and subject to change.

Jump to today
Class Materials
Suppl. Resources
Week 1: ArrayLists
Tue, Jan 5
Section 1


Wed, Jan 6
Lesson 1


Students will be able to...
  • explain the difference between client and implementer
  • implement a simple array-based list of integers
Thu, Jan 7
Section 2

Bad ArrayIntList

Fri, Jan 8
Lesson 2

More ArrayIntList; Pre/post conditions; Exceptions

Students will be able to...
  • write overloaded methods
  • write effective comments for instance methods
  • identify and document pre- and post-conditions
  • throw exceptions from methods when appropriate
Week 2: Linear collections
Mon, Jan 11
Lesson 3

Lists; Sets; for each loops

Students will be able to...
  • Explain the benefits of using an interface type instead of a class type
  • Identify considerations when choosing an appropriate data structure
  • List the key operations of the List and Set ADTs
Tue, Jan 12
Section 3

Lists and sets

Wed, Jan 13
Lesson 4

Stacks; Queues

Students will be able to...
  • Use a for-each loop to iterate over a collection
  • Use an Iterator to iterate over a Set
  • List and use the basic operations of stacks and queues
Thu, Jan 14
Section 4

Stacks and queues

Fri, Jan 15
Lesson 5

Linked list nodes

Students will be able to...
  • explain the difference between a reference and an object
  • define a class with a field of the same class and explain why this works
  • write code to manipulate nodes of a linked list
Week 3: Linked lists
Mon, Jan 18

No class - Martin Luther King Jr. Day

Tue, Jan 19
Section 5

Linked list node manipulation

Wed, Jan 20
Lesson 6


Students will be able to...
  • traverse a sequence of linked list nodes
  • implement a linked list class to store integers
  • write code to add a new element to the end of a linked list
Thu, Jan 21
Section 6

Linked lists

Fri, Jan 22
Lesson 7

Advanced LinkedIntList

Students will be able to...
  • efficiently construct a linked list from a collection of values
  • insert values into a linked list
Week 4: Maps
Mon, Jan 25
Lesson 8

Complexity; Binary search

Students will be able to...
  • define efficiency and describe different possible ways to measure it
  • find the big-O complexity of simple algorithms
  • compare algorithms to determine which is more efficient
  • describe the binary search algorithm
Tue, Jan 26
Section 7

Linked lists

Wed, Jan 27
Lesson 9


Students will be able to...
  • describe the Map ADT and list its main operations
  • create and use a simple Map using the Java Map interface
  • create and use a Map with a nested collection
Thu, Jan 28
Section 8


Week 5: Recursion
Mon, Feb 1
Lesson 11


Students will be able to...
  • define recursion
  • trace the execution of recursive methods
Tue, Feb 2
Section 9

Recursive tracing

Wed, Feb 3
Lesson 12

More recusion; Public/private pairs

Students will be able to...
  • write recursive methods
  • define and explain public/private recursive pairs
Thu, Feb 4
Section 10

Recursive programming

Fri, Feb 5
Lesson 13

Regular expressions; Grammars

Students will be able to...
  • implement public/private recursive pairs
  • explain and recognize Backus-Naur Form
  • split strings using the Java split method and simple regular expressions
Week 6: Applications of recursion
Tue, Feb 9
Section 11

Exhaustive search

Wed, Feb 10
Lesson 15

More recursive backtracking

Students will be able to...
  • implement exhaustive search using recursive backtracking
Thu, Feb 11
Section 12

Recursive backtracking

Fri, Feb 12
Lesson 16


Students will be able to...
  • describe the approach of several sorting algorithms
  • list the considerations in designing and choosing sorting algorithms
Week 7: Binary trees
Mon, Feb 15

No class - Presidents' Day

Tue, Feb 16

Section cancelled

Wed, Feb 17
Lesson 17

Binary trees

Students will be able to...
  • describe and identify trees and binary trees
  • implement a simple binary tree
  • describe and implement pre-, in-, and post-order traversals of binary trees
Thu, Feb 18
Section 14

Binary trees

Fri, Feb 19
Lesson 18

Binary search trees

Students will be able to...
  • describe the binary search tree property
  • implement search on a binary search tree
  • add values to a binary search tree
Week 8: Binary search trees
Tue, Feb 23
Section 15

Binary trees

Thu, Feb 25
Section 16


Week 9: Encodings
Mon, Mar 1
Lesson 22

Two-dimensional arrays; Image manipulation

Tue, Mar 2
Section 17


Thu, Mar 4
Section 18

Collections; Two-dimensional arrays

Week 10: Wrap-up
Mon, Mar 8
Lesson 25

Basic cryptography

Tue, Mar 9
Section 19


Wed, Mar 10
Lesson 26

Intro. to graphs

Thu, Mar 11
Section 20


Fri, Mar 12
Lesson 27

Victory lap; Closing thoughts