Abstraktion och modellering VT 2015
|
|
- Felicia Simon
- 3 years ago
- Views:
From this document you will learn the answers to the following questions:
What is the number of a field in the OOP Example Pac - Man?
What does the OOP Example Game Pac - Man have?
What is the name of the OOP?
Transcription
1 TDDC74 Programmering: Abstraktion och modellering VT 2015 Johannes Schmidt Institutionen för datavetenskap Linköpings universitet
2 Lecture 9 Mutable structres, ADTs, OOP Abstract data types: queue, stack Mutable pairs, lists: singly / doubly linked list Object Oriented Programming (OOP) in Racket SICP-Book chapter: 3
3 An abstract data type: Stack Think of a stack as a pile of books (items): TOS: Top Of Stack. Insertion (push) and extraction (pop) only at the TOS. LIFO = last in, first out
4 An abstract data type: Stack ADT Stack Methods: push: put a given item on the stack. This item is then the new TOS. pop: remove the TOS-item and return it. Optional methods: size: determine the number of elements currently in the stack. empty?: check whether the stack is empty. peek: return the TOS-item without removing it.
5 An abstract data type: Queue Think of a queue as a queue of people (items): Insertion (enqueue) at the rear, extraction (dequeue) at the front. FIFO = first in, first out
6 An abstract data type: Queue ADT Queue Methods: enqueue: put a given item into the queue, at the rear. dequeue: remove an item from the queue, at the front. Optional methods: size: determine the number of elements currently in the queue. empty?: check whether the queue is empty. peek: return the front-item without removing it.
7 How to implement a stack, a queue? Singly linked list Doubly linked list?
8 Doubly linked list A doubly linked list with insertion and extraction at both ends can be used to implement both, stack and queue push pop enqueue dequeue - insert at front - extract at front - insert at rear - extract at front
9 How to implement singly / doubly linked lists? Singly linked list Easy: take on ordinary list Doubly linked list Easy: create a triple-object with selectors left, middle, right E.g. (define (make-triple left middle right) (mcons left (mcons middle right)))
10 Object Oriented Programming Is a programming paradigm. Idea: every problem can be described by objects and their interactions / relations. This helps creating abstractions and achieving encapsulation. Therefore: in order to solve a problem, break it down into subproblems, by identifying objects and how they interact with and relate to each other.
11 OOP Example Game Pac-Man Scenario: Pac-Man goes through a labyrinth, eats pellets and has to avoid being eaten/attacked by enemies. Identify Objects: Pac-Man Pellet Enemy Power pellet Source:
12 OOP Example Relations between Objects: Pac-Man eats Pellets Enemy eats/attacks Pac-Man Pac-Man eats Power pellet Pac-Man eats Enemy if eaten recently Power pellet Source:
13 Object Oriented Programming Is a programming paradigm. Idea: every problem can be described by objects and their interactions / relations. Relations between objects indicate what different properties the different objects should have. These properties are realized via fields (variables/data) and methods (procedures): Every object has its own fields and methods!
14 OOP Example Some fields of some Objects: Pac-Man: Lifes (0-3) Score ( ) State: recently Power pellet eaten? Enemy: Color State: currently eatable or not? Direction Speed Source:
15 OOP Example Some methods of some Objects: Pac-Man: (eat-enemy enemy) (reduce-life amount) (eat-pellet pellet) (die) Enemy: (eat-pac-man) (change-eatable-state value) (speed-up) (die) Source:
16 OOP Example Game Pac-Man Observation: some objects will occur just once, others several times Occurrences of Objects: 1x Pac-Man Nx Pellet 4x Enemy 4x Power pellet Source:
17 OOP Example Game Pac-Man Observation: some objects will occur just once, others several times Occurrences of Objects: 1x Pac-Man Nx Pellet 4x Enemy 4x Power pellet Solution: Classes! Source:
18 OOP - Classes A Class can be considered as a model for objects that share the same properties, but are still different individuals. If we have a class definition, we can then create an object from that class. This process is called instantiating. For this purpose every class provides a constructor.
19 OOP Example Game Pac-Man Classes for Pac-Man: Pac-Man Pellet Enemy Power-pellet Then instantiate One object of Pac-Man Many objects of Pellet Four objects of Enemy Four objects of Power-pellet Source:
20 OOP - Inheritance A Class can be considered as a model for objects that share the same properties, but are still different individuals. What if we have similar classes that share a lot of common properties but are not exactly the same? Solution: We can derive or inherit a class from another. Via Inheritance we obtain a derived class, or a subclass. Think of this as taking a copy of a class, and then modifying this copy according to our needs.
21 OOP Example Game Pac-Man Similar classes for Pac-Man: Pellet Power-pellet For instance make Power-pellet a subclass of Pellet, i.e. treat a Power-pellet as a special case of a Pellet. Alternatively: Have a common superclass, call it General-pellet. Then derive once an Ordinarypellet and once a Power-pellet. Source:
22 OOP in Racket - simple (define (make-pac-man lifes score pp-eaten) ; three fields (define (dispatch message. args) ; define different methods (cond ((eq? message 'eat-enemy) (if pp-eaten (void) 'not-possible)) dispatch) ((eq? message 'reduce-life) (set! lifes (- lifes (car args)))) ((eq? message 'eat-pellet) (set! score (+ score 1))) ((eq? message 'die) (void)) ; details to be implemented ; details to be implemented ((eq? message 'say-hello) (printf "Hi I am a happy pac-man with ~a lifes\n" lifes)) (else '(unkown message))))
23 OOP in Racket - simple (define (make-pac-man lifes score pp-eaten) ; three fields (define (dispatch message. args) ; define different methods (cond ((eq? message 'eat-enemy) (if pp-eaten (void) 'not-possible)) dispatch) ; create a Pac-Man: instantiate ; details to be implemented (define my-pac-man (make-pac-man 3 0 #f)) ((eq? message 'reduce-life) ; call some methods (set! lifes (- lifes (car(my-pac-man args)))) 'say-hello) (my-pac-man 'reduce-life 1) ((eq? message 'eat-pellet) (my-pac-man 'say-hello) (set! score (+ score 1))) ((eq? message 'die) Output: (void)) Hi I am a ; happy details pac-man to be with implemented 3 lifes Hi I am a happy pac-man with 2 lifes ((eq? message 'say-hello) (printf "Hi I am a happy pac-man with ~a lifes\n" lifes)) (else '(unkown message))))
24 OOP in Racket (define Pac-Man% (class object% ; fields (variables/data) (init-field lifes score pp-eaten) (super-new) ; superclass initialization (define/public (eat-enemy enemy) ; method (if pp-eaten (void) ; details to be implemented 'not-possible)) (define/public (reduce-life amount) (set! lifes (- lifes amount))) (define/public (eat-pellet pellet) (set! score (+ score 1))) (define/public (die) (void)) ; method ; method ; method ; details to be implemented (define/public (say-hello) (printf "Hi I am a happy pac-man with ~a lifes\n" lifes))))
25 OOP in Racket (define Pac-Man% (class object% ; fields (variables/data) (init-field lifes score pp-eaten) (super-new) ; superclass ; create initialization a Pac-Man: instantiate (define my-pac-man (make-object Pac-Man% 3 0 #f)) (define/public (eat-enemy enemy) ; method (if pp-eaten ; call some methods (void) ; details (send to my-pac-man be implemented say-hello) 'not-possible)) (send my-pac-man reduce-life 1) (define/public (reduce-life(send amount) my-pac-man ; method say-hello) (set! lifes (- lifes amount))) Output: (define/public (eat-pellet pellet) Hi I am a happy ; method pac-man with 3 lifes (set! score (+ score 1))) Hi I am a happy pac-man with 2 lifes (define/public (die) (void)) ; method ; details to be implemented (define/public (say-hello) (printf "Hi I am a happy pac-man with ~a lifes\n" lifes))))
26 OOP in Racket - Inheritance (define General-pellet% (class object% ; fields (variables/data) (init-field color position) (super-new) ; superclass initialization (define/public (get-type) ; method 'general))) (define Ordinary-pellet% (class General-pellet% (super-new) ; superclass initialization (define/override (get-type) ; method 'ordinary))) (define Power-pellet% (class General-pellet% (super-new) ; superclass initialization (define/override (get-type) ; method 'power)))
27 OOP in Racket - Inheritance (define General-pellet% (class object% We inherit from object% This is a special inbuilt base class ; fields (variables/data) (init-field color position) (super-new) ; superclass initialization (define/public (get-type) ; method 'general))) (define Ordinary-pellet% (class General-pellet% We inherit from General-pellet% (super-new) ; superclass initialization (define/override (get-type) ; method 'ordinary))) (define Power-pellet% (class General-pellet% And here too (super-new) ; superclass initialization (define/override (get-type) ; method 'power)))
28 OOP in Racket - Overriding (define General-pellet% (class object% ; fields (variables/data) (init-field color position) (super-new) ; superclass initialization (define/public (get-type) ; method 'general))) (define Ordinary-pellet% We inherit ALL fields and methods. (class General-pellet% (super-new) That ; superclass is: initialization (define/override (get-type) - no need to redefine ; fields method or methods 'ordinary))) - if we want to change a method, we need to explicitly override (redefine) it (define Power-pellet% (class General-pellet% (super-new) ; superclass initialization (define/override (get-type) ; method 'power)))
29 OOP in Racket - Instantiation (make-object <Class> <list of init-values>) (define my-pac-man (make-object Pac-Man% 3 0 #f)) ; Alternatively: (new <Class> [varname1 value1] [varname2 value2]...) (define my-pac-man (new Pac-Man% [lifes 3] [score 0] [pp-eaten #f]))
30 OOP in Racket calling methods From inside the class definition you call methods as usual. From outside special syntax is provided: (send <object> <method-name> <list of parameters>) ; e.g.: (send my-pac-man say-hello) (send my-pac-man reduce-life 1) (send my-pac-man say-hello)
31 OOP in Racket field vs init-field (define Pac-Man% (class object% ; init-fields, i.e. values MUST ; be provided during instantiation (init-field lifes score pp-eaten) ; ordinary fields, i.e. values must be provided ; right here (field [color 'red] [more-stuff 'hmblhmbl])...
32 OOP in Racket accessing fields From inside the class definition you access fields as usual variables. From outside special syntax is provided: (get-field <field-name> <object-name>) (set-field! <field-name> <object-name> value) E.g. (define my-pac-man (make-object Pac-Man% 3 0 #f)) (get-field color my-pac-man) (set-field! color my-pac-man 'green) But: avoid setting fields this way. Better provide your own methods to change the values of fields.
33 OOP in Racket Visibility public vs private (define Pac-Man% (class object% ; public fields (visible/accessible from outside) (init-field lifes score pp-eaten) (field [color 'red] [more-stuff 'hmblhmbl]) ; private fields (not visible from outside) (define internal-value 11439) ; public method (visible/accessible from outside) (define/public (eat-enemy enemy) ; method (if pp-eaten (void) ; details to be implemented 'not-possible)) ; private method (not visible from outside) (define (do-some-stuff parameter1)...)
34 OOP notions object, class field, method inherit, derive, extend subclass, superclass override
35 OOP purpose Remember: use OOP in order to create abstractions and to achieve encapsulation (hide implementation details). Therefore: keep as much as possible private, so it is not visible to the outside. Expose to the outside only what is absolutely necessary. Provide public methods to manipulate variables/fields, do not set them directly.
CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.
CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation
More informationThis lecture. Abstract data types Stacks Queues. ADTs, Stacks, Queues 1. 2004 Goodrich, Tamassia
This lecture Abstract data types Stacks Queues ADTs, Stacks, Queues 1 Abstract Data Types (ADTs) An abstract data type (ADT) is an abstraction of a data structure An ADT specifies: Data stored Operations
More informationChapter 3: Restricted Structures Page 1
Chapter 3: Restricted Structures Page 1 1 2 3 4 5 6 7 8 9 10 Restricted Structures Chapter 3 Overview Of Restricted Structures The two most commonly used restricted structures are Stack and Queue Both
More informationData Structures and Algorithms Stacks and Queues
Data Structures and Algorithms Stacks and Queues Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science University of San Francisco p.1/23 6-0: Stacks and
More informationWhat is a Stack? Stacks and Queues. Stack Abstract Data Type. Java Interface for Stack ADT. Array-based Implementation
Stacks and Queues What is a Stack? Stores a set of elements in a particular order Accessed in Last-In In-First-Out (LIFO) fashion Real life examples: Pile of books PEZ dispenser Cup trays in cafeteria
More informationCompuScholar, Inc. Alignment to Utah's Computer Programming II Standards
CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards Course Title: TeenCoder: Java Programming Course ISBN: 978 0 9887070 2 3 Course Year: 2015 Note: Citation(s) listed may represent
More informationGlossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
More informationClasses, Objects, and Methods
Classes, Objects, and Methods CS 5010 Program Design Paradigms "Bootcamp" Lesson 10.1 Mitchell Wand, 2012-2014 This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International
More informationLecture 7 Notes: Object-Oriented Programming (OOP) and Inheritance
Introduction to C++ January 19, 2011 Massachusetts Institute of Technology 6.096 Lecture 7 Notes: Object-Oriented Programming (OOP) and Inheritance We ve already seen how to define composite datatypes
More information1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
More informationCSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues. Linda Shapiro Spring 2016
CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues Linda Shapiro Registration We have 180 students registered and others who want to get in. If you re thinking of dropping
More informationData Structures Using C++ 2E. Chapter 5 Linked Lists
Data Structures Using C++ 2E Chapter 5 Linked Lists Doubly Linked Lists Traversed in either direction Typical operations Initialize the list Destroy the list Determine if list empty Search list for a given
More informationQueues Outline and Required Reading: Queues ( 4.2 except 4.2.4) COSC 2011, Fall 2003, Section A Instructor: N. Vlajic
Queues Outline and Required Reading: Queues ( 4. except 4..4) COSC, Fall 3, Section A Instructor: N. Vlajic Queue ADT Queue linear data structure organized according to first-in/first-out (FIFO) principle!
More informationObject-Oriented Programming
Object-Oriented Programming Programming with Data Types to enhance reliability and productivity (through reuse and by facilitating evolution) Object (instance) State (fields) Behavior (methods) Identity
More informationSt S a t ck a ck nd Qu Q eue 1
Stack and Queue 1 Stack Data structure with Last-In First-Out (LIFO) behavior In Out C B A B C 2 Typical Operations Pop on Stack Push isempty: determines if the stack has no elements isfull: determines
More informationAnalysis of a Search Algorithm
CSE 326 Lecture 4: Lists and Stacks 1. Agfgd 2. Dgsdsfd 3. Hdffdsf 4. Sdfgsfdg 5. Tefsdgass We will review: Analysis: Searching a sorted array (from last time) List ADT: Insert, Delete, Find, First, Kth,
More informationKITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
More informationAlgorithms and Data Structures
Algorithms and Data Structures Part 2: Data Structures PD Dr. rer. nat. habil. Ralf-Peter Mundani Computation in Engineering (CiE) Summer Term 2016 Overview general linked lists stacks queues trees 2 2
More informationHow to Build a Simple Pac-Man Game
How to Build a Simple Pac-Man Game For today's program, we are going to build a simple Pac-Man game. Pac-Man was one of the very first arcade games developed around 1980. For our version of Pac-Man we
More informationUniversidad Carlos III de Madrid
Universidad Carlos III de Madrid Algorithms and Data Structures (ADS) Bachelor in Informatics Engineering Computer Science Department Lists, Stacks and Queues. Authors: Isabel Segura Bedmar April 2011
More informationWORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER
WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER Course Outline (2015) Basic Programming With Procedural & Object Oriented Concepts (C, C++) Training Office# Road: 11, House: 1 A, Nikunja 2, Khilkhet,
More informationHistory OOP languages Year Language 1967 Simula-67 1983 Smalltalk
History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming
More information22c:31 Algorithms. Ch3: Data Structures. Hantao Zhang Computer Science Department http://www.cs.uiowa.edu/~hzhang/c31/
22c:31 Algorithms Ch3: Data Structures Hantao Zhang Computer Science Department http://www.cs.uiowa.edu/~hzhang/c31/ Linear Data Structures Now we can now explore some convenient techniques for organizing
More informationCHAPTER 4 ESSENTIAL DATA STRUCTRURES
CHAPTER 4 ESSENTIAL DATA STRUCTURES 72 CHAPTER 4 ESSENTIAL DATA STRUCTRURES In every algorithm, there is a need to store data. Ranging from storing a single value in a single variable, to more complex
More informationLinked Lists, Stacks, Queues, Deques. It s time for a chainge!
Linked Lists, Stacks, Queues, Deques It s time for a chainge! Learning Goals After this unit, you should be able to... Differentiate an abstraction from an implementation. Define and give examples of problems
More informationSTACKS,QUEUES, AND LINKED LISTS
STACKS,QUEUES, AND LINKED LISTS Stacks Queues Linked Lists Double-Ended Queues Case Study: A Stock Analysis Applet 1 Stacks Astack is a container of objects that are inserted and removed according to the
More informationCS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
More informationData Structures and Algorithms
Data Structures and Algorithms Lecture 4 2016 Stacks and... 1/28 1 2 Circular Linked 3 Queue Syntax and Functions in C++ 4 Stacks and... 2/28 FIFO and LIFO Outline Data structures can be specialized versions
More informationQUEUES. Primitive Queue operations. enqueue (q, x): inserts item x at the rear of the queue q
QUEUES A queue is simply a waiting line that grows by adding elements to its end and shrinks by removing elements from the. Compared to stack, it reflects the more commonly used maxim in real-world, namely,
More informationQuestions 1 through 25 are worth 2 points each. Choose one best answer for each.
Questions 1 through 25 are worth 2 points each. Choose one best answer for each. 1. For the singly linked list implementation of the queue, where are the enqueues and dequeues performed? c a. Enqueue in
More informationJava Software Structures
INTERNATIONAL EDITION Java Software Structures Designing and Using Data Structures FOURTH EDITION John Lewis Joseph Chase This page is intentionally left blank. Java Software Structures,International Edition
More informationa. Inheritance b. Abstraction 1. Explain the following OOPS concepts with an example
1. Explain the following OOPS concepts with an example a. Inheritance It is the ability to create new classes that contain all the methods and properties of a parent class and additional methods and properties.
More informationCS193j, Stanford Handout #10 OOP 3
CS193j, Stanford Handout #10 Summer, 2003 Manu Kumar OOP 3 Abstract Superclass Factor Common Code Up Several related classes with overlapping code Factor common code up into a common superclass Examples
More informationQueues and Stacks. Atul Prakash Downey: Chapter 15 and 16
Queues and Stacks Atul Prakash Downey: Chapter 15 and 16 Queues Queues occur in real life a lot. Queues at checkout Queues in banks In software systems: Queue of requests at a web servers Properties of
More informationLinked Lists Linked Lists, Queues, and Stacks
Linked Lists Linked Lists, Queues, and Stacks CSE 10: Introduction to C Programming Fall 200 Dynamic data structure Size is not fixed at compile time Each element of a linked list: holds a value points
More informationCpt S 223. School of EECS, WSU
Abstract Data Types 1 Topics Abstract Data Types (ADTs) Some basic ADTs: Lists Stacks Queues 2 Primitive Data Type vs. Abstract Data Types Primitive DT: ADT: programmer progra ammer Interface (API) e.g.,
More informationThe Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
More informationStacks. Stacks (and Queues) Stacks. q Stack: what is it? q ADT. q Applications. q Implementation(s) CSCU9A3 1
Stacks (and Queues) 1 Stacks Stack: what is it? ADT Applications Implementation(s) 2 CSCU9A3 1 Stacks and ueues A stack is a very important data structure in computing science. A stack is a seuence of
More informationA TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION
A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION Tao Chen 1, Tarek Sobh 2 Abstract -- In this paper, a software application that features the visualization of commonly used
More informationIntroduction to Data Structures
Introduction to Data Structures Albert Gural October 28, 2011 1 Introduction When trying to convert from an algorithm to the actual code, one important aspect to consider is how to store and manipulate
More informationC++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
More informationMAX = 5 Current = 0 'This will declare an array with 5 elements. Inserting a Value onto the Stack (Push) -----------------------------------------
=============================================================================================================================== DATA STRUCTURE PSEUDO-CODE EXAMPLES (c) Mubashir N. Mir - www.mubashirnabi.com
More information7. Object-Oriented Programming
7. Object-Oriented Programming 7.1 Introduction This chapter describes object-oriented computing and its use in data abstraction, particularly as it is understood in the Java language, including various
More informationAdvanced Data Structures
C++ Advanced Data Structures Chapter 8: Advanced C++ Topics Zhijiang Dong Dept. of Computer Science Middle Tennessee State University Chapter 8: Advanced C++ Topics C++ 1 C++ Syntax of 2 Chapter 8: Advanced
More informationIntroduction to Data Structures and Algorithms
Introduction to Data Structures and Algorithms Chapter: Elementary Data Structures(1) Lehrstuhl Informatik 7 (Prof. Dr.-Ing. Reinhard German) Martensstraße 3, 91058 Erlangen Overview on simple data structures
More information3 Abstract Data Types and Search
3 Abstract Data Types and Search Chapter Objectives Chapter Contents Prolog s graph search representations were described and built: Lists A recursive tree-walk algorithm The cut predicate,!, for Prolog
More informationSequential Data Structures
Sequential Data Structures In this lecture we introduce the basic data structures for storing sequences of objects. These data structures are based on arrays and linked lists, which you met in first year
More informationCourse: Programming II - Abstract Data Types. The ADT Stack. A stack. The ADT Stack and Recursion Slide Number 1
Definition Course: Programming II - Abstract Data Types The ADT Stack The ADT Stack is a linear sequence of an arbitrary number of items, together with access procedures. The access procedures permit insertions
More informationClass Overview. CSE 326: Data Structures. Goals. Goals. Data Structures. Goals. Introduction
Class Overview CSE 326: Data Structures Introduction Introduction to many of the basic data structures used in computer software Understand the data structures Analyze the algorithms that use them Know
More informationLast not not Last Last Next! Next! Line Line Forms Forms Here Here Last In, First Out Last In, First Out not Last Next! Call stack: Worst line ever!
ECE 551 C++ Programming, Data structures, and Algorithms Abstract Data Type: Stack Last In First Out (LIFO) 1 2 2 1 4 3 1 3 4 Stacks in Programming Worst line ever! 5 3 1 5 Stacks are not useful for waiting
More informationUNIVERSITY OF CALIFORNIA BERKELEY Engineering 7 Department of Civil and Environmental Engineering. Object Oriented Programming and Classes in MATLAB 1
UNIVERSITY OF CALIFORNIA BERKELEY Engineering 7 Department of Civil and Environmental Engineering Spring 2013 Professor: S. Govindjee Object Oriented Programming and Classes in MATLAB 1 1 Introduction
More informationAP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities
AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities The classroom is set up like a traditional classroom on the left side of the room. This is where I will conduct my
More informationDescription of Class Mutation Mutation Operators for Java
Description of Class Mutation Mutation Operators for Java Yu-Seung Ma Electronics and Telecommunications Research Institute, Korea ysma@etri.re.kr Jeff Offutt Software Engineering George Mason University
More informationCS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A
More informationAlgorithms and Data S tructures Structures Stack, Queues, and Applications Applications Ulf Leser
Algorithms and Data Structures Stack, Queues, and Applications Ulf Leser Content of this Lecture Stacks and Queues Tree Traversal Towers of Hanoi Ulf Leser: Alg&DS, Summer semester 2011 2 Stacks and Queues
More informationHands-On: Introduction to Object-Oriented Programming in LabVIEW
Version 13.11 1 Hr Hands-On: Introduction to Object-Oriented Programming in LabVIEW Please do not remove this manual. You will be sent an email which will enable you to download the presentations and an
More informationStructural Design Patterns Used in Data Structures Implementation
Structural Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: vniculescu@cs.ubbcluj.ro November,
More information7.1 Our Current Model
Chapter 7 The Stack In this chapter we examine what is arguably the most important abstract data type in computer science, the stack. We will see that the stack ADT and its implementation are very simple.
More informationCmpSci 187: Programming with Data Structures Spring 2015
CmpSci 187: Programming with Data Structures Spring 2015 Lecture #12 John Ridgway March 10, 2015 1 Implementations of Queues 1.1 Linked Queues A Linked Queue Implementing a queue with a linked list is
More informationLINKED DATA STRUCTURES
LINKED DATA STRUCTURES 1 Linked Lists A linked list is a structure in which objects refer to the same kind of object, and where: the objects, called nodes, are linked in a linear sequence. we keep a reference
More informationCommon Data Structures
Data Structures 1 Common Data Structures Arrays (single and multiple dimensional) Linked Lists Stacks Queues Trees Graphs You should already be familiar with arrays, so they will not be discussed. Trees
More informationSoftware Engineering Techniques
Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary
More informationJava (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
More informationDATA STRUCTURE - STACK
DATA STRUCTURE - STACK http://www.tutorialspoint.com/data_structures_algorithms/stack_algorithm.htm Copyright tutorialspoint.com A stack is an abstract data type ADT, commonly used in most programming
More informationAgile Software Development
Agile Software Development Lecturer: Raman Ramsin Lecture 13 Refactoring Part 3 1 Dealing with Generalization: Pull Up Constructor Body Pull Up Constructor Body You have constructors on subclasses with
More informationTopics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
More informationData Structures and Algorithms V22.0102. Otávio Braga
Data Structures and Algorithms V22.0102 Otávio Braga We use a stack When an operand is read, output it When an operator is read Pop until the top of the stack has an element of lower precedence Then push
More informationAn Introduction To UML Class Diagrams Classes
An Introduction To UML Class Diagrams Classes 1. Represent a user-created or defined data type a. they are an abstract data type (ADT) b. they implement data hiding and encapsulation c. they establish
More informationCEC225 COURSE COMPACT
CEC225 COURSE COMPACT Course GEC 225 Applied Computer Programming II(2 Units) Compulsory Course Duration Two hours per week for 15 weeks (30 hours) Lecturer Data Name of the lecturer: Dr. Oyelami Olufemi
More informationJava Programming Language
Lecture 1 Part II Java Programming Language Additional Features and Constructs Topics in Quantitative Finance: Numerical Solutions of Partial Differential Equations Instructor: Iraj Kani Subclasses and
More informationADTs,, Arrays, Linked Lists
1 ADTs,, Arrays, Linked Lists Outline and Required Reading: ADTs ( 2.1.2) Arrays ( 1.5) Linked Lists ( 4.3.1, 4.3.2) COSC 2011, Fall 2003, Section A Instructor: N. Vlajic Abstract Data Type (ADT) 2 abstract
More informationThe first program: Little Crab
CHAPTER 2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if-statement In the previous chapter,
More informationDATA STRUCTURE - QUEUE
DATA STRUCTURE - QUEUE http://www.tutorialspoint.com/data_structures_algorithms/dsa_queue.htm Copyright tutorialspoint.com Queue is an abstract data structure, somewhat similar to stack. In contrast to
More information1.00 Lecture 35. Data Structures: Introduction Stacks, Queues. Reading for next time: Big Java: 15.1-15.3. Data Structures
1.00 Lecture 35 Data Structures: Introduction Stacks, Queues Reading for next time: Big Java: 15.1-15.3 Data Structures Set of reusable classes used in algorithms, simulations, operating systems, applications
More informationPHP Object Oriented Classes and objects
Web Development II Department of Software and Computing Systems PHP Object Oriented Classes and objects Sergio Luján Mora Jaume Aragonés Ferrero Department of Software and Computing Systems DLSI - Universidad
More information2 The first program: Little Crab
2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if statement In the previous chapter, we
More informationPacman 3D. Suggestions Multiple levels Powerups that let Pacman chase and eat Ghosts; ghosts need to respawn
Mario 3D Mario is a classic game featuring a side scrolling 2D Mario character that can jump to avoid moving enemies and collect coins. In this 3D version, you will program a Mario like character to respond
More information3 Improving the Crab more sophisticated programming
3 Improving the Crab more sophisticated programming topics: concepts: random behavior, keyboard control, sound dot notation, random numbers, defining methods, comments In the previous chapter, we looked
More informationCourse: Programming II - Abstract Data Types. The ADT Queue. (Bobby, Joe, Sue, Ellen) Add(Ellen) Delete( ) The ADT Queues Slide Number 1
Definition Course: Programming II - Abstract Data Types The ADT Queue The ADT Queue is a linear sequence of an arbitrary number of items, together with access procedures. The access procedures permit addition
More information5 CLASSES CHAPTER. 5.1 Object-Oriented and Procedural Programming. 5.2 Classes and Objects 5.3 Sample Application: A Clock Class
CHAPTER 5 CLASSES class head class struct identifier base spec union class name 5.1 Object-Oriented and Procedural Programming 5.2 Classes and Objects 5.3 Sample Application: A Clock Class 5.4 Sample Application:
More informationCourse MS10975A Introduction to Programming. Length: 5 Days
3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: rwhitney@discoveritt.com Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days
More informationObject Oriented Design
Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and
More informationData Abstraction and Hierarchy
Data Abstraction and Hierarchy * This research was supported by the NEC Professorship of Software Science and Engineering. Barbara Liskov Affiliation: MIT Laboratory for Computer Science Cambridge, MA,
More informationThe Snake Game Java Case Study
The Snake Game Java Case Study John Latham January 27, 2014 Contents 1 Introduction 2 2 Learning outcomes 2 3 Description of the game 2 4 The classes of the program 4 5 The laboratory exercise and optional
More informationBuilding Java Programs
Building Java Programs Chapter 9 Lecture 9-1: Inheritance reading: 9.1 The software crisis software engineering: The practice of developing, designing, documenting, testing large computer programs. Large-scale
More informationThis session. Abstract Data Types. Modularisation. Naming modules. Functional Programming and Reasoning
This session Functional Programming and Reasoning Dr Hans Georg Schaathun University of Surrey After this session, you should be able to use ADT-s in software design be able to implement simple ADT-s in
More informationCh 7-1. Object-Oriented Programming and Classes
2014-1 Ch 7-1. Object-Oriented Programming and Classes May 10, 2014 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, Graduate School, Yeungnam University, KOREA (Tel : +82-53-810-2497;
More informationData Structures Using C++ 2E. Chapter 5 Linked Lists
Data Structures Using C++ 2E Chapter 5 Linked Lists Test #1 Next Thursday During Class Cover through (near?) end of Chapter 5 Objectives Learn about linked lists Become aware of the basic properties of
More informationCurriculum Map. Discipline: Computer Science Course: C++
Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code
More information! stack, queue, priority queue, dictionary, sequence, set e.g., a Stack is a list implements a LIFO policy on additions/deletions.
Abstract Data Types and Data Structures Often, these terms are used as synonyms. But it s better to think of them this way: ADTs and Data Structures An Abstract Data Type (ADT) represents a particular
More informationData Structures. Jaehyun Park. CS 97SI Stanford University. June 29, 2015
Data Structures Jaehyun Park CS 97SI Stanford University June 29, 2015 Typical Quarter at Stanford void quarter() { while(true) { // no break :( task x = GetNextTask(tasks); process(x); // new tasks may
More informationPES Institute of Technology-BSC QUESTION BANK
PES Institute of Technology-BSC Faculty: Mrs. R.Bharathi CS35: Data Structures Using C QUESTION BANK UNIT I -BASIC CONCEPTS 1. What is an ADT? Briefly explain the categories that classify the functions
More informationProgramming Languages Featherweight Java David Walker
Programming Languages Featherweight Java David Walker Overview Featherweight Java (FJ), a minimal Javalike language. Models inheritance and subtyping. Immutable objects: no mutation of fields. Trivialized
More informationLinear ADTs. Restricted Lists. Stacks, Queues. ES 103: Data Structures and Algorithms 2012 Instructor Dr Atul Gupta
Linear DT-1: Restricted Lists Stacks, Queues tul Gupta Restricted Lists Stack Queue Circular queue Priority queue General Lists rrays Linked list Circular list Doubly linked list Linear DTs 1 Stacks Using
More informationBSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering
BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security & BSc. (Hons.) Software Engineering Cohort: BIS/05/FT BCNS/05/FT BSE/05/FT Examinations for 2005-2006 / Semester
More informationFundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
More informationYosemite National Park, California. CSE 114 Computer Science I Inheritance
Yosemite National Park, California CSE 114 Computer Science I Inheritance Containment A class contains another class if it instantiates an object of that class HAS-A also called aggregation PairOfDice
More informationOutline. Computer Science 331. Stack ADT. Definition of a Stack ADT. Stacks. Parenthesis Matching. Mike Jacobson
Outline Computer Science 1 Stacks Mike Jacobson Department of Computer Science University of Calgary Lecture #12 1 2 Applications Array-Based Linked List-Based 4 Additional Information Mike Jacobson (University
More information14 Stacks, Queues, And Linked Lists
14-1 Java Au Naturel by William C. Jones 14-1 14 Stacks, Queues, And Linked Lists Overview This chapter requires that you have a solid understanding of arrays (Chapter Seven) and have studied Exceptions
More informationAssignment # 2: Design Patterns and GUIs
CSUS COLLEGE OF ENGINEERING AND COMPUTER SCIENCE Department of Computer Science CSc 133 Object-Oriented Computer Graphics Programming Spring 2014 John Clevenger Assignment # 2: Design Patterns and GUIs
More information