Internet Learning System (A-Level)

The report for this has been published here. Make of it what you will. The program was developed and designed over several of the Computing lessons, and as many lunch times/break times/study periods as I could get into the main computer room at Sharnbrook. The report was developed a few weeks before the deadline, and necessitated one stay after school for extra time. The report was written in !EasyWriter, which had a save-as-HTML option. The only things that have been changed since submission, are a few formatting irregularities, the pictures may have been adjusted slightly, and the HTML was adjusted to fit in with the rest of the site layout. The program itself was developed on a RISC-OS 3.6 RISC-PC, which IIRC did have a PC 486 card installed, and also had about 1MB of VRAM. Which meant the screen performed somewhat better than some RISCOS 3.7 machines the school got given some time later. Heavy use was made of !Zap the text editor. Source code in incorporated within the report; I do not believe any changes were made since then. Documentation is also included, although the program was designed to be very easy-to-use.

Online Course Planner (University)


My final year project at the University of Warwick was intended to be a solution to the problems facing students at universities where they are faced with a bewildering array of course choices.


Early on in the project things appeared to be going slowly, until it was clear that I didn't possess enough knowledge about the Java Swing environment, and stupidly decided to plug that gap by using Forte, the integrated development environment for Java. After progressing this way for too long, it became clear that the program would not be ready for the presentation and would only have very superficial testing. It was supposed to have been written, tested and debugged by this stage, but I made a quick analysis of the problem, and proceeded to do the presentation, apart from the program demo; re-explaining the problem, and the design of the solution, and why I believed the code didn't work.


And I was wrong; and no amount of fiddling got the code working, although I had quite literally run out of time, and absolutely needed to complete the written report. Again, this would explain how the code didn't work, due (again) to problems with Forte and Swing. This was a slightly different problem as I presented during the presentation, although have confirmed that this was the real problem.

So what was this problem anyway?

As you ask, the sympotoms were some displays were working, but the main ones weren't. My first diagnosis was because Forte had allowed me to create them differently (JPanel vs JApplet), although now I know that made little to no difference. The real problem was that the main JApplet was using the AbsoluteLayout, which translates to null in the code. The simple forms were using a GridBagLayout, which reported the size of the Panel to the container fine. The AbsoluteLayout didn't. So, the main form was appearing correctly, it was just one pixel in size, which didn't show atall on the form. It being gray, and the pixel being gray. Because I effectively cheated, and used Forte without a thorough understanding of Swing, I wasn't able to fix this with any hope of getting it all working for the presentation or submission stages. If I had diagnosed the problem earlier, or even had enough spare time to play with, I could have redesigned the form to exploit one of the layouts which worked properly. Or might have been able to make the layout work in some other way, perhaps using my own layout.

So what happens now?

Well, after the submission date, I had lots of revision to do for my examinations, which should have been continuing throughout the project phase, but didn't, so quickly dropped the project to revise. Afterwards, I was sufficiently disheartened by the whole affair, to decide not to bother picking the project back up. Since submission, no code has changed; the only project-related things I have bothered to do are changes to this page.

When I get around to it, I will probably release the project, design documentation, the reports and the code here. As an example of how not to let final year projects slip away. If anyone is interested, I got 50% for this project. When I do release the project though, it will be on the understanding that anyone who gets it may not steal it for their own project, and if it is to be used, perhaps as a springboard for another project, one must explain clearly the source of the material to the project supervisor and assessors, and give due credit where it is due.

Iains Page