User Tools

Site Tools


project:outline

Course Outline

The following is a draft course outline spanning all 16 weeks of class.

This list is based on accelerating the beginning of the current CS180 syllabus and then mixing in concurrency topics wherever they seem most appropriate. Because of this situation, the first 4 weeks are intended to be review.

Readings are given in parentheses following the topics for the week. Wittman = Wittman text, Savitch = Savitch text (the optional graphics sections in Savitch are skipped until week 12).

Week Topics Lecture 1 Lecture 2 Laboratory
1 Course overview; primitive data types, strings, and control flow (Savitch 1, 2.1-2.3, 3.1) August 25
(apm)
August 27
(apm)
Lab 1
2 Creating classes and methods
Design notation (UML) (Savitch 4.1-4.2, 5.1, 5.3, 6.1-6.2)
September 1
(apm)
September 3
(apm)
Lab 2
Project 1 Assigned
3 Inheritance and Exceptions (Savitch 8.1-8.3)September 8
(apm)
September 10
(jtk)
Lab 3
4 Arrays (Savitch 7.1-7.5) September 15
(apm)
September 17
(apm)
Lab 4
Project 2A Assigned
Project 1 Due: September 18 - 22
5 Threads (Wittman 5) September 22
(bw)
September 24
(bw)
Lab 5
Exam 1: September 24 (evening exam)
6 Synchronization (Wittman 6) September 29
(bw)
October 1
(bw)
Lab 6
Project 2B Assigned
Project 2A Due: October 2
7 Inheritance Revisited and Interfaces (Savitch 9.1-9.3, Wittman 7) October 6
(jtk)
October 8
(jtk)
Lab 7
Project 3 Assigned
Project 2B Due: October 9
October Break - October 13 & 14
8 File I/O (Wittman 8) Canceled
(October Break)
October 15
(jtk)
Lab 8
9 Dynamic Data Structures (Savitch 12.1-12.2) October 20
(apm)
October 22
(apm)
Lab 9
10 Doubly-linked lists, Generics, Sorting
Testing and Debugging Concurrent Programs (Wittman 10)
October 27
(apm)
October 29
(apm)
Lab 10
Project 4 Assigned
Project 3 Due: October 30
11 Recursion (Savitch 11) November 3
(apm)
November 5
(apm)
Lab 11
Exam 2: November 5 (evening exam)
12 GUI (Savitch 1-12) Canceled
(Exam Makeup)
November 12
(apm)
Lab 12
13 Non-determinism and Event Driven Programming (Savitch 1-12) November 17
(apm)
November 19
(apm)
Lab 13
Project 5 Assigned
Project 4 Due: November 20
14 No Class Canceled
(Exam Makeup)
Canceled
(Thanksgiving)
Thanksgiving Break - November 26 - 28
15 More GUI (planned) Project Review (actual) December 1
(jtk)
December 3
(jtk)
Lab 14
16 Review December 8
(apm)
Canceled
(Exam Makeup)
Lab 15
Project 5 Due: December 11

Projects

Below is a table giving suggestions for each of the 6 projects. Ideally, the first week of a multi-week project should include a milestone by which much of the non-concurrent programming should be completed. Then, much of the rest of the time could be dedicated to adding concurrency to the project. Since the schedule of projects has been shifted toward the end of the semester, a Project 0 may be helpful to make sure that students are prepared for later assignments.

All projects are intended to be group projects.

The projects as well as any problems which are introduced in the class will be presented using this template.

Project Description Assigned Due
1 Logic Simulator Thursday, Week 2 Thursday, Week 4
2A Word Hunt (without concurrency) Thursday, Week 4 Thursday, Week 6
2B Word Hunt Thursday, Week 6 Thursday, Week 7
3 Spell Checker (with suggestions) Thursday, Week 7 Thursday, Week 10
4 Connect 4 AI Thursday, Week 10 Thursday, Week 13
5 Ideal Gas Simulation Thursday, Week 13 Thursday, Week 16

Other possibilities for Project 6 include Online Auction, Web Server, Multithreaded Database, and Stock Market. Each of these have excellent opportunities for exploring the role of non-determinism in concurrency, careful use of synchronization, and are real world problems. However, they are also difficult to grade, difficult to test, and can be confusing for students (who may have casual experiences with front ends for each of these systems, but little understanding or intuition about back end design).

project/outline.txt · Last modified: 2010/05/14 16:06 by jtk