How do we do it? Why do I do it this way?

Instructional Design

A book shop, a source for design ideas.

There are two distinct aspects in the instructional design of this module (and probably of any module if it comes to that). Some elements of the design are set down in the module syllabus or are otherwise enshrined in the design of the MSc programmes, and therefore cannot be altered. There is more flexibility with the rest of the design, which is rather left up to the module leader.

The main issue that is pre-determined is that the students taking PRF will learn Java. I will not dwell on this. More interestingly, the route whereby this is to be achieved is left flexible, and up to the module leader.

"Programming Fundamentals" (hereafter "PRF") is based loosely on a previous incarnation of the module taken by the undergraduates in their first year, although the pace at Masters level is obviously rather faster. The first four weeks or so cover the basics of programming, using Python. After this, the language moves to Java and the rest of the module covers simple applications of object-orientation and their implementation in Java. A side effect of the use of two languages is that it is possible to consider some basic issues in programming language design.

Thus, the overall objective of the module (to expose the students to Java) is met, without the hazards of using Java from the start. A fortunate side effect is that they will also learn to use a different language, and a language which is more better suited than Java for all sorts of interesting applications.

The approach has to feature objects and classes early on, as the follow-on module, "Software Engineering" is a fairly traditional software engineering module, with the emphasis firmly on object-oriented methods and the "Unified Process". The key aim of PRF is to prepare students for this module.

Since the module starts with Python, the approach is not "objects first" in the sense that there is no need to use Python objects initially. Nor is it really "objects last". Perhaps the best description would be "objects soon enough". The students will have seen (and experimented with) objects in Python before they meet Java.

The main factor that has driven the design of the course for this year has not actually been the content. With a class size in single figures, there seems very little point in presenting anything that might resemble a formal lecture. The main "instruction" therefore takes the form of what would probably be called "tutorials", backed with supervised laboratory sessions.

As I think about it, it seems to me that this design really has been driven mainly by the size of the class, and that I couldn't really comprehend giving lectures to a group of 5. I suspect that if the class size was 200 I would be giving lectures. I would be far from convinced that these lectures would be of any use, of course, but I would know that the students would demand them and would complain if I didn't provide them.

Artefact

The size of the PRF class list is the best evidence for why it was designed this way.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.