Files
G4G0-2/Data Structures/Week 1/Lecture 1 - Module Intro.md
2025-01-30 09:27:31 +00:00

87 lines
2.6 KiB
Markdown
Executable File

# 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
- ![](Pasted%20image%2020240918092145.png)
- ![](Pasted%20image%2020240918092203.png)
- ![](Pasted%20image%2020240918092221.png)
- 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