CSSE230 – Data Structures and Algorithms

Summer 2019-20 (aka 202040)

Schedule Overview

All non-Moodle web pages for the course are available from this index page.

This schedule page will begin with the schedule from a previous term, which will be updated as we go. We plan to update assignments and readings at least a week in advance. We’ll update daily schedules and slides just before class.

Preparation is to be completed before the class session.

Unless otherwise noted, all assignments are due at 11:00 PM on the day indicated.

Schedule last updated Wed Aug 12.

Session quick links:  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Week Session Preparation Due Topics Resources Major Programs
1

1

Fri Jun 5

Details
  • Read the Syllabus
  • Bookmark this schedule page.
  • Zybook text, 1.1 - 1.6 (see syllabus for purchasing); this will be part of HW1.
  • Install software for the course:
    • Java 8
    • Eclipse (current version)
  • Nothing today
  • Always look at the Major Programs column, too, for the programming assignment of the week.

  • Course introduction
  • Growable Array analysis
  • Week 1:
    On your own: Skim/read review from the book and get back up-to-speed on programming by doing the WarmUpAndStretching assignment
    In class: Algorithm analysis
Warm Up and Stretching
1

2

Mon Jun 8

Details
  • Zybook text, 2.1 - 2.6; this will be part of HW1.
  • Post to "Introduce Yourself" on CampusWire (you should get an invite via email on day 1; if it comes late, I'll be flexible with the deadline).
  • Growable Arrays (at start of class)
  • Make progress on WarmUpAndStretching.
  • Growable Arrays discussion
  • Review of Asymptotic analysis and formal definition of Big O.
  • Big-O’s cousins, big-Omega and big-Theta
Warm Up and Stretching
1

3

Wed Jun 10

Details
  • Zybook text, 2.7 - 2.9; this will be part of HW2.
  • Homework 1 (Tuesday, 11:00 pm) Submit to HW1 drop box in Moodle. This and all other HW and programming assignments are due at 11:00 PM unless we specify otherwise for a particular assignment.
  • Make progress on WarmUpAndStretching.
  • MCSS Cubic and Quadratic Algorithms
Warm Up and Stretching
2

4

Fri Jun 12

Details
  • MCSS Linear Algorithm
Stacks and Queues
2

5

Mon Jun 15

Details
  • Zybook text, 4.1-4.16; this will be part of HW2.
  • UML Diagram of Collections framework (from HW2). Bring your answer to class so you can refer to it.
  • Abstract data types (ADTs)
  • Review of basic data structures in the Java Collections Framework
Stacks and Queues
2

6

Wed Jun 17

Details
  • Zybook text, 6.1 - 6.2; this will be part of HW3.
  • Trees Intro
  • Implementing a Binary Tree using recursive methods.
Stacks and Queues
3

7

Fri Jun 19

Details
 
  • More recursive binary tree methods.
  • Binary tree traversals
Doublets
3

8

Mon Jun 22

Details
  • Study for Exam 1, take practice exam on Moodle
 
  • Exam 1
  Doublets
3

9

Wed Jun 24

Details
 
  • Homework 3 (Tuesday)
  • StacksAndQueues partner evaluation (on Moodle)
  • Iterators: Simple and lazy ones
Doublets
4

10

Fri Jun 26

Details
  • Zybook text, 6.3 - 6.6; this will be part of HW4.
  • Binary Search Tree (BST) methods: insert, remove, contains.
Binary Search Tree
4

11

Mon Jun 29

Details
  • Zybook text, 6.7 - 6.11; this will be part of HW4.
  • Doublets partner eval
  • Size vs. Height in a binary tree
Binary Search Tree
4

12

Wed Jul 1

Details
  • Zybook text, 7.1; this will be part of HW5.
  • Need for trees that are height-balanced but not completely balanced
Binary Search Tree
5

13

Fri Jul 3

Details
  • Zybook text, 7.2 - 7.4; this will be part of HW5.
  • AVL Trees: How to find the node where rotation is needed
  • Single and double rotations; effect on subtree height.
  • Intro EditorTree and need for rank field
  • Meet team
EditorTrees
5

14

Wed Jul 8

Details
  • Re-write any tree methods you haven't yet mastered
 
  • Student questions on EditorTree Requirements
  • Practice with AVL Tree Rotations
  • Exam 2 in class - programming only
EditorTrees
5

15

Fri Jul 10

Details
 
  • Discuss usage of rank field
  • EditorTrees work time
EditorTrees
6

16

Mon Jul 20

Details
  • Zybook text, 7.5 - 7.8; this will be part of HW6 (but optional, for fun or extra credit to replace any missed readings).
  • Red-black trees (optional for online version)
EditorTrees
6

17

Wed Jul 22

Details
   
  • EditorTrees workday
EditorTrees
6

18

Fri Jul 24

Details
  • Zybook text, 5.1-5.3; this will be part of HW6
  • Hash Table intro
EditorTrees
7

19

Mon Jul 27

Details
  • Zybook text, 5.4-5.9; this will be part of HW6
  • Hash Table analysis
EditorTrees
7

20

Wed Jul 29

Details
  • Zybook text, 8.1-8.4; this will be part of HW7
 
  • Priority Queues and Binary heaps
  • Heaps work time
EditorTrees
7

21

Fri Jul 31

Details
 
  • Heapsort
  • Heapsort work time
EditorTrees
8

22

Mon Aug 3

Details
 
  • EditorTrees Reflection
  GraphSurfing
8

23

Wed Aug 5

Details
  • Study for the exam!
 
  • Exam 3
  GraphSurfing
8

24

Fri Aug 7

Details
  • Zybook text, 9.1-9.6; this will be part of HW8
  • Graphs
GraphSurfing
9

25

Mon Aug 10

Details
 
  • Extended Binary Trees
  • Intro to Recurrences
GraphSurfing
9

26

Wed Aug 12

Details
  • Zybook text, 3.1 - 3.4; this will be part of HW9
 
  • Recurrences and Master Theorem
  • Sorting review/overview
GraphSurfing
9

27

Fri Aug 14

Details
  • Zybook text, 3.5 - 3.8; this will be part of HW9
  • Quicksort
  • Quicksort average case analysis
GraphSurfing
10

28

Mon Aug 17

Details
 
  • Quicksort improvements
  • Lower bound for sorting algorithms.
  • Radix sort
HeapsAndTwoSorts
10

29

Wed Aug 19

Details
   
  • TBA
  • Worktime for sorting assignment
  HeapsAndTwoSorts
10

30

Fri Aug 21

Details
 
  • CSSE230 Big Picture
  • Course evaluations
  • Exam 4 (short, in gradescope)
HeapsAndTwoSorts