Algorithm Design with MATLAB
Run by School of Computer Science and Electronic Engineering
10 Credits or 5 ECTS Credits
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.
• 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
40% The student has basic understanding of MATLAB and is able to program simple algorithms with some external help.
60% The student has a solid understanding of MATLAB, and is able to program a variety of simple algorithms.
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.
Solve any 2 (out of 4) questions.
A collection of tasks to write simple pieces of code.
A collection of tasks to write simple pieces of code.
Teaching and Learning Strategy
22 hours over 12 weeks
20 hours over 12 weeks
Revision after the lectures and preparation for the labs and the exam.
- 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
Resource implications for students
The book has been made available in pdf in Blackboard.
Talis Reading listhttp://readinglists.bangor.ac.uk/modules/icp-2021.html
A Matlab Exercise Book Paperback – 18 Jun 2014 by Ludmila Kuncheva (Author), Cameron Gray (Contributor)
Pre- and Co-requisite Modules
Courses including this module
Compulsory in courses:
- H612: BEng Computer Systs Eng (3 yrs) year 2 (BENG/CSE)
- H61B: BEng Computer Sys Engineering (4yr with Incorp Foundation) year 2 (BENG/CSE1)
- G400: BSC Computer Science year 2 (BSC/CS)
- G40B: BSc Computer Science (4 year with Incorporated Foundation) year 2 (BSC/CS1)
- H64B: BSc Computer Sys Engineering (4yr with Incorp Foundation) year 2 (BSC/CSE1)
- H603: BSc Computer Systems Engineering year 2 (BSC/CSENG)
- I102: BSc Computer Science (with International Experience) year 2 (BSC/CSIE)
- H611: BSc Electronic Engineering year 2 (BSC/ELE)
- H63B: BSc Electronic Engineering (4yr with Incorp Foundation) year 2 (BSC/ELE1)
- H661: MEng Control and Instrumentation Engineering year 2 (MENG/CIE)
- H660: MEng Critical Safety Engineering year 2 (MENG/CRSEN)
- H617: MEng Computer Systs Eng (4 yrs) year 2 (MENG/CSE)
- H619: MEng Computer Systems Engineering (with International Exper) year 2 (MENG/CSEIE)