Links page for Advanced Program Design in Java
This page will be used to collect further links for the module
Advanced Program Design (local link
taught by Matthew Huntbach at Queen Mary, University
See also my general page of links on Java and programming in general,
Useful and interesting links for new Java programmers
University Courses Web Sites
These are links to web sites for courses in other universities across
the world which seem to have similar aims to our Advanced Program Design,
and which have worthwhile notes and other material available through the site.
Daniel Jackson and Srinivas Devadas, MIT
(this is the version MIT have released as part of their "Open Courseware"
initiative, a more recent course is here)
Rob Miller, MIT
Michael Hicks, University of Maryland
Nelson Padua-Perez and Bill Pugh, University of Maryland
David Evans, University of Virginia
Paul Ammann, George Mason University
Ahmad Esmaili, Stony Brook University
Bob Tarr, University of Maryland Baltimore County
Murray Wood, University of Strathclyde
Robert Duvall, Duke University
Bertrand Meyer and Manuel Oriol, ETH Zurich
David Leberknight and Ron LeMaster, University of Colorado at Boulder
Nick Parlante, Stanford University
Debbie Richards, MacQuarie University, Australia
Oscar Nierstrasz, University of Berne
Morris Lancaster, George Washington University, Washington DC
David Stotts, University of North Carolina
Roger Whitney, San Diego State University
Mike Spivey, University of Oxford
David Whitlock, Portland State University
Mark Kampe, Harvey Mudd College
Paul Carter and Meghan Allen, University of British Columbia
Riccardo Pucella, Northeastern University, Boston MA
Assaf Kfoury, Boston University
Dave Elliman, University of Nottingham
Charlie Sawyer, Harvard University
- Alan Fekete, University of Sydney
- Robert "Corky" Cartwright, Rice University, Houston, Texas
These are links to web sites for books relevant to this course. In some
cases the whole book is available on-line, in others it's just the
standard publisher's/author's site for a book you would have to buy.
Programming blogs and personal sites
There are a large number of programming blogs, or sites which are essentially
one person's musings on programming. I will put here links to
those which are particularly influential, or that I have found useful
or interesting. In some cases the blog forms part of a more comprehensive
site such as the blogger's company site, so I have indicated where
that is the case. In other cases, the blog also has its own name, whcih
I have given.
Any other interesting or relevant links get put here, not in any particular
order. Personal web pages/blogs are now separated out and put above.
The Most Important Software Innovations by
David A. Wheeler:
a good summary of the historical development of programming.
Christopher Alexander: An Introduction for Object-Oriented Designers
by Doug Lea:
an early paper, showing how the idea of software design patterns
originated from related idea in architecture and town-planning.
- Why a Duck?
by John Brewer, under his consulting practice
a short paper which introduces the basic ideas of polymorphism and design
patterns more succintly than anything else I've seen.
- Big Ball of Mud
by Brian Foote and
Joseph Yoder: a much circulated
paper which discusses why in practice commercial software is often
- Extreme Programming:
the movement in software engineering which emphasises quick implementation,
testing, and revision from user feedback over the more traditional
full scale design before implementation.
- Refactoring Home Page
by Martin Fowler: seen as
an important innovations in software engineering, a disciplined approach
to changing software without altering its external behaviour.
- Object Mentor
"Industry experts in software best practices" with a particular interest in
agile principles and practices
Essential Skills for Agile Development An online book about
programming skills associated with "Agile Development".
- Wirfs-Brock Associates
"Enabling teams and individuals to specify, design and deliver software for
a complex world", with a strong emphasis design rather than coding
Agile Modeling "A practice-based methodology for effective modeling and
documentation of software-based systems" from
Scott W. Ambler
- Object Orientation Tips
Contains "useful and interesting posts from other mailing lists, newsgroups
and web forums".
Java Design Patterns Resource Center from (love them or loathe them)
Java Practices Short summaries, with examples, of good practices
in Java programming.
iturls The English version of a major Chinese site for IT links.
TeachJava2005 resources and
for a week-long workshop on Java.
ObjectiveView "The Journal for Professional Software Developers".
SWEBOK The Software Engineering Body of Knowledge. An attempt to
summarise generally accepted knowledge on software engineering
organised by the IEEE Computer Society's
- Code Complete An influential book on software construction
- Design Patterns, Antipatterns and Refactoring
Does what it says - basic coverage of these three things.
Presentations and papers on aspects of software engineering, with an
emphasis on Service Oriented Architecture
- Software Quotes
Quotations from the world of programming and software development
- Lambda the Ultimate
A discussion site on programming languages
Last modified: 10 December 2013