develop and understand algorithms to solve problems; measure and optimise algorithm complexity; appreciate the limits of what may be done algorithmically in reasonable time or at all.

Course Learning Outcomes

B1: COMPUTATION THINKING: develop and understand algorithms to solve problems; measure and optimise algorithm complexity; appreciate the limits of what may be done algorithmically in reasonable time or at all.

B2: PROGRAMMING: create working solutions to a variety of computational and real world problems using multiple programming languages chosen as appropriate for the task.

B3: ARCHITECTURE: understand the underlying architecture that supports the modern computer, including traditional compilers and operating systems, but also the modern infrastructure of the internet and mobile applications.

B4: DATA SCIENCE: work with (potentially large) datasets; using appropriate storage technology; applying statistical analysis to draw meaningful conclusions; and using modern machine learning tools to discover hidden patterns.

 

B5: SOFTWARE DEVELOPMENT: take a product from the initial stage of requirement / analysis all the way through development to its final stages of testing / evaluation.

B6: PROFESSIONAL PRACTICE: understand professional practices of the modern IT industry which include those technical (e.g. version control / automated testing) but also social, ethical & legal responsibilities.

B7: TRANSFERABLE SKILLS: apply a wide variety of degree level transferable skills including time management, team working, written and verbal presentation to both experts and non-experts, and critical reflection on own and others work.

B8: ADVANCED WORK: apply the above to advanced topics selected according to the interests of individual students.