Module Descriptors
ALGORITHMS AND PROGRAMMING CONCEPTS
COMP40048
Key Facts
Digital, Technology, Innovation and Business
Level 4
20 credits
Contact
Leader: Fiona Knight
Hours of Study
Scheduled Learning and Teaching Activities: 65
Independent Study Hours: 135
Total Learning Hours: 200
Pattern of Delivery
  • Occurrence A, Stoke Campus, UG Semester 1
  • Occurrence B, Digital Institute London, UG Semester 1
  • Occurrence C, British University Vietnam, UG Semester 1
  • Occurrence D, Asia Pacific Institute of Information Technology Sri Lanka (Colombo), UG Semester 2
  • Occurrence E, Asia Pacific Institute of Information Technology Sri Lanka (Kandy), UG Semester 2
  • Occurrence G, British University Vietnam, UG Semester 2
Sites
  • Asia Pacific Institute of Information Technology Sri Lanka (Colombo)
  • Asia Pacific Institute of Information Technology Sri Lanka (Kandy)
  • British University Vietnam
  • Digital Institute London
  • Stoke Campus
Assessment
  • Class-test 45 mins weighted at 50%
  • Class-test 45 mins weighted at 50%
Module Details
INDICATIVE CONTENT
This module will cover the following topics:

Core mathematics

Including discrete mathematics, linear algebra, number, graph theory, and statistical principles

Key programme design principles and theory

Professional practice and expectation in relation to legal, social, and associated ethical issues

Variables & data types

Input & Output

Lists and other data structures

Control structures (Sequence, selection & iteration)

Functions

Testing

Debugging

Problem solving

Effective programming to address full design, implementation, testing, and evaluation of solutions

Data validation, error handling and exceptions

Design using notations such as pseudocode and Structured English

Fundamental algorithms, such as sorting, searching and tree traversal

Other algorithms - brute force, travelling salesman, van loading, knapsack loading

Metrics for evaluating complexity of algorithms (Big-O)

Formal documentation of designs and solutions

Designing solutions to given problem specifications

Trade-offs between potential solutions (from simple to complex coding artefacts) addressing societal, business, and customer needs

You will be given a range of practical tasks to complete to help you gain mastery of the module’s topics through hands-on practical experience
ADDITIONAL ASSESSMENT DETAILS
Class-test - Throughout the module you will build an electronic portfolio of solutions to practical tasks, and these will be assessed through a class-test. The test will consist of approximately 50% of questions based on topics covered in the lectures and 50% of questions based on an electronic portfolio. The test will take place approximately half way through the module (Learning Outcomes 1 and 2).

Class-test - Throughout the module you will build an electronic portfolio of solutions to practical tasks, and these will be assessed through a class-test. The test will consist of approximately 50% of questions based on topics covered in the lectures and 50% of questions based on an electronic portfolio. The test will take place at the end of the module (Learning Outcomes 1, 2 and 3).
LEARNING OUTCOMES
1. Design solutions to problems using appropriate algorithms and notations.

Problem Solving,
Analysis

2. Develop solutions to problems using an appropriate programming language and a suitable development environment.

Application

3. Evaluate the complexity of alternative algorithms through use.

Knowledge and Understanding,
Learning
LEARNING STRATEGIES
All teaching sessions will blend theory and practical learning. Students will be introduced to curriculum concepts and ideas and will then be able to apply theory to practical examples within the same sessions. In addition, students will be provided with a range of resources for independent study such as case studies, academic papers and industry stories. There will be a mixture of practical and theoretical formative (mock or practice) exercises which will help students build knowledge and confidence in preparation for summative (formal) assessment.
RESOURCES
Python programming language

Python development environment (e.g. PyCharm, IDLE, Visual Studio Code)
REFERENCE TEXTS
All texts and electronic resources will be updated and refreshed on an annual basis and available for students via the online Study Links resource platform. All reference materials will be collated and curated and aligned to Equality, Diversity & Inclusion indicators.

Rocca, L, M. (2021), Algorithms and Data Structures in Action, Manning Publications; 1st edition

Skiena, S. (2020), The Algorithm Design Manual (Texts in Computer Science), Springer; 3rd ed. 2020 edition

Wengrow, J. (2020), A Common-Sense Guide to Data Structures and Algorithms, 2e: Level Up Your Core Programming Skills, The Pragmatic Programmers; 2nd ed. edition

Barry, P. (2016), Head First Python, O'Reilly

Schneider, D.I. (2015), An introduction to programming using Python, Pearson
WEB DESCRIPTOR
In this module, you will begin an exciting journey of discovery that will lay the programming foundation for both your academic and professional career. You will focus on designing and developing programs in Python. On the way, you will also learn about algorithms, data structures, analysing problems, modeling solutions, and testing programs.