Useful core language links
Here are some resources on Java that we've drawn together from the course materials and elsewhere.
Core language elements
Introduction to binary counting
Full list of primitive data types
Code Conventions for the Java Programming Language
Reading documentation comments
Writing documentation comments
Here's a quick link to the API Docs
More advanced language elements
Introduction to the Collections Framework
Looping through collection-style objects
Cloning objects (copying complex objects).
Java Native Interface (docs) (how to connect to non-java code)
RXTX (how to connect to hardware using serial ports, e.g. scientific equipment)
Java2D (better image and drawing manipulation).
JavaFX (better GUIs).
Java Webstart (a way of getting your programs to run over the web)
JavaBeans (a way of allowing other people to develop programs)
Servlets (programs to produce web pages)
JavaServer Pages (programs to embed data in webpages)
bitshifting by Kushal Paudyal
Image streams and filters chapter from O'Reilly
Helpful for developers
Open Source Initiative website
Software development processes
Commonly used data formats: HTML, XML, and JSON
(see w3schools for tutorials)
UML
The best introductions are these articles by Stephen Palmer:
A Picture Can Save a Thousand Words: UML Class Diagrams and Java
More Symbols, More Diagrams, More UML: Beyond Class and Interaction Diagrams
Getting Dynamic: Java and UML Interaction Diagrams
Just Typical: UML Stereotypes and Class Archetypes
You might also like to check out...
Rational Software's UML resource page
The best book on UML is:
UML Distilled,
Martin Fowler and Kendall Scott (2003),
Addison Wesley; ISBN: 0321193687 (~£24)
Although not specifically a Java book, this also contains a lot of good advice about object orientated programming.
Good UML software includes:
Dia: Basic looking, but good for a wide variety of diagrams.
Violet: Simple but good UML editor.
Argo: Complex but highly featured editor.
The user experience
Classic paper on how users learn and use software:
Carroll, J. M., & Rosson, M. B. (1987).
The paradox of the active user (pdf). In J.M. Carroll (Ed.), Interfacing Thought: Cognitive Aspects of Human-Computer Interaction. Cambridge, Mass: MIT Press (pp. 80-111).
Example paper on designing for mouse-driven GUIs:
Berkun, S. (2000) Fitts's UI Law Applied to the Web Microsoft Research.
IBM Design : Site with details of good design policy and testing usability User design consultation processes at IBM.
Groups dealing with Human-Computer Interaction research at Microsoft can be found on their research groups page. See also these publications.
Apple's OS X Human Interface Guidelines and iOS Human Interface Guidelines.
Google's Android design advice.
Smashing Magazine: Web and App design.
Ask Tog: User interface design site.
Ignore the Code: Lukas Mathis' interaction design blog.
Human-Computer Interaction Resources.