Algorithms and Data Structures 1
By Nima Jamalian
Introduction To
Module
About Me
• Lecturer in Games Programming & Computing
• Researcher in Games, VR, AR and Gamification
• Previously
• VR and AR Consultant (South Bank Innovation)
• Software Engineer (Nokia Bell Labs)
Module Structure
• Lectures
• Monday 16:00 - 18:00 (RHB 342)
• Lab Session
• Group 1 - Friday 9:00 - 11:00 (RHB 306a)
• Group 2 - Friday 14:00 - 16:00 (RHB 117)
• Only attend to lab group you have been assigned to, check your timetable to see
which group you are in.
Module Syllabus
THE MODULE CONSISTS OF 2 WEEKS PER TOPIC 2 WEEKS PER TOPIC
5/4 TOPICS OVER TEN WEEKS.
Module Description
• How do you estimate how much memory an • The course focuses on Algorithms:
algorithm is going to consume?
• How to analyse and algorithm
• How fast is an algorithm when it has to process big
data? • Recursive Algorithms
• What are the main algorithms to solve classical • Slow and fast approaches for sorting data
computer science problems?
• A new fast way of searching for data.
• How do you select the best algorithm to solve a
given problem?
• These are the main question you will be able to
answer after successfully finishing this course.
Textbook and Readings
• The guide book for this course is the following
• Cormen, T.H., C.E. Leiserson, R.L. Rivest and C.
Stein Introduction to algorithms. (MIT Press, 2009)
3rd edition [ISBN 9780262533058]
• Link Reading Materials on Goldsmiths Online Library:
• https://learn.gold.ac.uk/mod/aspirelists/view.php?id=1
377565
Topic 1 - Week 1 and Week 2
Analysis of algorithms
• Theoretical vs. empirical algorithm analysis
Key concepts: • Memory and time requirements from pseudocode
• Growth function and asymptotic notation
• Determine time and memory consumption of an algorithm described using pseudocode
• Determine the growth function of the running time or memory consumption of an algorithm
Learning Outcomes:
• Use Big-O, Ω and Θ notations to describe the running time or memory consumption of an
algorithm
Topic 2 - Week 3 and Week 4
Recursion
• Algorithmic recursion
• The structure of recursive algorithms
Key concepts:
• Recurrence equations
• Master Theorem
• Trace and write recursive algorithms
• Write the recursive version of an iterative algorithm using pseudocode
Learning Outcomes:
• Calculate the time complexity of recursive algorithms
consumption of an algorithm
Topic 3 - Week 5 and Week 6
Comparison sorting algorithms
• Comparison vs. non comparison sorts
Key concepts: • Bubble, Insertion and Selection sort
• Recursive sorts: Mergesort and Quicksort
• Identify the different approaches of different comparison sorting algorithms
Learning Outcomes: • Implement different comparison sorting algorithms
• Calculate the time complexity of different comparison sorting algorithms
Topic 4 - Week 7 and Week 8
Non-comparison sorting algorithms
• The limits of comparison sorts
Key concepts:
• Counting, radix and bucket sort
• Identify the different approaches of different non-comparison sorting algorithms
Learning Outcomes: • Implement different non-comparison sorting algorithms
• Calculate the time complexity of different non-comparison sorting algorithms
Topic 5 - Week 9 and Week 10
Hashing
• The problem of searching
Key concepts: • Hash tables, hash functions
• Collision resolution techniques
• Describe the different methods used to search for data
Learning Outcomes: • Describe different collision resolution methods
• Implement a hash table with linear probing collision resolution
Module Topics
Analysis of Recursion Sorting
algorithms Algorithms
Design of
Hashing
Algorithms
Assessments
• Coursework (50%)
• Topic Quizzes (20%) Exam Lab Submissions Lab Quizzes
• Lab Submissions (30%)
• Exam (50%)
20%
50%
30%
Assessments -Quizzes
• Lab Quizzes (30%)
• Lab Quizzes give you a taste of final exam Exam Lab Submissions Lab Quizzes
and test your knowledge about on topic
learned during class.
20%
50%
30%
Assessments - Lab Submissions
• Lab Submissions (30%)
• Lab submission is programming exercise Exam Lab Submissions Lab Quizzes
about topic covered in class.
20%
50%
30%
Assessments - Exam
• Final Exam (50%)
• This is a written 2 hour exam with unseen Exam Lab Submissions Lab Quizzes
questions.
• The exam covers the 5 topics in this module:
• Analysis of Algorithms
20%
• Recursion
50%
• Sorting
30%
• Hashing
• Design of Algorithms
Extenuation Circumstances
• If you miss deadline due to extenuation circumstances you need to apply online for
late submission.
• Link:
https://www.gold.ac.uk/students/processes/mitigating-and-extenuating-circumstances/
help/
Extenuation Circumstances
• Remember no need to email your lecturer.
• EC are not processed by the department
• EC are processed by the registry office.
• If your EC request for extension is accepted
• An extension will granted to you
• Normal 2 weeks after the deadline extension
• If you apply late (2 weeks after the submission deadline)
• No extension will be given but the only option is to defer to late summer.
Module Goals and Objectives
• Upon successful completion of this module, you will be able to:
• Express time and space complexities of specific algorithms using big-O notation
• Implement standard searching, sorting and path finding algorithms
• Compare and contrast recursive and iterative expression of solutions to problems
Any questions
so far?