|Questions about this course?
||Questions about applications?
||Bioinformatics Education Online
|The University of Manchester|
|John Sargeant (firstname.lastname@example.org)|
To ensure that students have a thorough grasp of the basics of object-oriented software development using Java 1.5. The emphasis is on fundamental principles and their application in practice. Language constructs and library classes are introduced as embodiments or examples of the principles and best practice is emphasised throughout.
1. Object-oriented basicsWhat is software development?
What is Java?
Mental models – how we deal with the world
Software objects – mental models on a computer
Creating objects and sending messages
A complete simple class
Importance of documentation - javadoc
(Optional) Other ways of programming – and why OO is better!
2. Imperative programmingNuts and bolts (scalar values and expressions)
Handling text (Strings and the magic +)
Saying things and doing things (declarations and statements)
Making choices (if and switch)
Repeated computation (while and for)
The simplest collection (arrays)
How fast does it go? (A first look at complexity)
Dividing up the job (procedural abstraction, parameter passing)
3. Classes, responsibilities and collaborationsAlternative implementations (encapsulation)
Alternative interfaces (overloading)
When are two objects the same (object references, equality vs. identity)
Assigning responsibilities to classes (which methods go where, unit testing)
Collaborating classes to solve problems (putting it all together, system testing)
What if there’s no object to send a message to (static things)
Larger-scale organisation (packages)
4. InheritanceMental models revisited – is-a-kind-of hierarchies
Abstract classes (representing common abstractions)
Extending classes (concrete sub-concepts)
The way objects understand messages (static checking, dynamic binding)
What have we inherited? (inheritance semantics)
When to use inheritance (is-a test, evils of implementation inheritance)
Interfaces (in the Java-specific sense)
5. Exception handlingWhat if unexpected things happen at runtime?
Basic constructs - try.. catch.. finally, exception propagation
Throwing exceptions and declaring them (throw and throws)
Standard exception types (Throwables, Errors, Runtime Exceptions, checked exceptions)
Contracts (informal notion)
6. Collections and algorithmsOverview: collection interfaces and implementations
Sample (1.5) classes (Lists and Maps)
Basic algorithms (e.g. sorting) and their complexity
Recursion and tree structures
7. Building simple GUIsPlatform independent graphics and GUIs: AWT and Swing
Building basic GUIs
What’s an applet – and what’s it good for?
8. Stream and file I/OStreams – System.out revealed
Options for storing data XML vs serialization vs. relational DB
|Distance learning in computational biology||Courses in computational biology|
Updated 18 March 2011 by Heather Vincent