 # Module ICP-2021:Algorithm Design with MATLAB

### Module Facts

Run by School of Computer Science and Electronic Engineering

10 Credits or 5 ECTS Credits

Semester 2

Organiser: Prof Ludmila Kuncheva

### Overall aims and purpose

To present algorithmic problem solving techniques and give the students background in MATLAB (matrix and image manipulation, game elements, 2-d graphics and animation, random sampling), sufficient for programming small algorithms.

### Course content

• Introduction to MATLAB. Matrix construction and manipulation. Logical expressions and loops.

• Functions. MATLAB graphics – simple 2D plots. Image representation and manipulation in MATLAB. Animation in MATLAB.

• Random sampling with and without replacement. MATLAB tools: rand, randn, randperm. Game elements in MATLAB: sounds and timing. Data description (mean, median, histogram)

• GUI elements - positioning of axes, push buttons; callback functions

### Learning outcomes mapped to assessment criteria

threshold

40% The student has basic understanding of MATLAB and is able to program simple algorithms with some external help.

good

60% The student has a solid understanding of MATLAB, and is able to program a variety of simple algorithms.

excellent

70% The student has excellent understanding of MATLAB. They are able to structure and program complex algorithms.

Programme simple GUI

Program a basic GUI. Program an intricate GUI with internal call back functions. Program a GUI with external callback functions

Handle matrices in MATLAB (construct, subsample, reshape) Understand and use logical expressions and loops in MATLAB

Construct and handle vectors and matrices. Use elementary logical expressions and loops. Skilfully manipulate matrices and vectors. Construct sophisticated logical operations and loops. Excellent understanding and ability to manipulate matrices: sub-sample, expand and use in expressions. Knowledge of loops and their proper use in MATLAB.

Write MATLAB script and functions for matrix and image manipulation, graphics and simple animation.

Perform simple image manipulations. Understand basic animation in 2D. Use functions, create animation, and handle matrices and images. Excellent understanding ability to perform sophisticated image operations and write MATLAB functions.

Understand random sampling. Construct simple games using MATLAB. Use simple data description functions.

Understand sampling with and without replacement. Draw a random sample from a simple array. Calculate simple statistics. Draw a random sample from a 2D array and from an image. Program games based on random text permutation and 2D graphics using mouse control and timing. Excellent knowledge and skills about sampling from matrices, mouse control and programming simple games.

Learn to program simple algorithms in MATLAB.

### Assessment Methods

Type Name Description Weight
Examination 60
Assignment 1 20
Assignment 2 20

### Teaching and Learning Strategy

Hours
Lecture

22 hours over 12 weeks

22
Laboratory

20 hours over 12 weeks

20
Private study

Revision after the lectures and preparation for the labs and the exam.

58

### Transferable skills

• Numeracy - Proficiency in using numbers at appropriate levels of accuracy
• Computer Literacy - Proficiency in using a varied range of computer software
• Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
• Exploring - Able to investigate, research and consider alternatives
• Information retrieval - Able to access different and multiple sources of information
• Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.

### Subject specific skills

• Knowledge and understanding of facts, concepts, principles & theories
• Use of such knowledge in modelling and design
• Problem solving strategies
• Analyse if/how a system meets current and future requirements
• Specify, design or construct computer-based systems
• Development of general transferable skills
• Knowledge and/or understanding of appropriate scientific and engineering principles
• Knowledge and understanding of computational modelling

### Resources

#### Resource implications for students

The book has been made available in pdf in Blackboard. 