Algorithms

and

Data Structures

 

Lonce Wyse

KTH Learning Presentation

lonce.wyse@cnm.nus.sg

What we will cover

  • Abstract lists and structures
    • ​lists, stacks, queues, trees, graphs
  • Complexity measures
  • Sorting algorithm
  • Algorithm Design

Why?

  • Critical such computer areas as : 
    • Graphics and Games
    • System Design 
    • Networking
  • Today, every science is data science
    • Computational Biology  (structure modeling)
    • Smart Cities  (scheduling, mapping)
    • Simulation/Visualization
    • Social Science​ (big data)

Course Structure

  • 1 hour/week lecture
  • 2-hour/week lab
    • group challenges
    • open discussion with tutor support
    • Last 45 minutes for student presentations
  • ​Outside class
    • ​Reading, video, on-line tutorial
    • Weekly assignment

Weekly Assignments 

  • Coding and writing
    • Handed in through the LMS
    • All assignments submitted on-line
      • Must run
      • Must be supported with documentation
        • ​in addition, and within code
  • Most assignments may be done in *pairs*
    • Colocated or networked
      • e.g. Sublime + floobits

Grading 

  • Weekly assignments
    • 40%
  • Lab work (group)
    • ​20%
  • Midterm & Final
    • ​20% & 20%

 

  •  

Resources 

  • Your fellow students
  • Your fellow students
  • Course LMS site
    • ​syllabus
    • pointers to additional (optional) reading source
    • Forums (electronic version of "your fellow students"
  • ​Facilitator (me) and tutor office hourse

 

 

What is so important about structures? 

Haven't we discovered which one is best yet? 

Form and Function 

http://www.archdaily.com/tag/singapore/page/11/
http://3blmedia.com/News/AECOMs-Safety-Culture-Pays-Abu-Dhabi-International-Airport

Designing Data Structures

  • Efficiency
    • Time
    • Space

Dependent on context

Common operations

  • Access a particular element
    • search
  • Insert a new data element
    • modify
  • Sort

Data Structure Examples

 

  • "Node" : Data  & Pointers

 

  • Linked list

 

  • Binary tree

How long to find a particular node

(worst case) as a function of the side of the data (n) ?

Double data size 

How long to find a particular node

(worst case) as a function of the side of the data (n) ?

Double data size 

new node

Complexity & the Big-O


How algorithm complexity grows with data size 

"Order"

See you in the lab!

See you in the lab!

Copy of Software and Freedom

By lonce

Copy of Software and Freedom

A brief overview of audio synthesis fundamentals, and how to create interactive audio on the Web.

  • 300