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

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 pro gramming 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 an d 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 ve rbal
presentation to both experts and nonexperts, 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.