The course focuses heavily upon learning a high-level programming language to be able to write algorithms to solve problems. Towards the end of the first year of the course you will be required to put your programming knowledge and skills to full use by engineering and innovating a software application. Computational thinking is a discipline that runs throughout the whole course and studying how computer systems work is vital to this.