Fundamentals of Computing

Discrete mathematics, mathematical logic, and the related fundamental areas of data structures and algorithms lie at the heart of any modern study of computer science.

Any understanding of how computers operate and how to use them effectively and efficiently, in terms of either their hardware or software, inevitably involves numerous mathematical concepts.

This module introduces and develops mathematical notions, data structures and algorithms that are used in various areas of computer science, in particular those required for other modules of the proqramme.

Main topics of the module include:

  • Numbers: integer, rational, and real; Numeral systems
  • Arithmetic for computers
  • Digital logic (combinational circuits)
  • Elements of set and graph theories
  • Finite state machines (automata) and regular languages
  • Turing machines
  • Data structures: representations and operations
  • Lists, trees, forests, binary trees
  • Tree traversal and other operations; binary search trees
  • Sorting and searching.

Learning outcomes

Upon successful completion of this module, you will be able to:

  • understand the mathematical and algorithmic foundations of computing (S2).
  • understand fundamental models of computation, computer arithmetic and logic.
  • analyse, evaluate and choose between different implementations and methods of organisation.
  • develop representations/implementations, including a combination of representations.
  • analyse the resource requirements of simple algorithms and programs.
  • apply an appropriate representation/implementation of a data structure in a given situation.

Assessment

One assessment components:

  • End of term coursework (100%)