====== Calendar ====== ===== January 4 ===== Herb Sutter and James Larus. [[http://dx.doi.org.ezproxy.library.yorku.ca/10.1145/1095408.1095421|Software and the Concurrency Revolution]]. //Queue//, 3(7):54-62, September 2005. Celeste Biever. {{private:biever.pdf|Chip revolution poses problems for programmers}}. //New Scientist//, 2594:26-27, March 2007. Bryan Cantrill and Jeff Bonwick. [[http://dx.doi.org.ezproxy.library.yorku.ca/10.1145/1400214.1400227|Real-world concurrency]]. //Communcations of the ACM//, 51(11):34-39, November 2008. ===== January 6 ===== Chapter 1 of Mordechai Ben-Ari. [[http://www.library.yorku.ca/eresolver/?id=1065597|Principles of Concurrent and Distributed Programming]]. Second edition. Addison-Wesley, Harlow, UK, 2006. ===== January 11 ===== A guest lecture by librarian John Dupuis 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.ezproxy.library.yorku.ca/10.1145/1284621.1284635|Why you can't cite Wikipedia in my class]]. //Communications of the ACM//, 50(9):15-17, September 2007. ===== January 13 ===== P.J. Courtois, F. Heymans and D.L. Parnas. [[http://dx.doi.org.ezproxy.library.yorku.ca/10.1145/362759.362813|Concurrent control with "readers" and "writers"]]. Communications of the ACM, 14(10): 667-668, October 1971. Edsger W. Dijkstra. [[http://www.cs.utexas.edu/users/EWD/ewd06xx/EWD625.PDF|Two starvation-free solutions of a general exclusion problem]]. EWD 625. ===== January 18 ===== No lecture and no office hours. ===== January 20 ===== No lecture and no office hours. ===== January 25 ===== No lecture and no office hours. ===== January 27 ===== No lecture and no office hours. ===== February 1 ===== A guest lecture by Susan Visser (Publishing Program Manager, IBM) will take place in the Computer Science and Engineering Building, room 3033. ===== February 3 ===== C.A.R. Hoare. [[http://dx.doi.org.ezproxy.library.yorku.ca/10.1145/355620.361161|Monitors: an operating system structuring concept]]. //Communications of the ACM//, 17(10):549--557, October 1974. Corrigenda * Add count := count - 1 to the first remove procedure on page 553. * Replace + with - in the release procedure on page 554. ===== February 8 ===== Presentations of first assignment in the Computer Science and Engineering Building, room 2002. ===== February 10 ===== C.A.R. Hoare. [[http://dx.doi.org.ezproxy.library.yorku.ca/10.1145/359576.359585|Communicating Sequential Processes]]. //Communications of the ACM//, 21(8):666-677, August 1978. ===== Additional reading material ===== Some sources (in alphabetical order) where you can find information about concurrent programming in Java: * Mordechai Ben-Ari. [[http://www.library.yorku.ca/eresolver/?id=1065597|Principles of Concurrent and Distributed Programming]]. Second edition. Addison-Wesley, Harlow, UK, 2006. * 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]]. * Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes and Doug Lea. [[http://proquest.safaribooksonline.com.ezproxy.library.yorku.ca/0321349601|Java Concurrency in Practice]]. Addison-Wesley, 2006. * James Gosling, Bill Joy, Guy L. Steele Jr. and Gilad Bracha. [[http://java.sun.com/docs/books/jls/|The Java Language Specification]]. Third edition. * Charles W. Kann. [[http://www.library.yorku.ca/eresolver/?id=1189412|Creating components: object oriented, concurrent, and distributed computing in Java]]. Auerbach, Boca Raton, FL, USA, 2004. * Douglas Lea. [[http://www.library.yorku.ca/eresolver/?id=1065434|Concurrent programming in Java : design principles and patterns]]. Second edition. Addison-Wesley, Reading, MA, USA, 2000. If you come across another source that may be useful, please email it to the instructor. ===== February 22 ===== Readers-writers problem in Java. ===== February 24 ===== Consumer-producer problem in Java. ===== February 26 ===== Lecture in room 3033 of the Computer Science and Engineering Building from 10:00 until 11:30. R. Kent Treiber. [[http://domino.research.ibm.com/library/cyberdig.nsf/papers/58319A2ED2B1078985257003004617EF/$File/rj5118.pdf|System programming: coping with parallelism]]. Report RJ 5118. IBM Almaden Research Center, San Jose, CA, USA. April 1986. ===== March 1 ===== Non-blocking stack in Java. ===== March 3 ===== [[http://www.cs.kent.ac.uk/projects/ofa/jcsp/|Communicating Sequential Processes for Java]] ===== March 8 ===== Presentations of second assignment in the Computer Science and Engineering Building, room 3033. ===== March 10 ===== Presentations of second assignment in the Computer Science and Engineering Building, room 2002. ===== March 15 ===== A guest lecture by Nastaran Shafiei on Java PathFinder will take place in the Computer Science and Engineering Building, room 2002. ===== March 17 ===== A guest lecture by Nastaran Shafiei on Java PathFinder will take place in the Computer Science and Engineering Building, room 2002. ===== March 22 ===== Introduction to model checking. ===== March 24 ===== Introduction to model checking. ===== Additional reading material ===== Chapter 3 of\\ Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes and Doug Lea. [[http://proquest.safaribooksonline.com.ezproxy.library.yorku.ca/0321349601|Java Concurrency in Practice]]. Addison-Wesley, 2006. ===== March 29 ===== Chapter 12 of\\ Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes and Doug Lea. [[http://proquest.safaribooksonline.com.ezproxy.library.yorku.ca/0321349601|Java Concurrency in Practice]]. Addison-Wesley, 2006. Presentation of third assignment. ===== March 31 ===== Presentations of third assignment.