====== Calendar ====== ===== September 6 ===== No lecture. ===== September 11 ===== Herb Sutter and James Larus. [[http://dx.doi.org/10.1145/1095408.1095421|Software and the Concurrency Revolution]]. //Queue//, 3(7):54-62, September 2005. Celeste Biever. Chip revolution poses problems for programmers. //New Scientist//, 2594:26-27, March 2007. ===== September 13 ===== No lecture. ===== September 18 ===== Nicholas Carriero and David Gelernter. [[http://dx.dio.org/|Linda in Context]]. //Communications of the ACM//, 32(4):444-458, April 1989. Linda is not a programming language but a framework. Implementations of this framework include C-Linda and Linda-Fortran. Recent work on Java within the Linda context include JavaSpaces, TSpaces and JParadise. ===== September 20 ===== The lecture will take place in the Steacie Building, room 021. Ask at the library reference desk for room 021 if you cannot find it. Leah Graham and Panagiotis Takis Metaxas. [[http://dx.doi.org/10.1145/769800.769804|Of course it's true; I saw it on the Internet!]] //Communications of the ACM//, 46(5):70-75, May 2003. Neil L. Waters. [[http://dx.doi.org/10.1145/1284621.1284635|Why you can't cite Wikipedia in my class]]. //Communications of the ACM//, 50(9):15-17, September 2007. Some information about literature search can be found [[literature|here]]. ===== September 25 ===== An implementation of a bounded buffer in C-Linda can be found [[C-linda|here]]. ===== September 27 ===== John H. Reppy. [[http://dx.doi.org/10.1145/113445.113470|CML: A Higher-order Concurrent Language]]. In //Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation//, Toronto, Canada, June 1991. //SIGPLAN Notices//, 26(6):293-305, June 1991. ===== October 2 ===== Mary Campione, Kathy Walrath and Alison Huml. The Java Tutorial. Lesson: [[http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html|Threads: Doing Two or More Tasks At Once]]. An implementation of a bounded buffer in Java can be found [[buffer-java|here]]. ===== October 4 ===== P.J. Courtois, F. Heymans and D.L. Parnas. [[http://dx.doi.org/10.1145/362759.362813|Concurrent control with "readers" and "writers"]]. //Communications of the ACM//, 14(10): 667-668, October 1971. A solution to the readers-writers problem in Java can be found [[readers-writers|here]]. ===== October 9 ===== [[presentations:start|Presentations]] ===== October 11 ===== [[presentations:start|Presentations]] ===== October 16 ===== [[presentations:start|Presentations]] ===== October 18 ===== [[presentations:start|Presentations]] ===== October 23 ===== [[presentations:start|Presentations]] The sleeping barber problem can be found in Section 4.2 of\\ E.W. Dijkstra. [[http://www.cs.utexas.edu/users/EWD/ewd01xx/EWD123.PDF|Cooperating Sequential Processes]]. EWD 123. 1968. A solution to the sleeping barber problem in Java can be found [[sleeping-barber|here]] ===== October 25 ===== To implement non-blocking algorithms in Java, the [[http://java.sun.com/javase/6/docs/api/java/util/concurrent/atomic/package-summary.html|java.util.concurrent.atomic]] package may be useful. Several implementations of a Stack can be found [[stack|here]]. ===== October 30 ===== John A. Trono. [[http://dx.doi.org/10.1145/187387.187391|A new exercise in concurrency]]. //SIGCSE Bulletin//, 26(3):8-10, September 1994. John A. Trono. [[http://www.cse.yorku.ca/course_archive/2006-07/W/6490A/trono.pdf|Corrigendum to "A new exercise in concurrency"]]. //SIGCSE Bulletin//, 26(4):63, December 1994. Mordechai Ben-Ari. [[http://stwww.weizmann.ac.il/g-cs/benari/articles/santa-claus-problem.pdf|How to Solve the Santa Claus Problem]]. //Concurrency: Practice & Experience//, 10(6):485-496, May 1998. ===== November 1 ===== Edmund M. Clarke and Jeannette M. Wing. [[http://dx.doi.org/10.1145/242223.242257|Formal methods: state of the art and future directions]]. //ACM Computing Surveys//, 28(4):626-643, December 1996. Mats P.E. Heimdahl and Constance L. Heitmeyer. [[http://dx.doi.org/10.1109/WIFT.1998.766298|Formal methods for developing high assurance computer systems: working group report]]. In //Proceedings of the 2nd IEEE Workshop Industrial Strength Formal Specification Techniques//, pages 60-64, Boca Raton, FL , USA, October 1998. IEEE. An answer to the question //Why do we need software verification tools?// can be found [[verification|here]]. ===== November 6 ===== [[presentations:start|Presentations]] ===== November 8 ===== Willem Visser, Klaus Havelund, Guillaume Brat, SeungJoon Park and Flavio Lerda. [[http://dx.doi.org/10.1023/A:1022920129859|Model Checking Programs]]. //Automated Software Engineering//, 10(2): 203-232, April 2003. More information about Java PathFinder can be found [[http://javapathfinder.sourceforge.net|here]]. ===== November 13 ===== [[presentations:start|Presentations]] ===== November 15 ===== [[presentations:start|Presentations]] ===== November 20 ===== [[presentations:start|Presentations]] ===== November 22 ===== More information about JPF can be found [[jpf:start|here]]. Students are encouraged to add information. ===== November 27 ===== [[presentations:start|Presentations]] ===== November 29 ===== [[presentations:start|Presentations]] ===== December 4 ===== [[presentations:start|Presentations]] ===== December 6 ===== [[presentations:start|Presentations]]