Academic Handbook Course Descriptors and Programme Specifications

LCSCI5204 Algorithms and Data Course Descriptor

Course code LCSCI5204 Discipline Computer & Data Science
UK credit 15 US credit 4
FHEQ level 5 Date approved November 2022
Core attributes Conducting Formal and Quantitative Reasoning (FQ)
Pre-requisites LCSCI4212 Discrete Structures and (LCSCI4208 Fundamentals of Computer Science II or LDSCI4211 Intermediate Programming with Data)
Co-requisites None

Course Overview

Correct and efficient algorithms are at the heart of software development: How much time does a computer program take to output a solution? How much memory space does it occupy? This course introduces the basic principles and techniques for the design, analysis, and implementation of correct and efficient algorithms and data representations. The course concludes with a discussion of the relationship of the topics covered to complexity theory and the notion of the hardness of problems.

Learning Outcomes

On successful completion of the course, students will be able to:

Knowledge and Understanding

K1b Critically understand aspects of algorithmic problems (e.g. sorting) and well-established algorithms and techniques that solve those problems (e.g. dynamic programming).
K2b Demonstrate knowledge and critical understanding of techniques to rigorously analyse the time and space complexity of algorithms.
K3b Critically assess and review the appropriateness of well-established algorithms used in existing software in terms of their complexity, identify limitations, and propose alternatives for improvement.

Subject Specific Skills

S1b Critically evaluate the technical, social, and management dimensions of algorithms used in industry applications.
S2b Identify and implement algorithms to solve problems that arise in a software application efficiently.
S3b  Review and analyse the complexity of proposed software and propose directions for improvement

Transferable and Employability Skills

T1b Communicate with mathematical rigour the complexity of algorithms.
T3b Demonstrate a sound technical proficiency in written English and skill in selecting vocabulary so as to communicate effectively to specialist and non-specialist audiences.

Teaching and Learning

This course has a dedicated Virtual Learning Environment (VLE) page with a syllabus and range of additional resources (e.g. readings, question prompts, tasks, assignment briefs, discussion boards) to orientate and engage students in theirr studies.

The scheduled teaching and learning activities for this course are:

Lectures/labs. 40 scheduled hours – typically including induction, consolidation or revision, and assessment activity hours:

  • Version 1:All sessions in the same sized group, or
  • Version 2: most of the sessions in larger groups; some of the sessions in smaller groups

Faculty hold regular ‘office hours’, which are opportunities for students to drop in or sign up to explore ideas, raise questions, or seek targeted guidance or feedback, individually or in small groups.

Students are to attend and participate in all the scheduled teaching and learning activities for this course and to manage their directed learning and independent study.

Indicative total learning hours for this course: 150

Assessment

Both formative and summative assessment are used as part of this course, with purely formative opportunities typically embedded within interactive teaching sessions, office hours, and/or the VLE.

Summative Assessments

AE: Assessment Activity Weighting

(%)

Duration Length

(words)

1 Set Exercises 50 24-32 hours  
2 Exam 25 75 min.  
3 Exam 25 75 min.  

Further information about the assessments can be found in the Course Syllabus.

Feedback

Students will receive formative and summative feedback in a variety of ways, written (e.g. marked up on assignments, through email or the VLE) or oral (e.g. as part of interactive teaching sessions or in office hours).

Indicative Reading

Note: Comprehensive and current reading lists are produced annually in the Course Syllabus or other documentation provided to students; the indicative reading list provided below is for a general guide and part of the approval/modification process only.

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. 2009. Introduction to Algorithms, 3rd Edition. MIT Press.
  • Jon Kleinberg and Eva Tardos. 2013. Algorithm Design. Pearson.
  • Sanjoy Dasgupta, Christos H. Papadimitriou, and Umesh Vazirani. 2006. Algorithms (1st. ed.). McGraw-Hill.

Indicative Topics

Note: Comprehensive and current topics for courses are produced annually in the Course Syllabus or other documentation provided to students; the indicative topics provided below is used as a general guide and part of the approval/modification process only.

  • Techniques for algorithm analysis
  • Divide-and-conquer algorithms
  • Dynamic programming
  • Stable matching: the Gale-Shapley Algorithm
  • Basic graph algorithms
  • Network flow algorithms and applications
  • NP-completeness
  • Greedy algorithms

Version History

Title: LCSCI5204 Algorithms and Data

Approved by: Dr Alison Statham

Location: academic-handbook/programme-specifications-and-handbooks/undergraduate-programmes

Version number Date approved Date published Owner Proposed next review date Modification (as per AQF4) & category number
1.1 July 2023 September 2024 Dr Alexandros Koliousis November 2027 Corrections/clarifications to documents which do not change approved content or learning outcomes
1.0 November 2022 January 2023 Dr Alexandros Koliousis November 2027