This module aims to strengthen the foundational programming-in-the-small abilities of students via a strong, practical problem-solving focus. Specific topics will include introductory algorithms, algorithm correctness, and algorithm runtime. Essential data structures and algorithmic programming skills will be covered, for example, arrays, lists and trees, searching and sorting, recursion, and divide and conquer. One part of the module will also introduce students to logical formalisms such as propositional and predicate logic and some of their applications in program development.
Total contact hours: 32
Private study hours: 118
Total study hours: 150
Main assessment methods
Take-home logic exercises (25%)
Take-home programming project (25%)
Examination, 2 hours (50%)
Reassessment methods
Like for like.
Steven Skiena, "The Algorithm Design Manual", Springer, 2008.
Huth, M. & Ryan M., Logic in computer science: modelling and reasoning about systems, Cambridge University Press, 2004.
See the library reading list for this module (Canterbury)
On successfully completing the module students will be able to:
1. Understand a problem description, and then identify, compare, and implement appropriate algorithms to solve it.
2. Demonstrate ability to formulate formal solutions to problems logically and in algorithmic form.
3. Demonstrate conceptual understanding on how to devise and sustain arguments regarding the correctness and runtime efficiency of algorithms .
4. Understand and implement basic data structures (e.g., arrays, lists, trees) and use algorithmic techniques (recursion and divide & conquer) to solve well-known problems (searching and sorting) and to newly encountered problems.
5. Understand and manipulate a variety of logical formalisms (e.g., propositional and predicate logic).
6. Understand and apply different proof methods.
7. Understand and prove several different properties of logical formulae (e.g., satisfiability, validity, equivalence, consequence).
8. Formulate statements and problems in logical form
The intended generic learning outcomes.
On successfully completing the module students will be able to:
1. Communicate information, ideas, problem, and solutions to both specialist and non-specialist audiences.
2. Critically evaluate arguments, assumptions, abstract concepts and data (that may be incomplete), to make judgements, and to frame appropriate questions to achieve a solution to a problem.
3. Apply the methods and techniques that they have learned to review, consolidate, extend and apply their knowledge and understanding, and to initiate and carry out projects
University of Kent makes every effort to ensure that module information is accurate for the relevant academic session and to provide educational services as described. However, courses, services and other matters may be subject to change. Please read our full disclaimer.