The first year course is intended to build foundations of CS:
there are courses in functional programming, object-oriented
progam ming, algorithms, mathematics and operating systems.
They are also taught elementary digital electronics: the use
of logic gates, clocked logic, state machines, and a small
amount of transistor beha viour. The most complex structures
they are exposed to are shift registers, RAMs and elementary
programmable logic (PALs).