Programming
The world of work requires computer scientists who can program in various languages, but also computer programs are one of the means by which computer scientists communicate complex ideas.The following quote from a court case judgement in the US (Bernstein vs USDOJ, 1999) sums up the idea that computer programs are essentially a means of communicating ideas. The topic is cryptography, but the idea applies to almost all of computer science
-
Thus, cryptographers use source code to express their scientific ideas in much the same way that
mathematicians use equations or economists use graphs. Of course, both mathematical equations and
graphs are used in other fields for many purposes, not all of which are expressive. But mathematicians
and economists have adopted these modes of expression in order to facilitate the precise and rigorous
expression of complex scientific ideas. Similarly, the undisputed record here makes it clear that
cryptographers utilize source code in the same fashion.
In the past there was much debate about which programming language should students be taught. At Bristol we do not believe in such debates; students should learn as many as possible. Each language has its own niche. For example we put great emphasis on teaching C, this is because employers tell us that so many graduates arrive without knowing how to program in the language which is used to write operating systems and control the low level workings of a computer. However, you would not use necessarily use C to design a complex web or graphical application, so we also teach Java. But, neither C nor Java is suitable for writing the description of the workings of a microprocessor, so we also teach Verilog. As well as these we also teach Haskell as this is indicative of scripting languages used in other applications such as parsing. All of these languages are taught in our first year. Meaning students have the skills at the end of the first year to make a contribution in a number of application areas.
But where to start if you are still at school and new to programming ? Luckily there are a number of good tools and introductory languages available.
We collect a small number here for your investigation.
Introductory Languages
-
Kids Programming Language
A programming language and ADT aimed at 12-16 year olds. Enables quite elaborate and complex programs (including graphical games) to be built up quite quickly whilst at the same time teaching concepts used in proper languages. -
GeomLab
A system built at Oxford with the help of NAGTY for helping to explain important concepts in computer programming. The system produces Escher like pictures using a functional programming language.
Learning Full Blown Languages
- Java OnLine Tutorial
An online tutorial written in Bristol to guide you through starting to program in Java, with online exercises. -
Robocode
An environment for intermediate level Java programmers to get used to things such as event driven programming and games AI. Very useful in showing the application of mathematical techniques such as estimation and geometry in action. - BlueJ
A cut down IDE (Integrated Development Environment) for Java which has been particularly designed for beginning Java programmers.

