Practical Algorithms COMPSCI1021
- Academic Session: 2019-20
- School: School of Computing Science
- Credits: 20
- Level: Level 1 (SCQF level 7)
- Typically Offered: Semester 2
- Available to Visiting Students: No
- Available to Erasmus Students: No
This course is designed to impart a breadth of knowledge on data structures, particularly with respect to the mathematical foundations involved in manipulating them. In doing so, it will also introduce students to foundational mathematical concepts in computing that will help them to better understand efficient programming and will provide a basis on which to build more complex mathematical concepts in later years of study.
Requirements of Entry
Testing and Software Improvement
Web Application Systems
Written examination 60%, mid semester class tests 10%, in-class quizzes 5% and 25% course work
Main Assessment In: April/May
The aim of this course is to introduce students to the fundamentals of data structures and the algorithms that govern them. They will learn about common structures found in programming and various methods of sorting, searching and sequencing them. They will also be introduced to algorithm complexity and proofs, which should help them to justify design decisions when creating their own software.
Intended Learning Outcomes of Course
By the end of this course, students will be able to:
1. Implement basic data structures such as arrays, linked lists, binary trees and hash tables in a language of choice.
2. Use recursion as an algorithm design technique in a piece of software.
3. Analyse and implement a range of algorithms, including searching and sorting algorithms, and express their complexity using suitable notation.
4. Use predicate logic, set theory and relational algebra to write assertions and use laws to prove them.
5. Demonstrate an understanding of inductively generated structures and proof by induction.
6. Deploy basic concepts of combinatorics in solving mathematical problems.
Minimum Requirement for Award of Credits
Students must submit at least 75% by weight of the components (including examinations) of the course's summative assessment.