87 lines
2.6 KiB
Markdown
87 lines
2.6 KiB
Markdown
# Module Support and Assessment
|
|
|
|
- Assessed Via:
|
|
- Written Exam (100%)
|
|
|
|
# Specific Objective
|
|
|
|
- Data Structures - How data organised.
|
|
- Algorithms - Unambiguous sequence of events / steps to compute.
|
|
|
|
# Why Data #Structures Are Useful
|
|
|
|
- DSA demonstrates:
|
|
- Problem-solving ability
|
|
- Analytical Skills
|
|
- Which algo, data type would be best to efficiently solve problems
|
|
- Fundamentals of Software Dev
|
|
- Remain constant no matter the technology or language
|
|
- Programs solve problems, and process information
|
|
- Information needs to be organised in certain ways, and must be correct and efficient.
|
|
- We organise data to attain faster access to data, using both the correct data structure, and correct algorithm.
|
|
- Examples of data types / structures on the module:
|
|
- Arrays
|
|
- Linked Lists
|
|
- Stacks
|
|
- Queues
|
|
- Trees
|
|
- Hash Tables
|
|
- Graphs
|
|
|
|
## Examples
|
|
|
|
- 
|
|
- 
|
|
- 
|
|
- N is linear, log2(n) is logarithmic.
|
|
|
|
# Why #Algorithms Are Useful
|
|
|
|
- Important for all branches of CS
|
|
- Plays a role in modern innovation
|
|
- ex. Search Engines (Page Rank)
|
|
- Give estimates for running time (using Big O notation)
|
|
- Help to decide hardware requirements
|
|
|
|
# Module Objectives
|
|
|
|
- Necessary to understand most important data structures used when designing / implementing software
|
|
- Allows discussion and comparison of data structures and assessment of usage circumstances.
|
|
- Concept of algorithms is fundamental
|
|
- Variety of possible approaches can lead to competing algorithms
|
|
- Each algorithm is likely to have different resource requirements, time usage or use case.
|
|
- Analyse requirements and provide understanding for usage of choices.
|
|
|
|
# Module Aims
|
|
|
|
- Introduce important data structures
|
|
- Understand abstract data types
|
|
- Show variety of implementations of ADTs
|
|
- Introduce detailed appreciation of data structures, including:
|
|
- Linear Lists
|
|
- Stacks
|
|
- Queues
|
|
- Trees
|
|
- Graphs
|
|
- Appreciate relationship between ADTs and Data Structures
|
|
- Develop Skills required to express methods for solving problems precisely
|
|
- Analyse complexity of implementation
|
|
- Develop deeper understanding of recursion
|
|
|
|
## End Goals
|
|
|
|
- Describe and contrast algorithmic strategy
|
|
- Demonstrate understanding of recursion
|
|
- Utilise standard notation for computational complexity
|
|
- Demonstrate precise and formal understanding of resource requirements of algorithms, and their inner workings.
|
|
|
|
# Mathematical Requirements
|
|
|
|
- Basic Algebra
|
|
- Indices
|
|
- Log
|
|
- Graphs
|
|
- Limits and Asymptotic Notations (Big O)
|
|
- Summations of series, including arithmetic and geometric series
|
|
- Recurrence relations
|