vault backup: 2024-10-16 09:12:37
This commit is contained in:
86
Data Structures/Week 1/Lecture 1 - Module Intro.md
Normal file
86
Data Structures/Week 1/Lecture 1 - Module Intro.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# 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
|
Reference in New Issue
Block a user