F28SH - Programming for Data Analysis
Course leader(s):
Aims
To develop further skills and techniques in programming in a high-level language. The ability to construct data structures in a high level language, and implementation algorithms over these data structures.
Syllabus
1. Linear structures and operations
2. Linked structures including trees and operations, e.g, tree traversal and update
3. Search and sort algorithms, e.g. binary search, linear search, divide and conquer
4. Array and matrix computing
5. Scientific and statistical computing
6. Data analysis and file I/O
7. 2D visualisation and plotting (7.1 MatPlot)
8. Testing, checking, linting, packing
9. Simple graphics and image processing (9.1 turtle module, image module)
Learning outcomes
By the end of the course, students should be able to do the following:
- To understand properties of and algorithms for fundamental static, dynamic and linked data structures
- To know when to deploy fundamental data structures and algorithms in practical problem solving
- To understand fundamental techniques for processing very large data sets from files
- To gain skill in elementary analyses of fundamental algorithms and data structures to give insight into their time and space complexity bounds
- To understand correspondences between different data structures and algorithms
- To develop abilities to translate mathematical equations into relevant computing structures
- To understand how the choice of algorithms and data structures determines the efficacy of proposed solutions to problems
- To be able to explain the implications of choosing particular algorithms and data structures for the time and space behaviour of solutions.
- To develop competency in using tools for testing, checking and packaging
Further details
Curriculum explorer: Click here
SCQF Level: 8
Credits: 15