## Practical Algorithms COMPSCI1021

• School: School of Computing Science
• Credits: 20
• Level: Level 2 (SCQF level 8)
• Typically Offered: Runs Throughout Semesters 1 and 2
• Available to Visiting Students: No

### Short Description

This course is intended for Graduate Apprenticeship students only.

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.

None

None

None

### Assessment

Written examination 60%, mid semester class tests 10%, in-class quizzes 5% and 25% course work

Main Assessment In: December

### Course Aims

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.