Computer Science

ECM3428 - Algorithms that Changed the World (2019)

Back | Download as PDF
MODULE TITLEAlgorithms that Changed the World CREDIT VALUE15
MODULE CODEECM3428 MODULE CONVENERDr Chunbo Luo (Coordinator)
DURATION: TERM 1 2 3
DURATION: WEEKS 12 0 0
Number of Students Taking Module (anticipated) 35
DESCRIPTION - summary of the module content

Algorithms are precisely defined procedures designed to solve computational tasks: they are the life-blood of computing. This module is designed to highlight the importance of algorithms in Computer Science, providing you with an understanding of what algorithms are, how they can be specified and evaluated, and what they can be used for. These general ideas will be illustrated throughout by means of an in-depth study of a range of example algorithms which have played an important part in the development of Computer Science and underpin current computing practice. The prerequisite knowledge may be obtained from two first-year computer science and mathematics modules.



PRE-REQUISITE MODULES: ECM1400, ECM1414, ECM1416

AIMS - intentions of the module

In this module, you will build on the knowledge acquired in ECM1414 (Data Structures and Algorithms) with a more systematic exploration of a range of different types of algorithms and the principles of their design and analysis. A range of specific computational problems will be covered (e.g., operations on strings, graphs, and other data structures, numerical problems), and different algorithms for these problems analysed.

INTENDED LEARNING OUTCOMES (ILOs) (see assessment section below for how ILOs will be assessed)

On successful completion of this module you should be able to:



 

Module Specific Skills and Knowledge

:

1. Appreciate the principles of algorithm design and implementation;



2. Analyse the time complexity of some important classes of algorithm;



3. Implement and analyse some fundamental algorithms.



Discipline Specific Skills and Knowledge

:

4. Apply programming skills to convert abstract specifications into practical realisations;



5. Demonstrate an analytical approach to computational problems;


6. Appreciate the importance of complexity considerations in the practical deployment of programs at different scales.

Personal and Key Transferable / Employment Skills and Knowledge:



7. Approach problem-solving tasks in a systematic and disciplined way.

SYLLABUS PLAN - summary of the structure and academic content of the module

- Introduction: What is an algorithm?;

- Specification and pseudo-code;

- Recapitulation of: correctness; algorithms versus heuristics; space and time complexity; iteration and recursion; NP-completeness;

- A study of specific algorithms, problems, and techniques selected from:

Google: PageRank, Internet routing algorithm, Linear programming, Simplex algorithm for optimization, Data compression, Kalman filter, Algorithms on graphs,

 

Fast Fourier transform,

 Public-key encryption, Monte Carlo integration.




Other examples as appropriate.


LEARNING AND TEACHING
LEARNING ACTIVITIES AND TEACHING METHODS (given in hours of study time)
Scheduled Learning & Teaching Activities 38.00 Guided Independent Study 112.00 Placement / Study Abroad 0.00
DETAILS OF LEARNING ACTIVITIES AND TEACHING METHODS
Category Hours of study time Description
Scheduled learning and teaching 22 Lectures
Scheduled learning and teaching 11 Workshops to gain practical experience working with algorithms
Scheduled learning and teaching 5 Tutorials involving theoretical exercises and discussions
Guided independent study 30 Coursework
Guided independent study 82 Reading, programming

 

ASSESSMENT
FORMATIVE ASSESSMENT - for feedback and development purposes; does not count towards module grade
Form of Assessment Size of Assessment (e.g. duration/length) ILOs Assessed Feedback Method
Class test 1 hour 1 In class
       
       
       
       

 

SUMMATIVE ASSESSMENT (% of credit)
Coursework 40 Written Exams 60 Practical Exams 0
DETAILS OF SUMMATIVE ASSESSMENT
Form of Assessment % of Credit Size of Assessment (e.g. duration/length) ILOs Assessed Feedback Method
Coursework (paper exercise and programming) 40 30 hours 1, 2, 3, 4, 5, 6, 7 Individual feedback sheet
Examination 60 2 hours - Summer Exam Period 1, 2, 5, 6 Model answers supplied on request
         
         

 

DETAILS OF RE-ASSESSMENT (where required by referral or deferral)
Original Form of Assessment Form of Re-assessment ILOs Re-assessed Time Scale for Re-assessment
Coursework (paper exercise and programming) Coursework (paper exercise and programming) 1, 2, 3, 4, 5, 6, 7 To be completed over the summer and submitted in referred exam week

 

Referred examination 1, 2, 5, 6 Ref/Def Exam Period
       

 

RE-ASSESSMENT NOTES

Failure in programming coursework will result in referral, whether or not the remaining components are passed; the referred programming coursework will contribute 40% to the final mark.



The referred exam will be required if the combined mark for the paper coursework and exam is a fail mark; the referred exam will contribute 60% to the final mark.

RESOURCES
INDICATIVE LEARNING RESOURCES - The following list is offered as an indication of the type & level of
information that you are expected to consult. Further guidance will be provided by the Module Convener

Basic reading:

 

ELE: http://vle.exeter.ac.uk/

 

Web based and Electronic Resources:

 

Other Resources:

Donald Knuth, Fundamental Algorithms (vols 1-3), Addison-Wesley

 

Reading list for this module:

Type Author Title Edition Publisher Year ISBN Search
Set MacCormick John Nine Algorithms that Changed the Future: The Ingenious ideas that Drive Todays Computers Princeton University Press 2012 [Library]
Set Cormen T, Leiserson C, Rivest R, Stein C Introduction to Algorithms 3rd Edition MIT Press 2009 [Library]
CREDIT VALUE 15 ECTS VALUE 7.5
PRE-REQUISITE MODULES ECM1414, ECM1400, ECM1416
CO-REQUISITE MODULES
NQF LEVEL (FHEQ) 6 AVAILABLE AS DISTANCE LEARNING No
ORIGIN DATE Tuesday 10 July 2018 LAST REVISION DATE Wednesday 03 July 2019
KEY WORDS SEARCH Algorithms; Computational complexity.