| Professor: | Chris Gill
|
|
| Office hours: Bryan 506 noon-1pm Tuesdays (or by appointment) | ||
http://classes.cec.wustl.edu/~cse532/http://www.cse.wustl.edu/~cdgill/courses/cse532/
Contents
Please submit ALL questions and concerns of a public nature to the CSE532 Messageboard, which can be found on the web at http://classes.engineering.wustl.edu/cse532/bb/. To use the CSE 532 Messageboard, you should first click on the Register link found on that page, and follow the instructions you are given. You are encouraged answer each other's questions there!
Do not e-mail technical questions to the professor: instead, please post for all to see, consider, and respond.
Required and optional reading assignments are shown in brackets for each topic: please complete the assigned reading before the class meeting where it will be presented, so that you can participate fully in the in-class discussions. As we progress through the semester, these assignments may be made more specific to focus on key topics and issues of interest. The C++NPv1, C++NPv2, Austern, and POSA2 books are listed in the Textbooks section, below.
| January 15 |
(slides: in ppt format) |
|||||||||||||||||||||||||||||||||||||||||
| 17 |
Concurrent and Networked Objects [C++NPv1 Chapters 0, 1, and 2] (optional: [POSA2, Chapter 1]) (slides: in ppt format) Wrapper Facade [C++NPv1 Chapter 3] (optional: [POSA2, pp. 47-74]) (slides: in ppt format) |
|||||||||||||||||||||||||||||||||||||||||
| 22 |
Intro to Generic Programming in C++ [Austern, Preface] [Austern, Chapter 1] [Austern, Chapter 6] (optional: [Austern, Chapter 10]) (slides: in ppt format) Algorithms and Ranges [Austern, Chapter 2] (optional: [Austern, Chapters 11-13]) (slides: in ppt format) | |||||||||||||||||||||||||||||||||||||||||
| 24 Lab 0 Teams Declared by 11:59pm Sunday 1/27/08 Due by 11:59pm Sunday 2/10/08 | Lab 0 Design Discussion |
Iterators [Austern, Chapter 3] [Austern, Chapter 7] (optional: [Austern, Chapter 14]) (slides: in ppt format) |
||||||||||||||||||||||||||||||||||||||||
| 29 |
Function Objects [Austern, Chapter 4] [Austern, Chapter 8] (optional: [Austern, Chapter 15]) (slides: in ppt format) |
|||||||||||||||||||||||||||||||||||||||||
| 31 | Containers [Austern, Chapter 5] [Austern, Chapter 9] (optional: [Austern, Chapter 16]) (slides: in ppt formats) | |||||||||||||||||||||||||||||||||||||||||
| February 5 |
Event Handling Patterns [C++NPv2 Chapter 1] (optional: [POSA2, pp. 175-177]) Asynchronous Completion Token [C++NPv2 pp. 63, 64, 263, 291] (optional: [POSA2, pp. 261-284]) (slides: in ppt format) |
|||||||||||||||||||||||||||||||||||||||||
| 7 |
Reactor [C++NPv1 Chapter 7] [C++NPv2 Chapters 3, 4] (optional: [POSA2, 179-214]) (slides: in ppt format) | Lab 1 Design Discussion (slides: in ppt format) |
||||||||||||||||||||||||||||||||||||||||
| February 12 |
Acceptor/Connector [C++NPv2 Chapter 7] (optional: [POSA2, pp. 285-322]) (slides: in ppt format) |
|||||||||||||||||||||||||||||||||||||||||
| 14 Lab 1 Teams declared/assigned Sunday 2/16 11:59pm Due 11:59pm Sunday 3/2/08 (note new deadline) |
Proactor [C++NPv2 Chapter 8] (optional: [POSA2, 215-260]) (slides: in ppt format) |
|||||||||||||||||||||||||||||||||||||||||
| 19 | An Event Handling Pattern Language (slides: in ppt format) | |||||||||||||||||||||||||||||||||||||||||
| 21 |
Synchronization Patterns [C++NPv1 Chapter 10] (optional: [POSA2, Chapter 4]) (slides: in ppt and format) | |||||||||||||||||||||||||||||||||||||||||
| 26 |
||||||||||||||||||||||||||||||||||||||||||
| 28 |
Lab 2 Design Discussion (slides: in ppt format) Review for Midterm Exam (slides: in ppt format) |
|||||||||||||||||||||||||||||||||||||||||
| March 4 |
|
|||||||||||||||||||||||||||||||||||||||||
| 6 |
(in lecture period/classroom) open book, open notes (hard copy only, no electronics) |
|||||||||||||||||||||||||||||||||||||||||
| 11 |
| 13 | 18 |
Guest Lecturer: Prof. Cytron | Concurrency Patterns [C++NPv1 Chapters 5, 6, 9] (optional: [POSA2, pp. 365-367]) (slides: in ppt format) Monitor Object [C++NPv1 pp. 133, 224] [C++NPv2 pp. 165] (read again after the lecture, and later as needed) (optional: [POSA2, pp. 399-422]) (slides: in ppt format) |
20 |
Midterm Grading Review and Discussion |
Active Object [C++NPv2 Chapter 6] (optional: [POSA2, pp. 369-398]) (slides: in ppt format) Half-Sync/Half-Async [C++NPv1 pp. 16, 112, 113, 122, 206] [C++NPv2 pp. 155, 156, ] (read again after the lecture, and later as needed) (optional: [POSA2, pp. 423-445]) (slides: in ppt format) |
25 | Lab 2 Teams declared Sunday 3/30/08 Due 11:59pm Sunday 4/13/08
Leader/Followers | [C++NPv1 pp. 112, 113] [C++NPv2 pp. 99, 100] (read again after the lecture, and later as needed) (optional: [POSA2, pp. 447-474]) (slides: in ppt format) |
27 |
Thread Specific Storage | [C++NPv1 pp. 130, 186, 187, Section 9.4] (optional: [POSA2, pp. 475-504, Chapters 6-8]) (slides: in ppt format) |
April | 1
Concurrency and Synchronization Pattern Language I |
(slides: in ppt format) |
3 |
Concurrency and Synchronization Pattern Language II |
(slides: in ppt format) |
8 |
Service Access and Configuration Patterns | (optional: [POSA2, pp. 43-45]) Component Configurator [C++NPv2 Chapters 2, 5] (optional: [POSA2, pp. 75-107]) (slides: in ppt format) |
10 | Lab 3 Teams declared Sunday 4/20/08 Due 5/4/08 11:59pm
Interceptor |
(optional: [POSA2, pp. 109-140]) (slides: in ppt format) |
15 |
Lab 3 Design Discussion |
(slides: in ppt format)
|
17 |
Extension Interface | (optional: [POSA2, pp. 141-174]) (slides: in ppt format) |
22 |
A Service Access and Configuration Pattern Language |
(slides: in ppt format) |
24 |
(slides: in ppt format) Take Home Final Exam handed out May 7
| Hand in completed exams to Andrea in the CSE Department Office, Bryan 509 or to Dr. Gill in his office, Bryan 506 | |||||
There will be 4 lab projects this semester. Labs should be turned in via e-mail to the cse532@cec.wustl.edu account, and will be graded and returned to you electronically as well. Each lab assigment will contain the procedure for turning in the lab. Labs will increase in length, value, and difficulty throughout the semester. The exact due date will be specified in each lab description.
Each lab will require a ``lab report''. Report format and length and
content requirements will be described in each lab assignment. The
actual report will be submitted via e-mail, as well, so it must go
into a file. An e-mail turn-in process (via make) that
submits your files for grading will be provided, though each
assignment will have a more detailed description of other acceptable
ways to e-mail your solution.
Labs will be performed in teams of 2 or 3: teams may be different for each lab assignment or may remain the same for all labs. Team members may choose one-another and post their chosen teams to the course forum according to the instructions in the lab assignments: people who do not identify a team by the designated cut-off will be assigned to teams arbitrarily.
Each team should submit its solution and lab report for each project. Labs submitted within 24 hours after the posted deadline will be accepted with a 10% penalty up front, and labs submitted between 24 and 48 hours after the posted deadline will be accepted with a 20% penalty up front. Labs submitted after that will not be graded except in extenuating circumstances.
You may discuss your lab projects with other students outside your team only during lecture or on the course forum. Discussion of lab projects within a team, is encouraged at any time. Each team must design and implement its own solution, and prepare its own report.
If you'd like to look at some coding standards, the guidelines that the ACE developers use is a good place to start. It's concise and very relevant to C++ coding activities both when using the CSE 532 ACE build and in other development contexts.
We'll use the required textbooks both for class material and as references. The lecture schedule contains references to revelant portions of the required texts. Please read each assigned section before the class meeting where it will be discussed.
Recommended text (will be available in the bookstore for purchase, and at the Olin Library reserve desk for 2 hour loan):
Other information sources:
gdb tutorial
The last grading component is an evaluation of your participation in the class, and an evaluation of your application of the tools and techniques discussed in class and labs. This component is separated out to:
| Labs | 55 percent Lab 0: 5 percent Lab 1: 10 percent Lab 2: 15 percent Lab 3: 25 percent Midterm exam |
15 percent |
Final exam |
25 percent |
Participation |
5 percent |
|
"Cheating is the willful misrepresentation of someone else's work as your own, and will not be tolerated in this course."
For this course, examples of cheating include but are not limited to: collaboration on an exam, using unapproved sources of information during an exam, or sharing of significant portions of code or designs between programming teams.
This is a very serious matter. Anyone found cheating will at a minimum receive a 0 for the assignment in question, or possibly an F for the course. Further action may be taken in extreme cases.
Furthermore, our policy is that we will make the final determination on what constitutes cheating. If you suspect that you may be entering an ambiguous situation, it is your responsibility to clarify it before we detect it: if in doubt, please ask.