CS 261: Computer Science II  (Fall 2019)

Instructor: David Chiu
Meeting Time: MWF 11:00-11:50 in TH 399 and Tue 10:00-11:50 in TH 409
Office: Thompson Hall 390 B
Office Hours: Open door, or by appointment
Tutoring: TBD
Canvas: canvas.pugetsound.edu

Syllabus

The course syllabus contains general information on course topics, grading procedures, and classroom policies.

Textbook

  • Koffman and Wolfgang. Data Structures: Abstraction and Design Using Java. 2nd edition or higher. (Required)

Homework Assignments

Labs

Course Schedule (Tentative)


Week 1 (Reading: Chap 1)

Mon 09/02Tue 09/03
Lab 1 due
Wed 09/04Fri 09/06 etc.

Labor Day (No Class)


Introductions and Review Lab


Inheritance: motivation, abstraction
[Notes]


Inheritance (cont.): this(), super(), adding Goats
[Notes]


Code: Better Farm

Week 2

Mon 09/09Tue 09/10
Lab 2 due
Wed 09/11Fri 09/13
Hwk 1 due
etc.

Polymorphism: variables as boxes; the Object class
[Notes]


(Inheritance Lab)


Lab review; the Object class, instanceof, down-casting, method overriding
[Notes]


Polymorphism: dynamic method dispatch
[Notes]


Code: Method Dispatch

Week 3

Mon 09/16Tue 09/17
Lab 3 due
Wed 09/18Fri 09/20 etc.

Abstract classes
[Notes]


(Abstract Class Lab)


Interfaces and implements; ternary operator
[Notes]


Multiple implementation, Comparable<T>
[Notes]


Code: ShapesManager
Code: Controllable Interface

Week 4 (Reading: Chap 2.1)

Mon 09/23Tue 09/24Wed 09/25
Hwk 2 due
Fri 09/27 etc.

Finish Comparable LibraryBook; Start exceptions


(Interface Lab)


Exceptions: throwing, catching


Exceptions: checked vs. unchecked, customization


Code: Exception

Week 5 (Reading: Chap 2.2-2.4)

Mon 09/30Tue 10/01Wed 10/02Fri 10/04 etc.

Big-O


(Exception Lab)


Big-O (cont.)


Lists: List interface, ArrayList: Under the hood


Code: Pair (Generics)
Code: MyArrayList

Week 6 (Reading: Chap 2.5-end)

Mon 10/07Tue 10/08Wed 10/09Fri 10/11 etc.

Review


Midterm Exam I


ArrayList: Under the hood


Singly linked lists: Inner node class, addFirst()


Review Guide 1
Code: LinkedList

Week 7 (Reading: Chap 4.1-4.4)

Mon 10/14Tue 10/15Wed 10/16Fri 10/18 etc.

Singly linked lists: addAfter(), add(), removeFirst()


(Linked Lists lab)


Linked list optimizations; Start Queues


Queue implementation; start Priority Queues


Code: ListQueue
Code: PriorityQueue (Naive)

Week 8 (Reading: Chap 4.5-4.7. Start Chap 5.1-5.2)

Mon 10/21Tue 10/22Wed 10/23Fri 10/25 etc.

Fall Break


(Queue lab)


Finish priority queue; Start Stack


Stack applications


Code: Stack
Code: Stack Examples

Week 9 (Reading: Chap 5.3-5.5; Start Chap 6.1-6.3)

Mon 10/28Tue 10/29Wed 10/30Fri 11/01 etc.

Recursion


(Stack Lab)


Recursion (cont.)


Recursion (cont.)


Code: Recursion Examples
Code: Recursive List

Week 10 (Reading: Chap 6.2, 6.4)

Mon 11/04Tue 11/05Wed 11/06Fri 11/08 etc.

Trees and BinaryTree: implementation, traversal


(Recursion Lab)


BST: height proof, contains(), add()


BST: add() cont., remove()


Code: BST

Week 11 (Chap 7.2)

Mon 11/11Tue 11/12Wed 11/13Fri 11/15 etc.

Review


Midterm Exam II


Heaps: Min-Heap, percolate up/down; HeapSort


Heaps (cont.): Heap-based PriorityQueue; Start Set


Review Guide 2 (Sol, Code)
Code: Min-Heap
Code: PriorityQueue

Week 12 (Chap 7.2-7.6)

Mon 11/18Tue 11/19Wed 11/20Fri 11/22 etc.

Start Maps


(BST Lab)


HashMaps: open addressing


HashMap: Chaining


Code: ListMap

Week 13 (Chap 8.1-8.3)

Mon 11/25Tue 11/26Wed 11/27Fri 11/29 etc.

TBA


(Map lab)








Code: Sorting

Week 14 (Chap 8.4, 8.6, 8.9)

Mon 12/02Tue 12/03Wed 12/04Fri 12/06 etc.

Sorting: insertion sort


Work Day


Sorting: merge sort


Sorting: quicksort



Week 15

Mon 12/09Tue 12/10Wed 12/11Fri 12/13 etc.

TBA


(Sorting lab)


Review


Reading period



Finals

Mon 12/16Tue 12/17Wed 12/18Fri 12/20 etc.







Final Exam 12-2p





Review Guide 3 (Sol, Code)

   Department of Mathematics and Computer Science
University of Puget Sound
1500 N. Warner St
Tacoma, WA 98416