Object-Oriented Software Construction
|
|
- Elmer May
- 5 years ago
- Views:
Transcription
1 1 Object-Oriented Software Construction Bertrand Meyer
2 Reading assignment 2 OOSC2 Chapter 10: Genericity
3 3 Lecture 4: Abstract Data Types
4 Abstract Data Types (ADT 4 Why use the objects? The need for data abstraction Moving away from the physical representation Abstract data type specifications Applications to software design
5 The first step 5 A system performs certain actions on certain data. Basic duality: Functions [or: Operations, Actions] Objects [or: Data] Action Object Processor
6 Finding the structure 6 The structure of the system may be deduced from an analysis of the functions (1 or the objects (2. Resulting analysis and design method: Process-based decomposition: classical (routines Object-oriented decomposition
7 Arguments for using objects 7 Reusability: Need to reuse whole data structures, not just operations Extendibility, Continuity: Objects remain more stable over time. Employee information Hours worked Produce Paychecks Paychecks
8 Object technology: A first definition 8 Object-oriented software construction is the approach to system structuring that bases the architecture of software systems on the types of objects they manipulate not on the function they achieve.
9 The O-O designer s motto 9 Ask NOT first WHAT the system does: Ask WHAT it does it TO!
10 Issues of object-oriented design 10 How to find the object types. How to describe the object types. How to describe the relations and commonalities between object types. How to use object types to structure programs.
11 Description of objects 11 Consider not a single object but a type of objects with similar properties. Define each type of objects not by the objects physical representation but by their behavior: the services (FEATURES they offer to the rest of the world. External, not internal view: ABSTRACT DATA TYPES
12 The theoretical basis 12 The main issue: How to describe program objects (data structures: Completely Unambiguously Without overspecifying? (Remember information hiding
13 A stack, concrete object 13 (array_up capacity count Push operation: count := count + 1 representation [count] := x (array_down representation free Push operation: representation [free] := x free := free - 1 new n (linked 1 representation item previous item previous previous item Push operation: new (n n.item := x n.previous := last head := n
14 A stack, concrete object 14 (array_up capacity count Push operation: count := count + 1 representation [count] := x (array_down representation free Push operation: representation [free] := x free := free - 1 new n (linked 1 representation item previous item previous previous item Push operation: new (n n.item := x n.previous := last head := n
15 Stack: An abstract data type 15 Types: STACK [G] -- G: Formal generic parameter Functions (Operations: put: STACK [G] G STACK [G] remove: STACK [G] STACK [G] item: STACK [G] G empty: STACK [G] BOOLEAN new: STACK [G]
16 Using functions to model operations 16, = s x s
17 Reminder: Partial functions 17 A partial function, identified here by, is a function that may not be defined for all possible arguments. Example from elementary mathematics: inverse: R R, such that inverse (x = 1 / x
18 The STACK ADT (cont d 18 Preconditions: s: STACK [G] require not empty (s item (s: STACK [G] require not empty (s Axioms: For all x: G, s: STACK [G] item (s, x = x s, x = s empty (new (or: empty (new = True not empty (s, x, = s x s (or: empty (s, x = False
19 Exercises 19 Adapt the preceding specification of stacks (LIFO, Last-In First-Out to describe queues instead (FIFO. Adapt the preceding specification of stacks to account for bounded stacks, of maximum size capacity. Hint: put becomes a partial function.
20 Formal stack expressions 20 value = item (put (new, x8, x7, x6, item (new, x5, x4, x2, x1
21 Expressed differently 21 value = item (new, x8, x7, x6, item (new, x5, x4, x2, x1 s1 = new s2 = s1, x8, x7, x6 s3 = s2 s4 = new s5 = s4, x5, x4 s6 = s5 y1 = item (s6 s7 = s3, y1 s8 = s7, x2 s9 = s8 s10 = s9, x1 s11 = s10 value = item (s11
22 Expression reduction (1/10 22 value = item ( x7 x8, x1 x6 new, x8, x7, x6, item ( new, x5, x4, x2 x4 x5 Stack 1 Stack 2
23 Expression reduction (2/10 23 put x6 remove value = item ( x7 x7 x7 x4 x8 x8 x8 x5 Stack 1 Stack 2 new, x8, x7, x6, item ( new, x5, x4, x2, x1
24 Expression reduction (3/10 24 value = item ( x7 x7 x7 x4 x8 x8 x8 x5 Stack 1 Stack 2 new, x8, x7, x6, item ( new, x5, x4, x2, x1 put x2 remove
25 Expression reduction (4/10 25 value = item ( x7 x8, x1 put new, x8, x7, x6, item ( new, x5, x4, x2 x5 x4 x5 Stack 1 Stack 2 remove x5
26 Expression reduction (5/10 26 value = item ( x7 x8, x1 Stack 1 item new, x8, x7, x6, item ( new, x5, x4, x2 x5 Stack 2
27 Expression reduction (6/10 27 value = item ( x7 x8, x1 Stack 1 new, x8, x7, x6, item ( new, x5, x4, x2 x5 Stack 2
28 Expression reduction (7/10 28 value = item (, x1 new, x8, x7, x6, item ( new, x5, x4, x2 x5 x7 x8 Stack 3
29 Expression reduction (8/10 put x1 remove 29 value = item (, x1 x5 x7 x8 new, x8, x7, x6, item ( new, x5, x4, x2 x5 x7 x8 Stack 3 x5 x7 x8
30 Expression reduction (9/10 30 value = item (, x1 x5 x7 x8 Stack 3 item new, x8, x7, x6, item ( new, x5, x4, x2
31 Expression reduction (10/10 31 value = item ( value = x5, x1 new, x8, x7, x6, item ( new, x5, x4, x2 x5 x7 x8 Stack 3
32 Expressed differently 32 value = item (new, x8, x7, x6, item (new, x5, x4, x2, x1 s1 = new s2 = s1, x8, x7, x6 s3 = s2 s4 = new s5 = s4, x5, x4 s6 = s5 y1 = item (s6 s7 = s3, y1 s8 = s7, x2 s9 = s8 s10 = s9, x1 s11 = s10 value = item (s11
33 An operational view of the expression 33 x6 x7 x7 x4 y1 s1 (empty x8 s2 x8 s3 s4 (empty x5 s5 x5 s6 x2 x1 x5 x5 x5 x7 x7 x7 x8 s7 (s9, s11 x8 s8 x8 s10 value = item (new, x8, x7, x6, item (new, x5, x4, x2, x1
34 Sufficient completeness 34 Three forms of functions in the specification of an ADT T: Creators: OTHER T e.g. new Queries: T... OTHER Commands: T... T e.g. item, empty e.g. put, remove Sufficiently complete specification: a Query Expression of the form: f (... where f is a query, may be reduced through application of the axioms to a form not involving T
35 Stack: An abstract data type 35 Types: STACK [G] -- G: Formal generic parameter Functions (Operations: put: STACK [G] G STACK [G] remove: STACK [G] STACK [G] item: STACK [G] G empty: STACK [G] BOOLEAN new: STACK [G]
36 ADT and software architecture 36 Abstract data types provide an ideal basis for modularizing software. Identify every module with an implementation of an abstract data type, i.e. the description of a set of objects with a common interface. The interface is defined by a set of operations (implementing the functions of the ADT constrained by abstract properties (the axioms and preconditions. The module consists of a representation for the abstract data type and an implementation for each of the operations. Auxiliary operations may also be included.
37 Implementing an ADT 37 Three components: (E1 The ADT s specification: functions, axioms, preconditions. (Example: stacks. (E2 Some representation choice. (Example: <representation, count>. (E3 A set of subprograms (routines and attributes, each implementing one of the functions of the ADT specification (E1 in terms of the chosen representation (E2. (Example: routines put, remove, item, empty, new.
38 A choice of stack representation 38 (array_up capacity count Push operation: count := count + 1 representation [count] := x representation
39 Application to information hiding 39 Public part: ADT specification (E1 Secret part: Choice of representation (E2 Implementation of functions by features (E3
40 Object technology: A first definition 40 Object-oriented software construction is the approach to system structuring that bases the architecture of software systems on the types of objects they manipulate not on the function they achieve.
41 Object technology: More precise definition 41 Object-oriented software construction is the construction of software systems as structured collections of (possibly partial abstract data type implementations.
42 Classes: The fundamental structure 42 Merging of the notions of module and type: Module = Unit of decomposition: set of services Type = Description of a set of run-time objects ( instances of the type The connection: The services offered by the class, viewed as a module, are the operations available on the instances of the class, viewed as a type.
43 Class relations 43 Two relations: Client Heir
44 Overall system structure 44 space_before space_after CHUNK add_space_before add_space_after FEATURES FIGURE word_count justified? PARAGRAPH add_word remove_word justify unjustify QUERIES length font WORD COMMANDS set_font hyphenate_on hyphenate_off Inheritance Client
45 A very deferred class 45 deferred class COUNTER feature item: INTEGER is deferred end -- Counter value up is -- Increase item by 1. deferred ensure item = old item + 1 end down is -- Decrease item by 1. deferred ensure item = old item 1 invariant end end item >= 0
46 46 End of lecture 4
Software Architecture. Abstract Data Types
Software Architecture Abstract Data Types Mathematical description An ADT is a mathematical specification Describes the properties and the behavior of instances of this type Doesn t describe implementation
More informationSoftware Architecture. Abstract Data Types
Software Architecture Abstract Data Types Mathematical description An ADT is a mathematical specification Describes the properties and the behavior of instances of this type Doesn t describe implementation
More information1. Quality issues (5 points)
ETH Zurich Computer Science Course: Advanced Topics in Object Technology, by Bertrand Meyer Summer semester 2003 Exam (prepared by Karine Arnout) 2 July 2003 10:00 to 12:00 Name:.. Id-Nr:.. No notes, computers,
More informationCS 617 Object Oriented Systems Lecture 3 Object Abstractions, Encapsulation, Abstract Data Types 3:30-5:00pm Thu, Jan 10
The Object Abstraction CS 617 Object Oriented Systems Lecture 3 Object Abstractions,, Abstract Data Types 3:30-5:00pm Thu, Jan 10 Rushikesh K Joshi Department of Computer Science and Engineering Indian
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 14: Container Data Structures Topics for this lecture Containers and genericity
More informationChapter 1: Object-Oriented Programming Using C++
Chapter 1: Object-Oriented Programming Using C++ Objectives Looking ahead in this chapter, we ll consider: Abstract Data Types Encapsulation Inheritance Pointers Polymorphism Data Structures and Algorithms
More informationComputer Science BS Degree - Data Structures (I2206) Abstract Data Types (ADT)
Abstract Data Types (ADT) 70 Hierarchy of types Each type is implemented in terms if the types lower in the hierarchy Level 0 Bit Byte Word Level 1 Integer Real Char Boolean Pointer Level 2 Array Record
More informationData Abstraction and Specification of ADTs
CITS2200 Data Structures and Algorithms Topic 4 Data Abstraction and Specification of ADTs Example The Reversal Problem and a non-adt solution Data abstraction Specifying ADTs Interfaces javadoc documentation
More informationControl flow in Eiffel
Announcements Assignment will be posted this week.» We ll make sure you have enough time to it! A little more Eiffel, Genericity and ADTs Week 3, Lecture 4 January 16 Section N Review What is the definition
More informationContainers and genericity. A standardized naming scheme. Cursor properties. Lists. Adding a cell. A specific implementation: (singly) linked lists
Topics for this lecture Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Containers and genericity Container operations Prof. Dr. Bertrand Meyer Lists October
More informationLecture 1. Abstraction
Lecture 1 Abstraction 1 Programming Techniques Unstructured Programming Procedural Programming Modular & Structural Programming Abstract Data Type Object-Oriented Programming 2 Unstructured Programming
More informationThe architecture of Eiffel software 3.1 OVERVIEW classes clusters systems
3 Draft 5.02.00-0, 15 August 2005 (Santa Barbara). Extracted from ongoing work on future third edition of Eiffel: The Language. Copyright Bertrand Meyer 1986-2005. Access restricted to purchasers of the
More informationWeek 6. Data structures
1 2 3 4 5 n Week 6 Data structures 6 7 n 8 General remarks We start considering Part III Data Structures from CLRS. As a first example we consider two special of buffers, namely stacks and queues. Reading
More informationSoftware Architecture 4. July 2005
Chair of Software Engineering Bertrand Meyer Software Architecture 4. July 2005 Name, First name:... I confirm with my signature, that I was able to take this exam under regular conditions and that I have
More informationData Structures. BSc in Computer Science University of New York, Tirana. Assoc. Prof. Marenglen Biba 1-1
Data Structures BSc in Computer Science University of New York, Tirana Assoc. Prof. Marenglen Biba 1-1 General info Course : Data Structures (3 credit hours) Instructor : Assoc. Prof. Marenglen Biba Office
More informationData Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1
Design Principles Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques 2-1 Data Structures Data Structure - A systematic way of organizing and accessing
More informationClasses! The Static Structure!
Classes The Static Structure Abstract data types equipped with a possibly partial implementation 04-1 Style Rules Pick a style and stick to it Recommend that you use Eiffel style or close approximation»
More information1 P age DS & OOPS / UNIT II
UNIT II Stacks: Definition operations - applications of stack. Queues: Definition - operations Priority queues - De que Applications of queue. Linked List: Singly Linked List, Doubly Linked List, Circular
More informationEC8393FUNDAMENTALS OF DATA STRUCTURES IN C Unit 3
UNIT 3 LINEAR DATA STRUCTURES 1. Define Data Structures Data Structures is defined as the way of organizing all data items that consider not only the elements stored but also stores the relationship between
More informationdata structures and algorithms lecture 6
data structures and algorithms 2017 09 21 lecture 6 overview lower bound counting sort radix sort stacks queues material question we have seen for example insertion sort: worst-case in O(n 2 ) merge sort:
More informationSequence Abstract Data Type
1 Sequence Abstract Data Type Table of Contents Introduction.. 1 Objects for the sequence data type.. 2 The sequence as an object. 2.1 Sequence components. 2.2 Operations on sequences 3 Enquiry operations..
More informationCpt S 122 Data Structures. Course Review Midterm Exam # 1
Cpt S 122 Data Structures Course Review Midterm Exam # 1 Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Midterm Exam 1 When: Friday (09/28) 12:10-1pm Where:
More informationAn Annotated Language
Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of
More informationData Structures and Algorithms. Chapter 1
Data Structures Dr Ahmed Rafat Abas Computer Science Dept, Faculty of Computer and Information, Zagazig University arabas@zu.edu.eg http://www.arsaliem.faculty.zu.edu.eg/ Data Structures and Algorithms
More informationHoare logic. A proof system for separation logic. Introduction. Separation logic
Introduction Hoare logic Lecture 6: Examples in separation logic In the previous lecture, we saw how reasoning about pointers in Hoare logic was problematic, which motivated introducing separation logic.
More informationAssertions. Assertions - Example
References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 11/13/2003 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,
More information12 Abstract Data Types
12 Abstract Data Types 12.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define the concept of an abstract data type (ADT). Define
More informationData Structures and Algorithms
Data Structures and Algorithms About the course (objectives, outline, recommended reading) Problem solving Notions of Algorithmics (growth of functions, efficiency, programming model, example analysis)
More information[Ch 6] Set Theory. 1. Basic Concepts and Definitions. 400 lecture note #4. 1) Basics
400 lecture note #4 [Ch 6] Set Theory 1. Basic Concepts and Definitions 1) Basics Element: ; A is a set consisting of elements x which is in a/another set S such that P(x) is true. Empty set: notated {
More informationLecture 13: Introduction to inheritance and genericity
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 13: Introduction to inheritance and genericity On the menu for today (& next
More informationCS S-04 Stacks and Queues 1. An Abstract Data Type is a definition of a type based on the operations that can be performed on it.
CS245-2017S-04 Stacks and Queues 1 04-0: Abstract Data Types An Abstract Data Type is a definition of a type based on the operations that can be performed on it. An ADT is an interface Data in an ADT cannot
More informationData Structures and Algorithms
Data Structures and Algorithms CS245-2017S-04 Stacks and Queues David Galles Department of Computer Science University of San Francisco 04-0: Abstract Data Types An Abstract Data Type is a definition of
More informationExercise 3: Objects, Design by Contract. Master Solution
Exercise 3: Objects, Design by Contract Hand-out: 23 April 2004 Due: 30 April 2004 Master Solution 1. Summary: Objects, Design by Contract 1.1 Feature categories No result Command Procedure No result Routine
More informationLecture 14: More Inheritance & Genericity
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer October 2006 February 2007 MP1 Lecture 14: More Inheritance & Genericity 2 Genericity:
More informationABSTRACT DATA TYPES (ADTS) COMP1927 Computing 2 16x1 Sedgewick Chapter 4
ABSTRACT DATA TYPES (ADTS) COMP1927 Computing 2 16x1 Sedgewick Chapter 4 ABSTRACTION To understand a system, it should be enough to understand what its components do without knowing how Watching a television
More informationStacks. stacks of dishes or trays in a cafeteria. Last In First Out discipline (LIFO)
Outline stacks stack ADT method signatures array stack implementation linked stack implementation stack applications infix, prefix, and postfix expressions 1 Stacks stacks of dishes or trays in a cafeteria
More informationLecture 4. The Java Collections Framework
Lecture 4. The Java s Framework - 1 - Outline Introduction to the Java s Framework Iterators Interfaces, Classes and Classes of the Java s Framework - 2 - Learning Outcomes From this lecture you should
More informationStacks Fall 2018 Margaret Reid-Miller
Stacks 15-121 Fall 2018 Margaret Reid-Miller Today Exam 2 is next Tuesday, October 30 Today: Quiz 5 solutions Recursive add from last week (see SinglyLinkedListR.java) Stacks ADT (Queues on Thursday) ArrayStack
More informationCpt S 122 Data Structures. Templatized Stack
Cpt S 122 Data Structures Templatized Stack Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Test # 2 Jia XU (Lab Section 3) Xiaoyu Zhang (Lab Section 3) Anh
More informationData Structure using C++ Lecture 04. Data Structures and algorithm analysis in C++ Chapter , 3.2, 3.2.1
Data Structure using C++ Lecture 04 Reading Material Data Structures and algorithm analysis in C++ Chapter. 3 3.1, 3.2, 3.2.1 Summary Infix to Postfix Example 1: Infix to Postfix Example 2: Postfix Evaluation
More informationCSCA48 Summer 2018 Week 3: Priority Queue, Linked Lists. Marzieh Ahmadzadeh University of Toronto Scarborough
CSCA48 Summer 2018 Week 3: Priority Queue, Linked Lists Marzieh Ahmadzadeh University of Toronto Scarborough Administrative Detail All practicals are up on course website. Term test # 1 and #2 schedule
More informationLecture 7: Data Abstractions
Lecture 7: Data Abstractions Abstract Data Types Data Abstractions How to define them Implementation issues Abstraction functions and invariants Adequacy (and some requirements analysis) Towards Object
More informationQueues. Lesson 4. CS 32: Data Structures Dept. of Computer Science
Queues Lesson 4 Outline What is a queue? Straight queue Circular Queue Sequential Implementation Linked Implementation Application: Topological sort Deques Final Notes Outline What is a queue? Straight
More informationcsci 210: Data Structures Stacks and Queues
csci 210: Data Structures Stacks and Queues 1 Summary Topics Stacks and Queues as abstract data types ( ADT) Implementations arrays linked lists Analysis and comparison Applications: searching with stacks
More informationCSC148H Week 3. Sadia Sharmin. May 24, /20
CSC148H Week 3 Sadia Sharmin May 24, 2017 1/20 Client vs. Developer I For the first couple of weeks, we have played the role of class designer I However, you are also often in the opposite role: when a
More informationThe State Design Pattern
The State Design Pattern Readings: OOSC2 Chapter 20 EECS3311 A: Software Design Fall 2018 CHEN-WEI WANG Motivating Problem Consider the reservation panel of an online booking system: 2 of 28 State Transition
More informationThe Java Collections Framework. Chapters 7.5
The Java s Framework Chapters 7.5 Outline Introduction to the Java s Framework Iterators Interfaces, Classes and Classes of the Java s Framework Outline Introduction to the Java s Framework Iterators Interfaces,
More informationCPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues
CPSC 221: Algorithms and Data Structures Lecture #1: Stacks and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 is available.
More informationAdding Contracts to C#
Adding Contracts to C# Peter Lagace ABSTRACT Design by contract is a software engineering technique used to promote software reliability. In order to use design by contract the selected programming language
More informationarxiv: v1 [cs.se] 30 Mar 2010
Specifying Reusable Components arxiv:1003.5777v1 [cs.se] 30 Mar 2010 Nadia Polikarpova Carlo A. Furia Bertrand Meyer Abstract Reusable software components need well-defined interfaces, rigorously and completely
More informationReasoning About Programs Panagiotis Manolios
Reasoning About Programs Panagiotis Manolios Northeastern University April 2, 2016 Version: 95 Copyright c 2016 by Panagiotis Manolios All rights reserved. We hereby grant permission for this publication
More informationLIFO : Last In First Out
Introduction Stack is an ordered list in which all insertions and deletions are made at one end, called the top. Stack is a data structure that is particularly useful in applications involving reversing.
More informationObject-Oriented Design principles Designing for reuse
Programming in the Large Bertrand Meyer Lesson 18 Object-Oriented Design principles Designing for reuse Last update: 7 June 2004 Operands and options Two possible kinds of argument to a feature: Operands:
More informationCS24 Week 4 Lecture 2
CS24 Week 4 Lecture 2 Kyle Dewey Overview Linked Lists Stacks Queues Linked Lists Linked Lists Idea: have each chunk (called a node) keep track of both a list element and another chunk Need to keep track
More informationCSC 1052 Algorithms & Data Structures II: Interfaces
CSC 1052 Algorithms & Data Structures II: Interfaces Professor Henry Carter Spring 2018 Recap Evaluating efficiency means many different things depending on context Complexity can measure time or space
More informationEINDHOVEN UNIVERSITY OF TECHNOLOGY
EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics & Computer Science Exam Programming Methods, 2IP15, Wednesday 17 April 2013, 09:00 12:00 TU/e THIS IS THE EXAMINER S COPY WITH (POSSIBLY INCOMPLETE)
More informationData Structures and Algorithms for Engineers
04-630 Data Structures and Algorithms for Engineers David Vernon Carnegie Mellon University Africa vernon@cmu.edu www.vernon.eu Data Structures and Algorithms for Engineers 1 Carnegie Mellon University
More informationDATA STRUCTURES CHAPTER 1
DATA STRUCTURES CHAPTER 1 FOUNDATIONAL OF DATA STRUCTURES This unit introduces some basic concepts that the student needs to be familiar with before attempting to develop any software. It describes data
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 4 Thomas Wies New York University Review Last week Control Structures Selection Loops Adding Invariants Outline Subprograms Calling Sequences Parameter
More information6.001 Notes: Section 4.1
6.001 Notes: Section 4.1 Slide 4.1.1 In this lecture, we are going to take a careful look at the kinds of procedures we can build. We will first go back to look very carefully at the substitution model,
More informationAlgorithms and Data Structures
Algorithms and Data Structures Data Types Ulf Leser Content of this Lecture Example Abstract Data Types Lists, Stacks, and Queues Realization in Java Ulf Leser: Algorithms and Data Structures, Summer Semester
More informationinfix expressions (review)
Outline infix, prefix, and postfix expressions queues queue interface queue applications queue implementation: array queue queue implementation: linked queue application of queues and stacks: data structure
More informationAlgorithms and Data Structures
Algorithms and Data Structures Data Types Marius Kloft Content of this Lecture Example Abstract Data Types Lists, Stacks, and Queues Realization in Java Marius Kloft: Alg&DS, Summer Semester 2016 2 Problem
More informationLecture 04 FUNCTIONS AND ARRAYS
Lecture 04 FUNCTIONS AND ARRAYS 1 Motivations Divide hug tasks to blocks: divide programs up into sets of cooperating functions. Define new functions with function calls and parameter passing. Use functions
More informationComputer Science 9608 (Notes) Chapter: 4.1 Computational thinking and problem-solving
In Computer Science, an abstract data type (ADT) is a mathematical model for a certain data type or structures. This doesn t mean that the ADTs cannot be programmed. But that we must first understand them
More informationIndex. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107
A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105
More informationCPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues
CPSC 221: Algorithms and Data Structures ADTs, Stacks, and Queues Alan J. Hu (Slides borrowed from Steve Wolfman) Be sure to check course webpage! http://www.ugrad.cs.ubc.ca/~cs221 1 Lab 1 available very
More informationAlgorithms and Data Structures
Algorithms and Data Structures PD Dr. rer. nat. habil. Ralf Peter Mundani Computation in Engineering / BGU Scientific Computing in Computer Science / INF Summer Term 2018 Part 2: Data Structures PD Dr.
More informationLecture 1. Introduction
Lecture 1 Introduction 1 Lecture Contents 1. What is an algorithm? 2. Fundamentals of Algorithmic Problem Solving 3. Important Problem Types 4. Fundamental Data Structures 2 1. What is an Algorithm? Algorithm
More informationData abstractions: ADTs Invariants, Abstraction function. Lecture 4: OOP, autumn 2003
Data abstractions: ADTs Invariants, Abstraction function Lecture 4: OOP, autumn 2003 Limits of procedural abstractions Isolate implementation from specification Dependency on the types of parameters representation
More informationLinked Lists, Stacks, and Queues
Department of Computer Science and Engineering Chinese University of Hong Kong In a nutshell, a data structure describes how data are stored in memory, in order to facilitate certain operations. In all
More informationUse of Generic Parameters Iterator and Singleton Patterns
Use of Generic Parameters Iterator and Singleton Patterns EECS3311 A: Software Design Fall 2018 CHEN-WEI WANG Generic Collection Class: Motivation (1) class STRING _STACK feature {NONE} -- Implementation
More informationData structure and algorithm in Python
Data structure and algorithm in Python Stacks, Queues and Deques Xiaoping Zhang School of Mathematics and Statistics, Wuhan University Table of contents 1. Stacks 2. Queue 3. Double-Ended Queues 1 Stacks
More informationCpt S 122 Data Structures. Course Review FINAL. Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University
Cpt S 122 Data Structures Course Review FINAL Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Final When: Wednesday (12/12) 1:00 pm -3:00 pm Where: In Class
More information16. Dynamic Data Structures
Data Structures 6. Dynamic Data Structures A data structure is a particular way of organizing data in a computer so that it can be used efficiently Linked lists, Abstract data types stack, queue, Sorted
More informationINCREMENTAL SOFTWARE CONSTRUCTION WITH REFINEMENT DIAGRAMS
INCREMENTAL SOFTWARE CONSTRUCTION WITH REFINEMENT DIAGRAMS Ralph-Johan Back Abo Akademi University July 6, 2006 Home page: www.abo.fi/~backrj Research / Current research / Incremental Software Construction
More informationCMSC 341. Linked Lists, Stacks and Queues. CMSC 341 Lists, Stacks &Queues 1
CMSC 341 Linked Lists, Stacks and Queues CMSC 341 Lists, Stacks &Queues 1 Goal of the Lecture To complete iterator implementation for ArrayList Briefly talk about implementing a LinkedList Introduce special
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Exercise Session 10 News Mock exam in 2 weeks (December 6 th, 7 th ) You have to be present
More informationSTACKS AND QUEUES. Problem Solving with Computers-II
STACKS AND QUEUES Problem Solving with Computers-II 2 Stacks container class available in the C++ STL Container class that uses the Last In First Out (LIFO) principle Methods i. push() ii. iii. iv. pop()
More informationHow to Win Coding Competitions: Secrets of Champions. Week 2: Computational complexity. Linear data structures Lecture 5: Stack. Queue.
How to Win Coding Competitions: Secrets of Champions Week 2: Computational complexity. Linear data structures Lecture 5: Stack. Queue. Deque Pavel Krotkov Saint Petersburg 2016 General overview Stack,
More information1 Abstract Data Types (11 Points)
Legi-Nr.:... 1 Abstract Data Types (11 Points) In this task you will write an abstract data type for a simple tree structure that stores integers in its nodes and whose nodes always have either no children
More informationData Structures and Algorithms for Engineers
04-630 Data Structures and Algorithms for Engineers David Vernon Carnegie Mellon University Africa vernon@cmu.edu www.vernon.eu Data Structures and Algorithms for Engineers 1 Carnegie Mellon University
More informationClasses The Static Structure
Classes The Static Structure Abstract data types equipped with a possibly partial implementation 04-1 Style Rules Read page 180 Pick a style and stick to it Recommend that you use Eiffel style or close
More informationResearch Collection. Reusable mathematical models. Master Thesis. ETH Library. Author(s): Widmer, Tobias K. Publication Date: 2004
Research Collection Master Thesis Reusable mathematical models Author(s): Widmer, Tobias K. Publication Date: 2004 Permanent Link: https://doi.org/10.3929/ethz-a-005115737 Rights / License: In Copyright
More informationGeneric Collection Class: Motivation (2) Use of Generic Parameters Iterator and Singleton Patterns
Generic Collection Class: Motivation (2) Use of Generic Parameters Iterator and Singleton Patterns EECS3311 A: Software Design Fall 2018 CHEN-WEI WANG ACCOUNT _STACK {NONE -- Implementation imp: ARRAY[
More informationCMSC th Lecture: Graph Theory: Trees.
CMSC 27100 26th Lecture: Graph Theory: Trees. Lecturer: Janos Simon December 2, 2018 1 Trees Definition 1. A tree is an acyclic connected graph. Trees have many nice properties. Theorem 2. The following
More informationAN ECLECTIC COMPREHENSIVE APPROACH TO THE V&V OF SOFTWARE MODULES. Ali Mili, NJIT NII, Tokyo, Japan January 13, 2012
AN ECLECTIC COMPREHENSIVE APPROACH TO THE V&V OF SOFTWARE MODULES Ali Mili, NJIT NII, Tokyo, Japan January 13, 2012 PLAN 2 A Discipline of Modular Programming Teaching Practice Undergraduate: Data Structures
More informationThis is an individual assignment and carries 100% of the final CPS 1000 grade.
CPS 1000 Assignment This is an individual assignment and carries 100% of the final CPS 1000 grade. Important instructions (read carefully and thoroughly): The firm submission deadline is Friday 5 th February
More informationOOP and S-BPM an analogy observation PowerSpeech
OOP and an analogy observation PowerSpeech Karlsruhe, October 14th 2010 Hagen Buchwald, KIT, Institute AIFB INSTITUTE AIFB COMPLEXITY MANAGEMENT KIT University of the State of Baden-Wuerttemberg and National
More informationHoare Logic and Model Checking
Hoare Logic and Model Checking Kasper Svendsen University of Cambridge CST Part II 2016/17 Acknowledgement: slides heavily based on previous versions by Mike Gordon and Alan Mycroft Introduction In the
More informationLists, Stacks, and Queues. (Lists, Stacks, and Queues ) Data Structures and Programming Spring / 50
Lists, Stacks, and Queues (Lists, Stacks, and Queues ) Data Structures and Programming Spring 2016 1 / 50 Abstract Data Types (ADT) Data type a set of objects + a set of operations Example: integer set
More informationCH ALGORITHM ANALYSIS CH6. STACKS, QUEUES, AND DEQUES
CH4.2-4.3. ALGORITHM ANALYSIS CH6. STACKS, QUEUES, AND DEQUES ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN JAVA, GOODRICH, TAMASSIA AND GOLDWASSER
More informationCMSC Introduction to Algorithms Spring 2012 Lecture 7
CMSC 351 - Introduction to Algorithms Spring 2012 Lecture 7 Instructor: MohammadTaghi Hajiaghayi Scribe: Rajesh Chitnis 1 Introduction In this lecture we give an introduction to Data Structures like arrays,
More informationIntroduction. Problem Solving on Computer. Data Structures (collection of data and relationships) Algorithms
Introduction Problem Solving on Computer Data Structures (collection of data and relationships) Algorithms 1 Objective of Data Structures Two Goals: 1) Identify and develop useful high-level data types
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College August 29, 2018 Outline Outline 1 Chapter 2: Data Abstraction Outline Chapter 2: Data Abstraction 1 Chapter 2: Data Abstraction
More informationPC204. Lecture 5 Programming Methodologies. Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.
PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved. Programming Paradigms Software Engineering Exploratory Programming
More informationHoare Logic and Model Checking. A proof system for Separation logic. Introduction. Separation Logic
Introduction Hoare Logic and Model Checking In the previous lecture we saw the informal concepts that Separation Logic is based on. Kasper Svendsen University of Cambridge CST Part II 2016/17 This lecture
More informationProgramming Languages Third Edition
Programming Languages Third Edition Chapter 12 Formal Semantics Objectives Become familiar with a sample small language for the purpose of semantic specification Understand operational semantics Understand
More informationData Structure. Lecture#2: Data Structures and Algorithms. U Kang Seoul National University. U Kang (2016) 1
Data Structure Lecture#2: Data Structures and Algorithms U Kang Seoul National University U Kang (2016) 1 In This Lecture Learn what to consider in selecting right data structures Understand the need for
More informationChapter 8: Data Abstractions
Chapter 8: Data Abstractions Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Presentation files modified by Farn Wang Copyright 28 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
More information