The topic is intended as a first course in programming for students who intend to major in computer science and for students from other disciplines who require programming skills. It aims to introduce students to the basic tools and techniques of software development. The topic will cover the following material: the design, analysis, and limitations of algorithms; the study of abstraction as a way of controlling complexity; an introduction to the software development process; aspects of a modern programming language, including variables and types, classes and methods, parameterisation, selection and iteration, and recursion. Intensive workshops on coding design, implementation and testing within a group environment will further extend the student's programming skills. These workshops will investigate the complexity of managing group work and strategies for building successful programs through the implementation of convention rules and structured templates.
This topic aims to help develop: