The main aim of this course is to understand how a computer can store and process data effectively. To do this, data structures and algorithms must be studied with the help of a programming language. In this course, we will use Python as a programming language.
So, besides becoming an expert about data structures and algorithms, a (positive) side effect of this course is that you will learn a new programming language, i.e., Python (which, by the way, is used extensively in Data Science and scientific programming)
After attending this course you should have achieved the following objectives:
- Understand growth rate of algorithms using the Big-Oh notation
- Understand how recursion can be used to design algorithms
- Understand the principles and usage application of basic data structures, such as arrays, stack, queues and lists.
- Understand the principles and usage applications of advanced data structures, such as trees and hash tables
- Understand and apply typical sorting and searching algorithms
- Understand graphs, graph traversal and paths within graphs
- Implement basic and advanced data structures in Python
- Implement the algorithms covered by this course in Python
- Design and evaluate efficient algorithms in Python to solve specific applied problems
- Understand and utilise Python libraries to solve applied problems, such as using APIs (Twitter and Google maps are used as examples), creating and processing graphs, data science with Pandas.