1.1 The current course

The University of Oxford's Physics department is one of the largest Physics departments in the United Kingdom. Each October it admits around two-hundred students to study for either the 3-Year BA or the 4-Year MPhys. Both groups of students follow the same course until late in the third year.

The students are perhaps amongst the most able produced by British and international schools. Typical entrance requirements are three `A' grades at A Level, which must include Mathematics and Physics. This enables all aspects of the first-year course to assume familiarity with and aptitude for school-level mathematics (in particular algebra and calculus). In fact many students arrive with more advanced qualifications, such as the A Level in Further Mathematics.

However, it is not possible to assume any experience with computers. When the Pascal programming course was first introduced ten years ago, most students had not used a computer before coming to university. This is no longer the case; the majority arrive with a familiarity with, almost invariably, the Microsoft Windows environment. Very few have used Unix systems. A minority arrive with programming experience.

The first year of the Physics course involves three main components: physics (mechanics and special relativity, waves and optics, and electronics and electromagnetism), mathematics, and the practical course. The physics and mathematics are taught using a combination of lectures and tutorials, and are examined at the end of the first year and again towards the end of the third year[#!oxphys!#].

The introduction to computer programming forms a compulsory element of the practical course. During the first year students must attend the various laboratories for a total of sixteen days, two of which are allocated to the teaching of programming1.1. In the computing course's current form the first day is spent working through a handbook which aims to provide an introduction to the environment and sufficient exercises such that they are able to write short, procedural programs in Pascal[#!oldhandbook!#].

Students are then asked to solve a more substantial computational problem on the second day. These problems are representative of the requirements and algorithms most often used in the numerical solution of various physical problems. Each student is assigned a problem by a laboratory supervisor. CO11 is ostensibly the easiest, whereas CO16 requires considerable thought[#!scripts!#].

The Pascal course is taught using terminals running NeXTStep, a variant of the Unix operating system with an integrated and consistent graphical interface. These are ageing machines so they are being replaced. Over the last year a gradual substitution of NeXTs with SunRays has taken place. SunRays are terminals connected to a server running Solaris 5.7, which is also a Unix variant (although without such an integrated graphical environment)

Although Pascal is a commonly used teaching language, it is widely acknowledged as being little more than a toy language. Its deep-rooted problems were described by Brian Kernighan in his paper "Why Pascal is not my favorite programming language"[#!kernighan!#].

Its decline as was slowed somewhat by the extensions provided by various dialects, but these could not avoid the languages fundamental limitations and also served to balkanize the language's user base. Other programming language's have benefited from a respected ANSI/ISO specification (e.g. C) or a dominant commercial implementation (e.g. Java).

Furthermore, although free or cheap Windows compilers are available (such as GNU Pascal) their installation requires considerable computing knowledge, and not a task the inexperienced student is likely to relish.

Pascal's fate as a serious programming language appears to have been sealed. It is now rarely used, even in academia. Having been the standard language for the ``Advanced Placement'' college entrance exams in the USA for nearly 20 years, it was replaced by C++ in 1999 (which, incidentally, was almost immediately replaced with Java).

Perhaps Python provides an alternative to Pascal that, as well as being suited to teaching programming fundamentals, is also considered more than a toy by the commercial and academic world.


... programming1.1
The time allocated to programming may be increased to four days for the 2002-3 academic year. This report assumes a two-day course.