COMP 402: Production Programming← (none) → |
Home — Spring 2014 | | | Information | | | Resources | | | DrJava | | | SourceForge | | |
Please send all questions and comments to: corky.cartwright at gmail dot com (replace the "at" with "@" and the "dot" with "." — this was necessary to reduce spam).
TBA
Last Revised Wednesday, 01-Oct-2014 15:48:23 CDT
Documents Discussed in Class
- JavaPLT Coding Standards
- FindBugs Results for DrJava
- Clover Results for DrJava
- Thread Synchronization Policies in DrJava (doc), (pdf)
Recommended Texts
The first book is the primary text for the course; we recommend that you buy it. The second text is very accessible and entertaining (and cheap if purchased used!) but much of the content is availalble elsewhere. The third text is an important reference.
- Andrew Hunt and David Thomas. The Pragmatic Programmer: From Journeyman to Master. 1999, ISBN-13: 978-0201616224 ISBN-10: 020161622X.
- Ron Jeffries, Ann Anderson, and Chet Hendrickson. Extreme Programming Installed, Addison-Wesley, 2001.
- Brian Goetz, et al. Java Concurrency in Practice, Addison-Wesley, 2006.
References
- Corky Cartwright. Notes on Object-Oriented Program Design.
- Doug Lea. Concurrent Programming in Java: Design Principles and Patterns (2nd Edition), Addision-Wesley, 1999. (Online Book Supplement)
- Eric Allen. Bug Patterns in Java, APress, 2002.
- Martin Folwer. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999.
Other Relevant Documents
- The Java Tutorial on Concurrency.
- The Java Language Specification, Third Edition (pdf)
- Java 8.0 API Specification
- JDK 8 tools documentation
- Scala 2.9.1 API Specification
- Learning Scala webpage
Historical References
- Edsger Dijkstra, Go To Statement Considered Harmful.
- Robert Floyd, Assigning Meaning to Programs.
- C.A.R. Hoare, An Axiomatic Basis for Computer Programming.
- C.A.R. Hoare, Structured Programming.
- Per Brinch Hansen, The Architecture of Concurrent Programs.
Topics Mentioned in Lectures
- Hoare Logic. See the reference to "An Axiomatic Basis for Computer Programming" above and the Wikipedia article on Hoare logic.
- Gentzen's Proof of the Consistency of First-order Arithmetic. See the Wikipedia article on Gentzen's consistency proof.
- Structural vs nominal object typing. See the web article Nominative and Structural Typing. This article contains a minor error in comparing nominative (nominal) and structural typing. The nominal object model is strictly richer than the structural one. As a result, it is easy to define a local structural type over the universe of nominal objects. Such a type simply ignores the name of the class attached to a nominal type and only specifies the signatures (names and types) of the class members. Note that the typing of members are unchanged (still nominal), but all of these types can be converted to locally structural form as well yielding a purely structural type.
Last Revised Wednesday, 01-Oct-2014 15:48:23 CDT — Copyright © 2008-2010 Mathias Ricken ©, 2012-2014 Robert Cartwright