Howler is a hypertextual, partly-collaborative Computer Assisted Language Learning system. It pervasively tracks user interaction with the system and uses this individual and group data to cluster similar learners by their behaviour. These clusters are then used to automatically generate tutor-style recommendations to resources, and to alterations in an individual's learning styles. Focusing on (preferably immersed) beginning learners of Mandarin, it presents an electronic dictionary interface to the user for basic tasks, and a reflective interface that allows them to explore the network of associations formed between items as they and other users learn.
See Howler project for more information.
Complete beginners introduction to Java programming. Programming language concepts, the Java language, libraries, user-interfaces in Swing, event-driven programming,, databases using JDBC, file and network access, file-formats, etc. Whole academic year (Semesters 1 & 2).
See the shared drive for resources and instruction for how to log on to our linux server.
Java 1.5 / Java 1.6 API reference (new Oracle links). There are Chinese translations of this documentation available but I would strongly suggest you don't use them as you need to build experience using English technical terminology. If you can do something but are unable to discuss it in English it kind of destroys the point of attending UNNC!
Complete beginners introduction to the concepts of algorithms and programs. This module uses pen-and-paper to write and run algorithms in seminars for the first 7 weeks, then switches to the Cooker visual programming language in labs for the remaining 3 weeks. Datatypes, control flow, functions, recursion, lists, trees, graphs, problem solving, divide & conquer, debugging, tracing, searching and sorting. Single semester.
See the shared driver for resources under "First Year Program/IPA".
You should only use the version of Cooker installed on the lab network for assignments! That version is the one that has been tested and we have decided to use for the whole semester. Other versions on this page may be unstable or contain different features that may not work with the installed version. Your assignments will be marked using the version installed in the labs. We will not accept "It works at home" as an excuse, even if you bring your laptop in and show us.
I am no longer involved in the SQL and programming part of this module. Please contact the current module convenor with any questions.
Actually connecting and using a database via JDBC is also covered in PRG but the SQL needed to write the queries is only taught in DBS. I'm happy to answer general JDBC questions if they are in the scope of PRG but in general you should ask the module which issued the piece of work you are asking about.
PostgreSQL Documentation.
PostgreSQL JDBC driver homepage.
HSQLDB - HyperSQL Database, a fully featured SQL database that can run inside your program without users needing to install it separately
Howler is a hypertextual, partly-collaborative Computer Assisted Language Learning system and forms the basis of my PhD work.
Visual programming language targeted at beginners. The visual approach was chosen to separate the semantic and syntactic learning phases of programming. Programs are built by adding blocks which represent expressions or statements inside each other. Syntax mistakes are not possible as only valid types of blocks will be accepted by the containing block. The language is intended to be very close to non-OO Java constructs and is easily expanded via block panels.
The program contains an interpreter for the programs which allows step-by-step execution, stack traces, variable watching, and aborting program execution. The editor supports zooming in and out of the program, collapsing individual functions, and printing. A pervasive tooltip system is combined with a dynamic help system to allow local instructors to trivially augment it with class material.
The file format is XML (compressed by default) which contains checksums to detect text corruption (eg, via email) and there is a tool to assist in plagiarism detection
Coming soon: project homepage, download, GIT repo, and documentation.
Chinese/Classless Language Learning Environment. This was written as I was studying at Fudan University as a tool to help me learn. Contains a user-entered dictionary of words which allows quick, complex querying. It also has a flashcard drilling/quizing interface.
This formed the beginning of the Howler project and my PhD.
Taenarum was a distributed, collaborative, real-time programming development environment. It provided a Smalltalk-style code-browser to source code without having to have it in a particular format. It would read and parse standard source code as required so that it could be used by individual developers without having an effect on anyone else in the project (this is compared to most IDEs then, and now, which litter code with special files and file structures). Any edit actions that a user performed would be transmitted live to other Taenarum users on the same server so they could see a virtual "developing version" of the code as it happened. It had language plugins for C, Java, and Dylan, in various states of completion, CVS support, and a Java evaluation playground (via a third party interpreter).
Development slowed down as I got busy with other things and changed the way I worked. Collaborative editing was starting to be added to popular text editors which have better support than just me. Finally abandoned when I accidently left the source code in the UK when moving to live in China.
Minerva was an attempt to take high-resolution satellite images, such as those provided by the USGS, and automatically regenerate a 3D enviroment from them. The idea was that this would rapidly accelerate the first stage of content creation in open-world sandbox games which were popular at the time. Since others had better knowledge of image processing than me (ie, any), I decided to explore different approaches to identifying objects in the images.
This eventually got bogged down for three reasons:
Dylan and OpenGL
Senior project at University of Glasgow. GCSpy is a generic garbage collection visualisation framework. This project integrated it into the BDW conservative GC. As this was the first conservative GC supported, some changed to GCspy were required. Overall, the project was a success. It was successfully integrated and collector behaviour could be easily observed.
Hand and machine written C, Java, assembly language, Dylan, inter-language binding definitions. [report][presentation]
A custom-written, C++ remote debugger for an in-house Domain Specific Language. Written in 3 weeks at the end of a work placement with BT, working on the new emergency services call handler system. Has limited live code replacement ability. Previous debug ability was a 1-line text gadget with the currently running line of code, or breakpointing inside the DSL interpreter. Project was just about to be moved from development to maintenance with an outsourced team. This debugger allowed them to debug problems at the business logic level, where almost all the bugs lay, rather than the C++ implementation code.
Email: paul@scotek.org , stxpd5@nottingham.ac.uk , paul.dempster@nottingham.edu.cn , dempstep@dcs.gla.ac.uk (old addresses for search engines)
Mail can be directed via: Learning Sciences Research Institute, Exchange Building, University of Nottingham, Jubilee Campus, Wollaton Road, Nottingham, NG8 1BB, UK.