CSci 151: Foundations of computer science II
Home Syllabus Assignments Tests

Classroom: MWF: 11:10a-11:00a, MCRey 315
Web page www.cburch.com/cs/151/
Instructor: Dr. Carl Burch
E-mail: burch at grendel dot hendrix dot e d u
Telephone: 450-1377 (office); 548-0036 (home)
Office: MCRey 310
Office hours: T 2:40-3:30, RF 10:10-11:00, R 3:40-4:30
drop-ins, appointments always welcome
Tutor hours: M 6-8 Katie Wright
T 6-8 Don Bennett
W 6-8 Don Bennett
R 6-8 Katie Wright

Useful links

Data & Procedure textbook
Getting started with Eclipse
Java API (alternate site)
Sauron submission system (instructions)

Schedule

The assignment of topics to days will change as the class progresses.

Textbook references are on the right, prefaced by a section symbol §.

Wed 27 Aug Java review: Class elements §9.1
Fri 29 Aug two-dimensional arrays
ADTs §1.1
using the List ADT §1.2.0–1.2.3
1 Sep Labor Day - no class
Wed 3 Sep wrapper types §1.2.2
implementing ArrayList §1.2.4
Fri 5 Sep implementing ArrayList §1.2.4
recursion §2.1
Assn 1 due
Mon 8 Sep exceptions: try & catch
linked lists: Introduction §2.2.0
Wed 10 Sep implementing LinkedList §2.2.1
Quiz 1
Fri 12 Sep implementing LinkedList, cont'd §2.2.1
comparison with ArrayList §2.2.4
Assn 2 due
Mon 15 Sep iterators §2.2.3
for-each loops
Wed 17 Sep invariants §3.1
exponentation algorithms §3.3
Fri 19 Sep search algorithms §3.2
data invariants §3.4
Assn 3 due
Mon 22 Sep big O: introduction §4.0–4.1.1
Wed 24 Sep Exam 1
Fri 26 Sep exam portmortem
big O: examples §4.1.2
Assn 4 due
Mon 29 Sep big O: examples §4.1.2
simple sorting §4.2.1
Wed 1 Oct mergesort §4.2.2
quicksort §4.2.3
Fri 3 Oct prime counting §4.3
space efficiency §4.4
Assn 5 due
Mon 6 Oct tree introduction §5.0–5.1.3
Wed 8 Oct tree traversals §5.1.4
Quiz 2
Fri 10 Oct binary search trees §5.2–5.2.1
Assn 6 due
Mon 13 Oct implementing TreeSet §5.2.2
Wed 15 Oct red-black trees §5.3
Map ADT §6.1
16-19 Oct Fall break - no class
Mon 20 Oct hash tables §6.2
Wed 22 Oct hash table performance §6.2.3
Quiz 3
Fri 24 Oct hash functions §6.3
stack introduction §7.1.0–7.1.1
evaluating postfix expressions §7.1.3
Assn 7 due
Mon 27 Oct converting recursion to stacks (PDF handout)
Wed 29 Oct tree iterator §7.1.4
queues §7.2.0
level-order traversal §7.2.2
Fri 31 Oct queue implementations §7.2.1
priority queues §8.0–8.1
Assn 8 due
Mon 3 Nov Swing GUIs (reading)
Wed 5 Nov Exam 2
Fri 7 Nov Swing components (§examples)
inner classes
Assn 9 due
Mon 10 Nov nested classes
packages and protection levels
Wed 12 Nov heaps §8.2
Project ideas due
Fri 14 Nov priority queue sorts §8.3
Assn 10 due
Mon 17 Nov no class
Wed 19 Nov heapsort code §8.3
Project design due
Quiz 4
Fri 21 Nov Dijkstra's algorithm §8.4
Assn 11 due
Mon 24 Nov A* algorithm §8.4
26-30 Nov Thanksgiving break - no classes
Mon 1 Dec regular expressions
Wed 3 Dec no class
Project progress report
Fri 5 Dec finite automata
Mon 8 Dec finite automata, cont'd
Tue 9 Dec Project demos
Mon 15 Dec Final, 9:00am
18 Dec-11 Jan Winter break