School of Computer Science

Module 22754 (2010)

Module description - Foundations of Computer Science

The Module Description is a strict subset of the Syllabus Page.

Module Title Foundations of Computer Science
School School of Computer Science
Module Code 06-22754
Level 1/C
Member of Staff Martin Escardo John Bullinaria
Semester Semester 1 - 10 credits Semester 2 - 10 credits

2 hrs lecture, 1 hr exercise class per week


On successful completion of this module, the student should be able to:

  • explain principles of imperative programming
  • explain the importance of abstract models of computation and data
  • make informed choices between alternative ways of implementation, justifying choices on grounds such as time and space complexity or considerations of numerical accuracy
  • explain and apply data structures such as binary trees, heap-trees, graphs and tables, together with their internal representations and relevant algorithms
  • select, with justification, appropriate data structures to ensure efficient implementation of an algorithm (e.g. searching, insertion, deletion or sorting)
  • explain the differences between basic complexity classes of algorithms (constant, linear, quadratic, logarithmic, exponential)
  • argue that algorithms are correct, and derive their time complexity
  • select, with justification, appropriate algorithms for basic tasks such as searching, including reference to the algorithm's complexity class
  • Sessional: 3 hr examination (80%), continuous assessment (20%).
  • Supplementary: By examination only.
Computer Science, a Modern Introduction Goldschlager L & Lister A Prentice Hall
Computing Concepts with Java Essentials Horstmann C S
Computing Science: an Overview Brookshear Addison-Wesley
Data Structures & Algorithms: A First Course Adamson I
Data Structures: An Object-Oriented Approach Collins W J
Data Structures in Java Standish T A
Detailed module notes will be provided.
Foundations of Computer Science in C Aho A V & Ullman J D Freeman & Co.