The delivery method has been honed over the years (mainly by reducing the amount taught), through experience of teaching our students and observing what works.
Delivery mode
My mode of delivery is partly influenced by accepting the status quo - when I joined, the norm was one hour of lecturing immediately followed by two hours in the labs per week. This works well, in that a concept or technique can be explained in the lecture and the students can immediately practice it. The lectures and practical work are closely linked. Lectures are an opportunity to explain concepts, to demonstrate programs and raise awareness of common problems observed in the labs. They are also a forum for discussing issues not directly concerned with developing code - for example, the programming process; design approaches; good programming style. Some of this discussion may be usefully carried out in a tutorial setting and future opportunity for this is being explored.
The lecture notes and examples are available from a server. There is also a web-site that provides access to the teaching materials, to the development environment and to useful links, at http://cmedia.glos.ac.uk/gbs/co102/.
Programming Development Environment
We believe that an elaborate programming development environment can interfere with understanding of what is the programming language and what is the development environment. The first few lab sessions can be difficult when trying to help people come to terms with the development environment as well as the programming language. However, we wanted more support than that provided by Notepad. A colleague (Jon Wise) developed a very simple environment in Java called goJava. This can automatically compile programs (by default in the first lab session) and just has a button to run the program. It has syntax highlighting and displays one error message at a time. It saves a history of all the previously compiled versions of the code and it is possible to restore to one of them. Cut and paste are possible using the control keys but it provides the minimum of facilities and can only display one file (all that is needed in semester 1). The first lab session has run smoothly ever since we introduced this environment. Confident programmers expect a few more facilities but most of our students are perfectly happy with it.
We graduate to using jEdit in semester 2 when they are using an object-oriented approach. This is a freely available general programming development environment with all the basic features one would expect (e.g. support for compilation and running programs; syntax highlighting and editing facilities but not the Java related support of environments such as JBuilder). We use jEdit for other languages as well, so students who use it for these will further understand the difference between the language and the development environment.
Broader aims
The programming modules aim to do more than just teach the programming constructs. We also try to get across (in a very limited way) other aspects of programming, such as quality, good design principles and approaches to testing. Thus, earlier exercises are supplied with a PDL design - later on, in Semester 2, students are asked to write their own PDL design. Programming examples always follow the guidelines of the standards manual for the module and in the second semester, we teach javadoc and students write a test harness and design test data for a class. Thus, lectures, examples and exercises try to convey messages about quality and design as well as teaching the mechanics of how to program.
<-- Previous | Next --> |