← All courses at University of St Andrews

BSc Computer Science

University of St Andrews

Institution
University of St Andrews
Level
undergraduate
Subject
Computer Science
Duration
4 years
UCAS code
G400
Typical offer
A-level AAA

Entry requirements

A level: AAA, including A in Mathematics and a pass in one of the following: Biology Chemistry Computing Science Further Mathematics Geology Geography Physics Psychology. IB: 38 (HL 6,6,6), including HL6 in Mathematics and SL5 in one of the following subjects: Biology Chemistry Computer Science Geography Geology Physics Psychology.

About this course

BSc (Honours) in Computer Science, a computer science and economics degree focused on the theoretical foundations and practical applications of computing systems. Core topics include Programming, Computer Architecture, Signal Processing, Mathematical Modelling, and Artificial Intelligence & Machine Learning. Students complete a major software project and a software engineering team project in later stages. The first year introduces foundational concepts through Object-Oriented Programming and Programming with Data. The second year advances technical knowledge with Computer Systems and Foundations of Computation. Unspecified year modules such as Logic and Reasoning and Computational Complexity deepen theoretical understanding. Optional modules allow specialisation in areas including Artificial Intelligence, Computer Security, Video Games, and Databases.

Modules

  • Logic and Reasoning : covers the foundations of logic that are relevant to computer scientists, with an emphasis on automatic reasoning and decidability. Topics include propositional and predicate calculus, various proof techniques, and Goedel's incompleteness theorem
  • Computational Complexity : introduces Turing machines, non-determinism and pushdown automata, followed by study of decidability, simulation and the Halting Problem
  • Software Engineering Team Project : gives a broad overview of software engineering, presenting the fundamental aspects as a collaborative professional activity including its concerns and approaches. Students apply these concepts and practices to a substantial software engineering project as part of a team
  • Major Software Project : allows students to undertake a substantial software engineering project using professional development techniques. Each student designs, specifies and constructs a medium-sized software system, or undertakes a formal development and proof of such a system, under the guidance of a member of staff
  • Advanced Communication Networks and Systems
  • Artificial Intelligence
  • Component Technology
  • Computer Architecture
  • Computer Graphics
  • Computer Security
  • Concurrency and Multi-Core Architectures
  • Constraint Programming
  • Data Communications and Networks
  • Data Encoding
  • Databases
  • Distributed Systems
  • Human Computer Interaction
  • Logic and Software Verification
  • Operating Systems
  • Programming Language Design and Implementation
  • Signal Processing: Sound, Image, Video
  • Video Games
  • Object-Oriented Programming
  • Programming with Data
  • Computer Systems
  • Foundations of Computation