| 
 Undergraduate Course: Informatics 2B - Algorithms, Data Structures, Learning (INFR08009)
Course Outline
| School | School of Informatics | College | College of Science and Engineering |  
| Credit level (Normal year taken) | SCQF Level 8 (Year 2 Undergraduate) | Availability | Available to all students |  
| SCQF Credits | 20 | ECTS Credits | 10 |  
 
| Summary | This course presents key symbolic and numerical data structures and algorithms for manipulating them. Introductory numerical and symbolic learning methods provide a context for the algorithms and data structures. To make the presented ideas concrete, the module will extend the student's skills in Java and Matlab. Examples will be taken from all areas of Informatics. 
 * Please note that this course has been replaced by a 10 credit course Informatics 2B - Learning (INFR08028) for 2019/20.*
 |  
| Course description | Algorithms and Data Structures: * Asymptotic notation and algorithms
 * Sequential data structures
 * Searching - including Hashing, AVL Trees, Heaps
 * Sorting - including Mergesort, Heapsort, Quicksort
 * Web-scale algorithms
 * Graphs
 
 Learning:
 * Statistical pattern recognition and machine learning
 * Multidimensional data
 * Discrete data and naive Bayes
 * Modelling and describing continuous data: nearest neighbours and clustering
 * Gaussians and linear discriminants
 * Single- and multi-layer networks
 
 Relevant QAA Computing Curriculum Sections:  Data Structures and Algorithms, Artificial Intelligence
 |  
Information for Visiting Students 
| Pre-requisites | None |  
		| High Demand Course? | Yes |  
Course Delivery Information
| Not being delivered |  
Learning Outcomes 
| On completion of this course, the student will be able to: 
        Demonstrate the ability to analyse the complexity of algorithms using asymptotic notation,  to write programs to create and manipulate array-structured and dynamically-structured  data, and to construct and analyse search tree data structuresDemonstrate knowledge of sorting  and graph  algorithms and their run-time complexityDemonstrate understanding of statistical pattern recognition and Bayes theorem,  and the  ability to manipulate and describe multidimensional data using summary statisticsDemonstrate the ability to model discrete multidimensional data using Naive Bayes,  and the  ability to classify multidimensional data using Gaussians and single-layer networksDemonstrate understanding of the concept of discriminant functions,  and the ability to  model data using nearest-neighbour and clustering approaches |  
Reading List 
| * [***] S. Russell, P. Norvig. AI: A Modern Approach. Prentice Hall, 2003. 2nd Edition * [**] T. H. Cormen, C. E. Leiserson, R. L. Rivest. Introduction to Algorithms, MIT Press, 1990.
 * [**] A. V. Aho, J. D. Ullman. Foundations of Computer Science with C. Computer Science Press, 1995.
 * [**] M. T. Goodrich and R. Tamassia. Data Structures and Algorithms in Java. John Wiley, 2003. (3rd edition)
 * [**] I. H. Witten and E. Frank. Data Mining. Morgan Kaufmann. 2005. (2nd edition)
 Programme Collective Intelligence, Toby Segaran, O'Reilly 2007
 |  
Contacts 
| Course organiser | Dr Kyriakos Kalorkoti Tel: (0131 6)50 5149
 Email:
 | Course secretary | Ms Kendal Reid Tel: (0131 6)51 3249
 Email:
 |  |  |