Planning & System installation

Slides:



Advertisements
Similar presentations
DATA STRUCTURES & ANALYSIS OF ALGORITHMS
Advertisements

©Brooks/Cole, 2003 Chapter 12 Abstract Data Type.
Advanced Data Structures
CS 104 Introduction to Computer Science and Graphics Problems Data Structure & Algorithms (4) Data Structures 11/18/2008 Yang Song.
©Brooks/Cole, 2003 Chapter 12 Abstract Data Type.
Lec 15 April 9 Topics: l binary Trees l expression trees Binary Search Trees (Chapter 5 of text)
COMP 110 Introduction to Programming Mr. Joshua Stough.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 12 – Data Structures Outline 12.1Introduction.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Chapter 12 Data Structure Associate Prof. Yuh-Shyan Chen Dept. of Computer Science and Information Engineering National Chung-Cheng University.
Grade 12 Computer Studies HG
 2007 Pearson Education, Inc. All rights reserved C Data Structures.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Course Review Midterm.
Chapter 19 Implementing Trees and Priority Queues Fundamentals of Java.
Chapter 19 Implementing Trees and Priority Queues Fundamentals of Java.
Binary Trees 2 Overview Trees. Terminology. Traversal of Binary Trees. Expression Trees. Binary Search Trees.
Computer Science 112 Fundamentals of Programming II Introduction to Trees.
BINARY TREES Objectives Define trees as data structures Define the terms associated with trees Discuss tree traversal algorithms Discuss a binary.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Data Structure and Algorithms
IB Economics assessment objectives and command terms.
DATA STRUCURES II CSC QUIZ 1. What is Data Structure ? 2. Mention the classifications of data structure giving example of each. 3. Briefly explain.
© Oxford University Press All rights reserved. Data Structures Using C, 2e Reema Thareja.
Mohammed I DAABO COURSE CODE: CSC 355 COURSE TITLE: Data Structures.
Final Exam Review COP4530.
Final Exam Review CS 3358.
CSE373: Data Structures & Algorithms Priority Queues
Chapter 12 Abstract Data Type.
Planning & System installation
Data Structures Using C, 2e
Queues.
Planning & System installation
ADT description Implementations
Data Structure By Amee Trivedi.
Chapter 12 – Data Structures
Introduction to Computers Computer Generations
Trees Chapter 15.
Lecture 1 (UNIT -4) TREE SUNIL KUMAR CIT-UPES.
Lecture 7 Queues Stacks Trees.
Fundamentals of Programming II Introduction to Trees
Planning & System installation
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
Recursive Objects (Part 4)
Data Structure Interview Question and Answers
12 C Data Structures.
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
Planning & System installation
DATA STRUCTURES AND OBJECT ORIENTED PROGRAMMING IN C++
Lectures Queues Chapter 8 of textbook 1. Concepts of queue
Data Structures Interview / VIVA Questions and Answers
Trees.
Binary Tree and General Tree
Map interface Empty() - return true if the map is empty; else return false Size() - return the number of elements in the map Find(key) - if there is an.
8.2 Tree Traversals Chapter 8 - Trees.
Lesson Objectives Aims
Final Exam Review COP4530.
Hassan Khosravi / Geoffrey Tien
Trees.
Binary Trees, Binary Search Trees
DATA STRUCTURE.
Trees.
Chapter 20: Binary Trees.
EE 312 Final Exam Review.
Priority Queues & Heaps
CO4301 – Advanced Games Development Week 4 Binary Search Trees
Data Structures and Algorithm Analysis Priority Queues (Heaps)
Binary Trees, Binary Search Trees
Data Structures Using C++ 2E
Chapter 11 Trees © 2011 Pearson Addison-Wesley. All rights reserved.
CMPT 225 Lecture 16 – Heap Sort.
Presentation transcript:

Planning & System installation IB Computer Science

HL Topics 1-7, d1-4 1: System design 2: Computer Organisation 3: Networks 4: Computational thinking 5: Abstract data structures 6: Resource management 7: Control D: OOP

HL only 5 Overview 1: System design 2: Computer Organisation Thinking recursively 5.1.1 Identify a situation that requires the use of recursive thinking 5.1.2 Identify recursive thinking in a specified problem solution 5.1.3 Trace a recursive algorithm to express a solution to a problem Abstract data structures 5.1.4 Describe the characteristics of a two-dimensional array 5.1.5 Construct algorithms using two-dimensional arrays 5.1.6 Describe the characteristics and applications of a stack 5.1.7 Construct algorithms using the access methods of a stack 5.1.8 Describe the characteristics and applications of a queue 5.1.9 Construct algorithms using the access methods of a queue 5.1.10 Explain the use of arrays as static stacks and queues Linked lists 5.1.11 Describe the features and characteristics of a dynamic data structure 5.1.12 Describe how linked lists operate logically 5.1.13 Sketch linked lists (single, double and circular) Trees 5.1.14 Describe how trees operate logically (both binary and non-binary) 5.1.15 Define the terms: parent, left-child, right-child, subtree, root and leaf 5.1.16 State the result of inorder, postorder and preorder tree traversal 5.1.17 Sketch binary trees Applications 5.1.18 Define the term dynamic data structure 5.1.19 Compare the use of static and dynamic data structures 5.1.20 Suggest a suitable structure for a given situation 3: Networks 4: Computational thinking 5: Abstract data structures 6: Resource management 7: Control D: OOP

What type of questions to expect: AO Typical command terms used in questions AO1 Classify, define, draw, label, list, state AO2 Annotate, apply, calculate, describe, design, distinguish, estimate, identify, outline, present, trace AO3 Analyse, comment, compare, compare and contrast, construct, contrast, deduce, demonstrate, derive, determine, discuss, evaluate, examine, explain, formulate, interpret, investigate, justify, predict, sketch, suggest, to what extent

Topic 5.1.20 Suggest a suitable structure for a given situation AO3

Abstract Data Structures (ADTs) 2D array Stack Queue Linked List (Binary) Tree Recursion

Stacks? Best used for: Perhaps the most important application of stacks is to implement function calls (methods). Most compilers implement function calls by using a stack. This also provides a technique for eliminating recursion from a program: instead of calling a function recursively, the programmer uses a stack to simulate the function calls in the same way that the compiler would have done so. Conversely, we can often use recursion instead of using an explicit stack.

Queues? Best used for: Computing applications: serving requests of a single shared resource (printer, disk, CPU), Buffers: MP3 players and portable CD players, iPod playlist. Playlist for jukebox: add songs to the end, play from the front of the list. Interrupt handling: When programming a real-time system that can be interrupted (e.g., by a mouse click or wireless connection), it is necessary to attend to the interrupts immediately, before proceeding with the current activity. If the interrupts should be handles in the same order they arrive, then a FIFO queue is the appropriate data structure.

Linked list? Best when: You need constant-time insertions/deletions from the list (such as in real-time computing where time predictability is absolutely critical) You don't know how many items will be in the list. With arrays, you may need to re-declare and copy memory if the array grows too big You don't need random access to any elements You want to be able to insert items in the middle of the list (such as a priority queue)

Arrays? Best when: You need indexed/random access to elements You know the number of elements in the array ahead of time so that you can allocate the correct amount of memory for the array You need speed when iterating through all the elements in sequence. Memory is a concern. Filled arrays take up less memory than linked lists. Each element in the array is just the data. Each linked list node requires the data as well as one (or more) pointers to the other elements in the linked list.

Binary trees? Best for: Binary Search Tree - Used in many search applications where data is constantly entering/leaving, such as the map and set objects in many languages' libraries. Heaps - Used in implementing efficient priority-queues, which in turn are used for scheduling processes in many operating systems, Quality-of-Service in routers, and A* (path-finding algorithm used in AI applications, including robotics and video games). Also used in heap-sort. GGM Trees - Used in cryptographic applications to generate a tree of pseudo-random numbers. Syntax Tree - Constructed by compilers and (implicitly) calculators to parse expressions.