| Professor: | Chris Gill
|
|
| Office hours: Jolley 514 (by appointment) | ||
| Teaching Assistant: | Justin Wilson
|
|
| Office hours: Jolley 515 (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 or teaching assistant: instead, please post for all to see, consider, and respond.
Reading materials will be suggested for many of the topics. It is to your advantage to go over the readings prior to class time, and to ask questions about anything that may be unclear. Supplemental resources including web materials and additional books that may be helpful will also be suggested.
| August 31 |
[slides: in ppt format] |
|
| September 5 |
Labor Day Holiday (no school)
| |
| 7 studio exercises |
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] |
|
| 12 studio exercises |
Intro to Generic Programming in C++ (optional: Wikipedia article on generic programming) [slides: in ppt format] Algorithms and Ranges (optional: SGI's Introduction to the Standard Template Library) (optional: Wikipedia article on the Standard Template Library) [slides: in ppt format] | |
| 14 studio exercises Lab 0 Assigned Teams Declared by 11:59pm Sunday 9/18/11 Solutions Due by 11:59pm Friday 9/30/11 |
Iterators [slides: in ppt format] |
|
| 19 Guest Lecturer: Justin Wilson studio exercises |
Function Objects [slides: in ppt format] |
|
| 21 studio exercises | Containers [slides: in ppt formats) | |
| 26 studio exercises |
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] |
|
| 28 studio exercises Lab 1 Assigned Teams Declared by 11:59pm Sunday 10/2/11 Solutions Due by 11:59pm Friday 10/21/11 |
Reactor [C++NPv1 Chapter 7] [C++NPv2 Chapters 3, 4] (optional: [POSA2, 179-214]) (optional: APG Chapter 7) [slides: in ppt format] | |
| October 3 studio exercises |
Acceptor/Connector [C++NPv2 Chapter 7] (optional: [POSA2, pp. 285-322]) (optional: APG Chapter 7.6) [slides: in ppt format] |
|
| 5 optional enrichment exercises |
Proactor [C++NPv2 Chapter 8] (optional: [POSA2, 215-260]) (optional: APG Chapter 8) [slides: in ppt format] |
|
| 10 | An Event Handling Pattern Language [slides: in ppt format] Lab 1 Design Discussion [slides: in ppt format] | |
| 12 studio exercises |
Synchronization Patterns [C++NPv1 Chapter 10] (optional: [POSA2, Chapter 4]) (optional: APG Chapters 12.2, 12.3, 14.1, and 14.2) [slides: in ppt and format] | |
| 17 |
||
| 19 Lab 2 Assigned Teams Declared by 11:59pm Sunday 10/23/11 Solutions Due by 11:59pm Friday 11/18/11 Please note new deadline! |
[slides: in ppt format] |
|
| 24 |
(during lecture/studio period, in Bryan 509C) open book, open notes (hard copy only, no electronics) |
|
| 26 |
| |
| 31 studio exercises |
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] | |
| November 2 studio exercises |
Active Object [C++NPv2 Chapter 6] (optional: [POSA2, pp. 369-398]) (optional: APG Chapter 15) [slides: in ppt format] Thread-Specific Storage [C++NPv1 pp. 130, 186, 187, Section 9.4] (optional: [POSA2, pp. 475-504, Chapters 6-8]) (optional: APG Chapter 14.3) [slides: in ppt format] |
|
| 7 studio exercises |
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]) (optional: APG Chapter 16.2) [slides: in ppt format] | |
| 9 Guest Lecturer: Justin Wilson |
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]) (optional: APG Chapter 16.3) [slides: in ppt format] | |
| 14 |
Concurrency and Synchronization Pattern Language I [slides: in ppt format] |
|
| 16 Lab 3 Assigned Teams Declared by 11:59pm Sunday 11/20/11 Solutions Due by 11:59pm Friday 12/16/11 |
Concurrency and Synchronization Pattern Language II [slides: in ppt format] |
|
| 21 |
Lab 3 Design Discussion [slides: in ppt format] |
|
| 23 |
Thanksgiving Holiday (no school)
| |
| 28 Guest Lecturer: Justin Wilson studio exercises |
Service Access and Configuration Patterns (optional: [POSA2, pp. 43-45]) Component Configurator [C++NPv2 Chapters 2, 5] (optional: [POSA2, pp. 75-107]) (optional: APG Chapter 19) [slides: in ppt format] | |
| 30 Guest Lecturer: Justin Wilson studio exercises |
Interceptor (optional: [POSA2, pp. 109-140]) [slides: in ppt format] |
|
| December 5 |
Extension Interface (optional: [POSA2, pp. 141-174]) [slides: in ppt format] | |
| 7 |
A Service Access and Configuration Pattern Language [slides: in ppt format] |
|
| 12 |
[slides: in ppt format] Take Home Final Exam handed out |
|
| 19 | Take Home Final Exam Due by 4pm on Monday December 19 Hand in completed exams to Jayme in the CSE Department Office, Bryan 509 (if she's not there please put it in Dr. Gill's CSE Department Office mailbox) or hand in to Dr. Gill in his office, Jolley 514 |
|
There will be 4 lab projects this semester. Labs should be turned in via e-mail to the cse532@seas.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 reasonably concise and very relevant to C++ coding activities both when using the CSE 532 ACE builds for Linux or Windows, and in other development contexts.
We'll use the required textbooks both for class material and as references. The lecture schedule will be augmented with references to revelant portions of the required texts. Please read each assigned section before the class meeting where it will be discussed.
Optional texts:
If you're looking to build your library (in order of relevance):
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.