Listed here are the modules I currently, and have previously, demonstrated for (in reverse chronological order), along with some advice and links. If you're a student, have coursework problems and have exhausted the usual sources of help, I'll be happy to help you, but please Email me first, rather than calling unannounced.
2008-09
Semester 2
COMP317 Semantics of Programming Languages
A challenging module that describes some of the available techniques for defining, analysing and verifying the meaning of programs. Theoretical in nature yet providing some practical aspects, lecture attendance is vital for this module as each topic clearly follows from the previous one and the majority of notes are taken in lectures.
Tutorials take place on Thursdays at 11:00. Please attempt the tutorial problems before the tutorial, I will place some of my solutions here after the corresponding tutorial:
- Tutorial 2 - Denotational Semantics Examples
- Tutorial 3 - Introductory OBJ Examples
- Tutorial 4 - OBJ, Satisfaction of Equations
- Fourth Tutorial Sheet - OBJ, Term rewriting
- Tutorial 6 - Verification exercises , maxProof.obj
COMP320 Software Development Tools
See below.
Semester 1
COMP101 Introduction to Programming in Java
New this year is a busy discussion forum on the comp101 module within Vital. If you don't read it you could be missing vital information — better still, participate. See also below.
COMP213 Advanced Object-Oriented Programming
This year the formal specification language Maude has been introduced. This is conceptually different from languages structured like Java but once you realise that everything is a function and hence returns a value things will fall into place. Until then, keep practising. See also below.
2007-08
Semester 2
COMP204 Computer Systems and Their Implementation
An interesting module containing a variety of practical solutions to many fundamental computing problems, including concurrent programming and compiler construction.
Semester 1
COMP101 Introduction to Programming in Java
An essential reference for this module is the Official documentation, especially the API. Each assignment is a variation on a theme discussed in your lectures. All the lecture notes are available on vital and include essential code examples.
COMP213 Advanced Object-Oriented Programming
In this module students must implement truly object-oriented designs that comprise many classes. I recommend that students that don't already do so, consider using an IDE with good Java support, such as Eclipse or NetBeans. The ability of Eclipse to identify errors will be very useful in this module!
2006-07
Semester 2
COMP102 Introduction to Databases
Being fluent in SQL isn't the only essential skill for data storage and management. There aren't any on-line references that compare to the recommended texts in this module - get yourself to the library.
COMP320 Software Development Tools
If software development is your intended career then you'll need to be familiar with the tools of the trade. This module teaches two of the most versatile tools; Ant and Eclipse. Both of which are platform independent, open source and can be used to develop systems using many languages and technologies. I find Ant an invaluable tool for everything from compiling Java programs to deploying this web site. If graphical development environments are your thing then you'll struggle to find a more comprehensive set of features than is available in Eclipse. Like the Java API, the Ant on-line manual is invaluable. The other tutor is Richard.
Semester 1
COMP101 Introduction to Programming in Java
An essential reference for this module is the Official documentation, especially the API. Frans Coenen has compiled a comprehensive tutorial, with many code examples. If you've exhausted the usual sources of help and still have problems, I'll be happy to help you, but Email me first, rather than calling unannounced.
2003-2006
During this period I was a full-time lecturer in Further Education, designing and delivering a variety of computer science and IT modules across a range of futher and higher education courses. Including but limited to; Object-oriented Programming, Expert Systems, Structured Programming (with C++), Data structures and algorithms, Software Applications.