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

2.6 KiB
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

  • 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