Students are introduced to the functional behaviour of digital computer systems. The course covers basic concepts of computer logic and architecture, algorithmic problem solving, programming structure, control and data organisation. The requirements for procedural programming languages are explained through the introduction of the syntax and semantics of the C programming language. Students are introduced to algorithmic decomposition and design.