CMPSCI 187: Fall 2012

Syllabus and Course Schedule

Prof. David Mix Barrington

Reading assignments are from Dale, Joyce, and Weems, Object-Oriented Data Structures Using Java, third edition.

Lecture meetings are Mondays, Wednesdays, and Fridays 1:25-2:15 in Morrill I N375, and discussion meetings are either 9:05-9:55 (section 2), 10:10-11:00 (section 1), 11:15-12:05 (section 3), or 12:20-1:10 (section 4) on Wednesdays, all in LGRT 223. Discussion attendance is required and will form a small portion of the final grade.

PART I:  Overview, Abstract Data Types, and Stacks

Wed 05 Sep ---  NO DISCUSSION  
Wed 05 Sep L01  Course Overview
Fri 07 Sep L02  Software Engineering Overview (1.1)
Mon 10 Sep L03  Java Overview, Primitive Java (1.2-1.4)
Wed 12 Sep D01  Intro to Unix
Wed 12 Sep L04  Data Structures Overview (1.5, 1.6)
Fri 14 Sep L05  Analysis Overview (1.7)
Mon 17 Sep L06  An Abstraction: StringLogs (2.1, 2.2)  (END OF ADD/DROP)
Wed 19 Sep D02  Throwing a Million Dice
Wed 19 Sep L07  Array-Based StringLogs (2.3, 2.4)
Fri 21 Sep L08  Linked StringLogs (2.5, 2.6)
Mon 24 Sep L09  Case Study: A Trivia Game (2.7, 2.8)
Wed 26 Sep D03  Sorting With Two Stacks
Wed 26 Sep L10  Stacks in the Abstract (3.1-3.3)
Fri 28 Sep L11  Array-Based Stacks (3.4, 3.5)
Mon 01 Oct L12  Stacks and Expressions (3.5, 3.6)
Wed 03 Oct D04  Infix and Postfix Expressions
Wed 03 Oct L13  Linked Stacks (3.7)
Fri 05 Oct L14  Case Study: A Postfix Evaluator (3.8)
Mon 08 Oct ---  NO CLASS (Columbus Day Holiday)
Tue 09 Oct ---  (MONDAY SCHEDULE) ---  Optional Review Session for Exam #1
Tue 09 Oct X01  Midterm Exam #1, 7-9 p.m., Goessman 20 (A-L) and 64 (M-Z)

PART II: Recursion, Queues, and Lists

Wed 10 Oct D05  Hacking Linked Lists
Wed 10 Oct L15  Thinking Recursively (4.1-4.4)
Fri 12 Oct L16  Thinking About Recursion (4.5-4.7)
Mon 15 Oct ---  NO LECTURE (DAVE AWAY)
Wed 17 Oct D06  Equality For Trees
Wed 17 Oct L17  Queues (5.1, 5.2) (DAVE AWAY)
Thu 18 Oct ---  MID-SEMESTER DATE (last chance to W-drop or P/F)
Fri 19 Oct L18  Array-Based Queues (5.3, 5.4) (DAVE AWAY)
Mon 22 Oct L19  Linked Queues (5.5, 5.6)
Wed 24 Oct D07  Using Double-Ended Queues
Wed 24 Oct L20  Concurrency and a Case Study (5.7, 5.8)
Fri 26 Oct L21  Array-Based Lists (6.1-6.4)
Mon 29 Oct ---  NO CLASS (WEATHER)
Wed 31 Oct D08  Guessing A Number
Wed 31 Oct L22  Binary Search (6.5, 6.6)
Fri 02 Nov L23  Linked Lists (6.7) 
Mon 05 Nov L24/5  Files, More Kinds of Lists (6.8, 7.1-7.6)
Wed 07 Nov D09  Implementing Double-Ended Queues
Wed 07 Nov ---  Optional review for Exam #2
Wed 07 Nov X02  Midterm Exam #2, 7-9 p.m., Marcus 131

PART III: Yet More Data Structures, Sorting and Searching

Fri 09 Nov L26  (8.1-8.4) Binary Search Trees
Mon 12 Nov ---  NO CLASS (Veteran's Day Holiday)
Wed 14 Nov ---  (MONDAY SCHEDULE)  NO DISCUSSION
Wed 14 Nov L27  (MONDAY SCHEDULE) Implementing Binary Search Trees (8.5, 8.6)
Fri 16 Nov L28  More on Binary Search Trees (8.7-8.9)
Mon 19 Nov L29  Case Study: Word Frequencies (8.10)
Wed 21 Nov D10  Finding Average Depth
Wed 21 Nov L30  Heaps and Priority Queues (9.1, 9.2)
Fri 23 Nov ---  NO CLASS (Thanksgiving Holiday)
Mon 26 Nov L31  Graphs (9.3-9.5)
Wed 28 Nov D11  Decision Trees for Sorting
Wed 28 Nov L32  Searching a Graph (9.6)
Fri 30 Nov L33  Simple Sorting Algorithms (10.1, 10.2)
Mon 03 Dec L34  Efficient Sorting Algorithms (10.3, 10.4)
Wed 05 Dec D12  Course Evaluations (University's and Mine)
Wed 05 Dec L35  Searching and Selecting (10.5)
Fri 07 Dec L36  Hashing (10.6)

FINAL EXAM (cumulative) Thursday 13 December 4-6 p.m., Marcus 131

Last modified 11 December 2012