What does the acronym DFS stand for? Explain the DFS algorithm in your own words.

Size: px
Start display at page:

Download "What does the acronym DFS stand for? Explain the DFS algorithm in your own words."

Transcription

1 QUIZ: Searching for paths in a graph What does the acronym DFS stand for? Explain the DFS algorithm in your own words. 1

2 QUIZ: Searching for paths in a graph What does the acronym DFS stand for? Explain the DFS algorithm in your own words. We go to the deepest branch, examining all the paths beginning at the child node, before we come back to examine the alternate paths that begin at the sibling. 2

3 QUIZ: Searching for paths in a graph Find a path from Chicago to Dallas using the DFS algorithm. Show the stack and node markings at every step! (Nodes are pushed on the stack in alphabetical order) 3

4 4

5 9.1 OO Methodology OO Design A problem-solving methodology that produces a solution to a problem in terms of self-contained entities called objects Object A thing or entity that makes sense within the context of the problem E.g., a student, a car, the time, the date 5

6 Object-Oriented Design World View of OOD Problems are solved by isolating the objects in a problem, determining their properties and actions (responsibilities), and letting the objects collaborate to solve a problem What? Say again! 6

7 Object-Oriented Example You and your friend are making dinner Objects: you, friend, dinner, steaks, potatoes, lettuce, butter, grill, frying pan, pot, Classes: you and friend are People People have name, eye color, People can shop, cook, steaks, potatoes, and butter are Ingredients Ingredients have weights, costs, quantities, Ingredients can be bought at grocery store, carried home, cooked, 7

8 Object-Oriented Example You and your friend are making dinner Instance of a class: you and friend are instances of class People, you each have your own name and eye color you each can shop and cook steaks and potatoes are instances of class Ingredients they each have their own weight, cost and quantity they each can be bought, carried, cooked Objects collaborate to make dinner! 8

9 Object-Oriented Lingo Class = description of a group of similar objects Object = instance of a class = concrete example of an object in the class Classes contain: Properties (attributes) (name, eye color) Behaviors (actions, responsibilities) (shop, cook) Method = A named algorithm that defines behavior (shop, cook) Python: my_list.append(42) 9

10 Two types of design Top-Down Design decomposes problems into tasks Object-Oriented Design decomposes problems into collaborating objects 10 Yes, but how?

11 QUIZ What is the strategic difference between procedural design and OOD? 11

12 Bottom-up example Not in textbook Gathering wood-chips! How would we do it top-down? (i.e. procedural) Bottom-up: ask termites for help! 12

13 Bottom-up example Not in textbook What termites do: Search for wood-chip, pick it up Search for another Drop first next to second Repeat! 13

14 Evolution of clusters Not in textbook Initial random distribution of chips (yellow) and termites (red) 14

15 Evolution of clusters Not in textbook Follow the centers of mass of these last two piles! 15

16 Evolution of clusters Not in textbook A dynamical equilibrium is reached; periodically, small islands and peninsulas form, only to be reabsorbed in the central pile. 16

17 Implementation: MIT StarLogo (free to download!) Not in textbook 17

18 Recommended reading Not in textbook 18

19 OOD Steps isolate the real-world objects in the problem abstract the objects with like properties into groups (classes) determine the responsibilities of the group in interacting with other groups 19

20 OOD Example Think of design as a mapping from real world objects to classes of objects birth date marriage date Date class dog's birth date 20

21 After the design phase comes the implementation phase: dogbirthdate class Date mybirthdate marriagedate Description Instances We instantiate one or more objects of each class 21

22 22 Going forth and then back!

23 OOD Example Date's Actions in real world? We call an object's interactions with other objects its responsibilities Create itself Know the state of its fields Compare itself to another date Return a date a number of days since another date 23

24 OOD Example Responsibilities become methods associated with the classes and objects class Date getmonth getday getyear dayssince dogbirthdate.getmonth() dogbirthdate.getday() dogbirthdate.getyear() mybirthdate.getday() Etc. marriagedate.getyear() Etc. crtdate.dayssince(mybirthdate) Etc.

25 25 This is how Python refers to the current object in a class, since the name(s) of the object(s) is(are) not know at this time

26 26 Aren t we putting the carriage in front of the horses?

27 27 How do we use the class in a program?

28 28

29 Your turn! Create a class Fraction with two integer fields: nume and deno. The default value of any fraction should be 1/1. Write methods for: initializing nume and deno getting nume and deno. 29

30 To do for next time: Read and take notes Sec. 9.1 SKIP Sec. 9.2 and 9.3 Read and take notes Sec. 9.4 Solve in notebook end-of-chapter ex. 60 through

31 Your turn! Instantiate two fractions f1 and f2 in the main program: f1 is 3/4 f2 is 5/4 31

32 Your turn! Print f1 and f2 nicely the main program, using the get methods. The output should look like this: f1 is 3/4 f2 is 5/4 32

33 Do not confuse the responsibilities of reallife people with the responsibilities of the objects representing those people! Example: the zoo-keeper In real-life, (s)he has the responsibility to feed the animals, clean the cages, etc. In an OO program: zookeeper.setssn(), zookeeper.getlistofanimalscaredfor(), etc.

34 OOD Methodology Four stages to the decomposition process Brainstorming to locate possible classes Filtering the classes to find duplicates or remove unnecessary ones Scenarios are tried to be sure we understand collaborations Responsibility algorithms are designed for all actions that classes must perform 34

35 OOD Example Let s examine the problem-solving process for creating an address list Brainstorming and filtering Circling the nouns and underlining the verbs is a good way to begin 35

36 36 OOD Example - Filtering

37 Design tool: CRC Cards Class-Responsibility-Collaboration cards = notational device to record information about a class, what is must do and with whom it must collaborate We ll talk about inheritance next time 37

38 Convention: class names always start with uppercase Other useful responsibilities can be added depending on the application, e.g. sending s, checking out books from library, etc. 38

39 39 Can you think of any other useful responsibilities? Hint: think of Python strings.

40 40 Can you think on other useful responsibilities? Hint: Think about the list algorithms from Ch.8

41 Responsibility Algorithms Person Class Initialize name.initialize() Write "Enter phone number; press return." Get telephone number Write "Enter address; press return." Get address Print Tells name to initialize itself Tells name to print itself name.print() Write "Telephone number: " + telephonenumber Write " address: " + address 41

42 Responsibility Algorithms Name Class Initialize "Enter the first name; press return." Read firstname "Enter the last name; press return." Read lastname Print Print "First name: " + firstname Print "Last name: " + lastname Is has the same 2 responsibilities as Person, but the algorithms are different! 42

43 Name Class Now let s do this in Python! Initialize "Enter the first name; press return." Read firstname "Enter the last name; press return." Read lastname Print Print "First name: " + firstname Print "Last name: " + lastname 43

44 Name Class Now let s do this in Python! Initialize "Enter the first name; press return." Read firstname "Enter the last name; press return." Read lastname Print Print "First name: " + firstname Print "Last name: " + lastname 44

45 Name Class Now let s do this in Python! Initialize "Enter the first name; press return." Read firstname "Enter the last name; press return." Read lastname Print Print "First name: " + firstname Print "Last name: " + lastname Now add the Print responsibility (method) 45

46 Name Class Initialize "Enter the first name; press return." Read firstname "Enter the last name; press return." Read lastname Print Print "First name: " + firstname Print "Last name: " + lastname 46

47 Name Class Initialize "Enter the first name; press return." Read firstname "Enter the last name; press return." Read lastname Print In the main program, we instantiate (create) three objects of this class Print "First name: " + firstname Print "Last name: " + lastname 47

48 Name Class Initialize "Enter the first name; press return." Read firstname "Enter the last name; press return." Read lastname Now we can instruct the objects what to do, using their methods Print Print "First name: " + firstname Print "Last name: " + lastname 48

49 Name Class Run this program! Initialize "Enter the first name; press return." Read firstname "Enter the last name; press return." Read lastname Print Print "First name: " + firstname Print "Last name: " + lastname 49

50 Name Class Initialize "Enter the first name; press return." Read firstname "Enter the last name; press return." Read lastname Write the same code for the friend s name and the dog s name, and run it again! Print Print "First name: " + firstname Print "Last name: " + lastname 50

51 51

52 Can we implement the same functionality w/o OO machinery? Of course we can! 52

53 53

54 So then why bother with objects? 54

55 Name Class Initialize Classes "Enter the first name; press return." Read firstname "Enter the last name; press return." Read lastname Print Print "First name: " + firstname Print "Last name: " + lastname 55

56 Name Class Initialize Encapsulation "Enter the first name; press return." Read firstname "Enter the last name; press return." Read lastname Print Print "First name: " + firstname Print "Last name: " + lastname 56

57 57 Inheritance

58 Inheritance 58 ?

59 Conclusion: Inheritance makes it easy to reuse code! 59

60 60 Polymorphism

61 Conclusion: Polymorphism makes it easy to understand, evolve and maintain code! 61

62 Inheritance A construct that fosters reuse by allowing an application to take an already-tested class and derive a class from it that inherits the properties the application needs Polymorphism The ability of a language to have duplicate method names in an inheritance hierarchy and to apply the method that is appropriate for the object to which the method is applied 62

63 63

64 Inheritance and Polymorphism Inheritance and polymorphism work together How? They combine to allow the programmer to build useful hierarchies of classes that can be put into a library to be reused in different applications 64

65 OO nitty-gritty: constructors 65 Source:

66 Ethical Issues Spam, hoaxes and scams 66

67 Who am I? I am: An advocate of structured programming A recipient of the Turing award The inventor of a famous graph algorithm that now has my name. Known for my wit. Can you recall some of my witty sayings? Dutch 67

68 Review questions Answer in notebook! only Python 76 only a. (Python) 68

QUIZ: Searching for paths in a graph. What does the acronym DFS stand for? Explain the DFS algorithm in your own words.

QUIZ: Searching for paths in a graph. What does the acronym DFS stand for? Explain the DFS algorithm in your own words. QUIZ: Searching for paths in a graph What does the acronym DFS stand for? Explain the DFS algorithm in your own words. 1 What does the acronym DFS stand for? Explain the DFS algorithm in your own words.

More information

9.1 OO Methodology OO Design Object

9.1 OO Methodology OO Design Object 1 9.1 OO Methodology OO Design A problem-solving methodology that produces a solution to a problem in terms of self-contained entities called objects Object A thing or entity that makes sense within the

More information

1. Write two major differences between Object-oriented programming and procedural programming?

1. Write two major differences between Object-oriented programming and procedural programming? 1. Write two major differences between Object-oriented programming and procedural programming? A procedural program is written as a list of instructions, telling the computer, step-by-step, what to do:

More information

Outline. Outline. 1 Chapter 2: Data Abstraction

Outline. Outline. 1 Chapter 2: Data Abstraction Outline Outline 1 Chapter 2: Data Abstraction From Data Type to ADT Values A value is a unit of information used in a program. It can be associated with a constant or variable (a name) by an assignment

More information

Object-Oriented Systems Analysis and Design Using UML

Object-Oriented Systems Analysis and Design Using UML 10 Object-Oriented Systems Analysis and Design Using UML Systems Analysis and Design, 8e Kendall & Kendall Copyright 2011 Pearson Education, Inc. Publishing as Prentice Hall Learning Objectives Understand

More information

OO System Models Static Views

OO System Models Static Views OO System Models Static Views UML Class & Object Diagrams Software Engineering OO Models Class Diagram Slide 1 Objective Introduces the evolutionary approach for building classes Explain how to identify

More information

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin Chapter 10 Object-Oriented Analysis and Modeling Using the UML McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. Objectives 10-2 Define object modeling and explain

More information

Chapter 5: Structural Modeling

Chapter 5: Structural Modeling Chapter 5: Structural Modeling Objectives Understand the rules and style guidelines for creating CRC cards, class diagrams, and object diagrams. Understand the processes used to create CRC cards, class

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design IT4GIS Keith T. Weber, GISP GIS Director ISU GIS Training and Research Center Topics During the balance of this semester, we will pursue and follow two learning threads Object-relational

More information

Inheritance and Polymorphism

Inheritance and Polymorphism Object Oriented Programming Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. Al-Azhar University Website: eaymanelshenawy.wordpress.com Email : eaymanelshenawy@azhar.edu.eg

More information

Software Design and Analysis for Engineers

Software Design and Analysis for Engineers Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 2 Date:

More information

Object-Oriented Systems Development: Using the Unified Modeling Language

Object-Oriented Systems Development: Using the Unified Modeling Language Object-Oriented Systems Development: Using the Unified Modeling Language Chapter 8: Identifying Object Relationships, Attributes, and Methods Goals Analyzing relationships among classes. Identifying association.

More information

Object- Oriented Design with UML and Java Part I: Fundamentals

Object- Oriented Design with UML and Java Part I: Fundamentals Object- Oriented Design with UML and Java Part I: Fundamentals University of Colorado 1999-2002 CSCI-4448 - Object-Oriented Programming and Design These notes as free PDF files: http://www.softwarefederation.com/cs4448.html

More information

CSI33 Data Structures

CSI33 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 information

Introduction to Computer Programming for Non-Majors

Introduction to Computer Programming for Non-Majors Introduction to Computer Programming for Non-Majors CSC 2301, Fall 2015 Chapter 12 Object-Oriented Design The Department of Computer Science Objectives To understand the process of object-oriented design.

More information

Introduction to Computer Programming for Non-Majors

Introduction to Computer Programming for Non-Majors Introduction to Computer Programming for Non-Majors CSC 2301, Fall 2014 Chapter 12 Object-Oriented Design The Department of Computer Science Objectives To understand the process of object-oriented design.

More information

Design and UML Class Diagrams

Design and UML Class Diagrams Design and UML Class Diagrams 1 Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.com/article/31863 UML DistilledCh. 3, by M. Fowler How do people draw / write

More information

Abstraction. Abstraction

Abstraction. Abstraction 9/11/2003 1 Software today is more complex than it has ever been. Software controls Space shuttle systems during launch Elevators in 100-story buildings Cross-Atlantic transportation routes of freighters

More information

SE 1: Software Requirements Specification and Analysis

SE 1: Software Requirements Specification and Analysis SE 1: Software Requirements Specification and Analysis Lecture 9: UML Class (Concept), Object, Communication Diagrams Nancy Day, Davor Svetinović http://www.student.cs.uwaterloo.ca/ cs445/winter2006 uw.cs.cs445

More information

Object Fundamentals Part Two. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/5448 Lecture 3 09/01/2009

Object Fundamentals Part Two. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/5448 Lecture 3 09/01/2009 Object Fundamentals Part Two Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/5448 Lecture 3 09/01/2009 1 Lecture Goals Continue our tour of the basic concepts, terminology, and notations

More information

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas What is this class about? While this class is called Design Patterns, there are many other items of critical

More information

CMSC201 Computer Science I for Majors

CMSC201 Computer Science I for Majors CMSC201 Computer Science I for Majors Lecture 25 Classes All materials copyright UMBC and Dr. Katherine Gibson unless otherwise noted Run time Last Class We Covered Run time of different algorithms Selection,

More information

Chapter 10 Object-Oriented Design Principles

Chapter 10 Object-Oriented Design Principles Chapter 10 Object-Oriented Design Principles Dr. Supakit Nootyaskool Faculty of Information Technology King Mongkut s Institute of Technology Ladkrabang Outline Object-oriented design: bridging from analysis

More information

Introduction to Software Engineering: Analysis

Introduction to Software Engineering: Analysis Introduction to Software Engineering: Analysis John T. Bell Department of Computer Science University of Illinois, Chicago Based on materials from of Bruegge & DuToit 3e, Ch 5 and UML Distilled by Martin

More information

Introduction to Design Patterns

Introduction to Design Patterns Introduction to Design Patterns First, what s a design pattern? a general reusable solution to a commonly occurring problem within a given context in software design It s not a finished design that can

More information

Expanding Our Horizons. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011

Expanding Our Horizons. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011 Expanding Our Horizons CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 9 09/25/2011 1 Goals of the Lecture Cover the material in Chapter 8 of our textbook New perspective on objects and encapsulation

More information

Do you remember what is the most powerful tool for managing complexity?

Do you remember what is the most powerful tool for managing complexity? Do you remember what is the most powerful tool for managing complexity? 2 Abstractions and more abstractions You are here 3 8.1 Three views of data Application or user level Logical or abstract level Implementation

More information

Examination paper for TDT4145 Data Modelling and Database Systems

Examination paper for TDT4145 Data Modelling and Database Systems Department of Computer and Information Science Examination paper for TDT4145 Data Modelling and Database Systems Academic contact during examination: Svein Erik Bratsberg: 99539963 Roger Midtstraum: 99572420

More information

Module Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation

Module Outline. What is Object-Oriented? Some Possible Definitions. Why Object-oriented? Fundamentals of Object Orientation Module Outline Fundamentals of Object Positioning Object Oriented Analysis Fundamentals of Object 1. Encapsulation 2. Abstraction 3. Inheritance 4. Polymorphism The need of Modeling Unified modeling language

More information

Design and Information Hiding

Design and Information Hiding Design and Information Hiding 15-214: Foundations of Software Engineering Jonathan Aldrich Related Reading: D. L. Parnas. On the Criteria To Be Used in Decomposing Systems into Modules. CACM 15(12):1053-1058,

More information

CS304 Object Oriented Programming Final Term

CS304 Object Oriented Programming Final Term 1. Which of the following is the way to extract common behaviour and attributes from the given classes and make a separate class of those common behaviours and attributes? Generalization (pg 29) Sub-typing

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module

More information

CSC207 Week 3. Larry Zhang

CSC207 Week 3. Larry Zhang CSC207 Week 3 Larry Zhang 1 Announcements Readings will be posted before the lecture Lab 1 marks available in your repo 1 point for creating the correct project. 1 point for creating the correct classes.

More information

More OO Fundamentals. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 4 09/11/2012

More OO Fundamentals. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 4 09/11/2012 More OO Fundamentals CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 4 09/11/2012 1 Goals of the Lecture Continue a review of fundamental object-oriented concepts 2 Overview of OO Fundamentals

More information

QUIZ #5 - Solutions (5pts each)

QUIZ #5 - Solutions (5pts each) CS 435 Spring 2014 SOFTWARE ENGINEERING Department of Computer Science Name QUIZ #5 - Solutions (5pts each) 1. The best reason for using Independent software test teams is that a. software developers do

More information

Object-Oriented Programming Design and Analysis Elena Punskaya,

Object-Oriented Programming Design and Analysis Elena Punskaya, Object-Oriented Programming Design and Analysis Elena Punskaya, op205@cam.ac.uk!1 Object-Oriented Programming First programs: anything goes! 1960s-1970s: structured programming! - any computable function

More information

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright Object Model Object Orientated Analysis and Design Benjamin Kenwright Outline Submissions/Quizzes Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean

More information

A cipher is a type of secret code, where you swap the letters around so that noone can read your message.

A cipher is a type of secret code, where you swap the letters around so that noone can read your message. Secret Messages Introduction: In this project, you ll learn how to make your own encryption program, to send and receive secret messages with a friend. This project ties in with the Earth to Principa activity

More information

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing

More information

CHAPTER 5 GENERAL OOP CONCEPTS

CHAPTER 5 GENERAL OOP CONCEPTS CHAPTER 5 GENERAL OOP CONCEPTS EVOLUTION OF SOFTWARE A PROGRAMMING LANGUAGE SHOULD SERVE 2 RELATED PURPOSES : 1. It should provide a vehicle for programmer to specify actions to be executed. 2. It should

More information

QUIZ. Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed?

QUIZ. Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed? QUIZ Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed? Or Foo(x), depending on how we want the initialization

More information

Object Fundamentals Part Three. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 4 09/06/2007

Object Fundamentals Part Three. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 4 09/06/2007 Object Fundamentals Part Three Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 4 09/06/2007 1 Lecture Goals Continue our tour of the basic concepts, terminology, and notations

More information

Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson

Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson Lecture 2 and 3: Fundamental Object-Oriented Concepts Kenneth M. Anderson January 13, 2005 January 18, 2005 1 of 38 Lecture Goals Introduce the basic concepts of object-oriented analysis/design/programming

More information

Introduction to OOP. Procedural Programming sequence of statements to solve a problem.

Introduction to OOP. Procedural Programming sequence of statements to solve a problem. Introduction to OOP C++ - hybrid language improved and extended standard C (procedural language) by adding constructs and syntax for use as an object oriented language. Object-Oriented and Procedural Programming

More information

Lecture 1. Abstraction

Lecture 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 information

CSIT 2008 June 28, 2008 Anita Verno, Bergen Community College,

CSIT 2008 June 28, 2008 Anita Verno, Bergen Community College, CSIT 2008 June 28, 2008 Anita Verno, Bergen Community College, averno@bergen.edu Introducing OOD, An Example Design Methodologies Alphabet Soup: OOA, OOD, OOP Slides for an Introductory Lesson Why OOD?

More information

Ready for the Real World. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/5448 Lecture 8 09/17/2009

Ready for the Real World. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/5448 Lecture 8 09/17/2009 Ready for the Real World Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/5448 Lecture 8 09/17/2009 1 Lecture Goals Review material from Chapter 4 of the OO A&D textbook Taking Your Software

More information

Inheritance and Polymorphism

Inheritance and Polymorphism Inheritance and Polymorphism The concept of inheritance is a common feature of an object-oriented programming language. Inheritance allows a programmer to define a general class, and then later define

More information

Inheritance and Polymorphism in Java

Inheritance and Polymorphism in Java Inheritance and Polymorphism in Java Introduction In this article from my free Java 8 course, I will be discussing inheritance in Java. Similar to interfaces, inheritance allows a programmer to handle

More information

MORE OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 4 09/01/2011

MORE OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 4 09/01/2011 MORE OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 4 09/01/2011 1 Goals of the Lecture Continue a review of fundamental object-oriented concepts 2 Overview of OO Fundamentals

More information

Object-Oriented Programming Concepts

Object-Oriented Programming Concepts Object-Oriented Programming Concepts Real world objects include things like your car, TV etc. These objects share two characteristics: they all have state and they all have behavior. Software objects are

More information

Object-Oriented Design (OOD) and C++

Object-Oriented Design (OOD) and C++ Chapter 2 Object-Oriented Design (OOD) and C++ At a Glance Instructor s Manual Table of Contents Chapter Overview Chapter Objectives Instructor Notes Quick Quizzes Discussion Questions Projects to Assign

More information

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay

Object Oriented Processes. R.K.Joshi Dept of Computer Science and Engg. IIT Bombay Object Oriented Processes R.K.Joshi Dept of Computer Science and Engg. IIT Bombay Life Cycle Models Waterfall Spiral Fountain Extreme Model Driven Phases and their relations with object orientation requirements

More information

CSI33 Data Structures

CSI33 Data Structures Outline Department of Mathematics and Computer Science Bronx Community College September 6, 2017 Outline Outline 1 Chapter 2: Data Abstraction Outline Chapter 2: Data Abstraction 1 Chapter 2: Data Abstraction

More information

Concepts 6. OOAD Part II. BlueJ ex 5.1. OO and inheritance. Intro to inheritance. The DoME project is a database for multimedia entertainment.

Concepts 6. OOAD Part II. BlueJ ex 5.1. OO and inheritance. Intro to inheritance. The DoME project is a database for multimedia entertainment. Concepts 6 Generalization A relation between a general and a specialized element. The more special adds further properties. Inheritance A relation between a VXSHUFODVV and a VXEFODVV. Subclasses share

More information

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II)

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) Software Engineering Prof.N.L.Sarda IIT Bombay Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II) We will continue our discussion on process modeling. In the previous lecture

More information

Appendix A Database Design. Data Modeling and the Entity-Relationship Model

Appendix A Database Design. Data Modeling and the Entity-Relationship Model Appendix A Database Design Data Modeling and the Entity-Relationship Model 1 Three Stages of Database Development The three stages of database development are: 1. Requirements Analysis Stage 2. Component

More information

The Essence of Object Oriented Programming with Java and UML. Chapter 2. The Essence of Objects. What Is an Object-Oriented System?

The Essence of Object Oriented Programming with Java and UML. Chapter 2. The Essence of Objects. What Is an Object-Oriented System? Page 1 of 21 Page 2 of 21 and identity. Objects are members of a class, and the attributes and behavior of an object are defined by the class definition. The Essence of Object Oriented Programming with

More information

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014 Lesson 10A OOP Fundamentals By John B. Owen All rights reserved 2011, revised 2014 Table of Contents Objectives Definition Pointers vs containers Object vs primitives Constructors Methods Object class

More information

Ready for the Real World. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 8 09/18/2007

Ready for the Real World. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 8 09/18/2007 Ready for the Real World Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 8 09/18/2007 Lecture Goals Review material from Chapter 4 of the OO A&D textbook Taking Your Software

More information

QUIZ. How could we disable the automatic creation of copyconstructors

QUIZ. How could we disable the automatic creation of copyconstructors QUIZ How could we disable the automatic creation of copyconstructors pre-c++11? What syntax feature did C++11 introduce to make the disabling clearer and more permanent? Give a code example. Ch. 14: Inheritance

More information

Fundamental Concepts (Principles) of Object Oriented Programming These slides are based on:

Fundamental Concepts (Principles) of Object Oriented Programming These slides are based on: 1 Fundamental Concepts (Principles) of Object Oriented Programming These slides are based on: [1] Timothy A. Budd, Oregon State University, Corvallis, Oregon, [Available] ClickMe, September 2001. 2 What

More information

Media Computation. Lecture 16.1, December 8, 2008 Steve Harrison

Media Computation. Lecture 16.1, December 8, 2008 Steve Harrison Media Computation Lecture 16.1, December 8, 2008 Steve Harrison Today -- Details of Creating Classes From requirements to classes Creating a class that will simulate a number game Practice going from requirements

More information

CSCU9T4: Managing Information

CSCU9T4: Managing Information CSCU9T4: Managing Information CSCU9T4 Spring 2016 1 The Module Module co-ordinator: Dr Gabriela Ochoa Lectures by: Prof Leslie Smith (l.s.smith@cs.stir.ac.uk) and Dr Nadarajen Veerapen (nve@cs.stir.ac.uk)

More information

Laboratory. Abstract Data Types. Objective. References. Gain a deeper appreciation for stacks, queues, and trees.

Laboratory. Abstract Data Types. Objective. References. Gain a deeper appreciation for stacks, queues, and trees. Laboratory Abstract Data Types 9A Objective Gain a deeper appreciation for stacks, queues, and trees. References Software needed: 1) A web browser (Internet Explorer or Netscape) 2) Applets a) Stackqueue

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2017 Quiz I

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2017 Quiz I Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.830 Database Systems: Fall 2017 Quiz I There are 15 questions and 12 pages in this quiz booklet. To receive

More information

Object-oriented design

Object-oriented design Object-oriented design Michael Mandel Lecture 11 Methods in Computational Linguistics I The City University of New York, Graduate Center https://github.com/ling78100/lectureexamples/blob/master/lecture11final.ipynb

More information

SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay. Lecture #10 Process Modelling DFD, Function Decomp (Part 2)

SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay. Lecture #10 Process Modelling DFD, Function Decomp (Part 2) SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay Lecture #10 Process Modelling DFD, Function Decomp (Part 2) Let us continue with the data modeling topic. So far we have seen

More information

Agenda CS121/IS223. Reminder. Object Declaration, Creation, Assignment. What is Going On? Variables in Java

Agenda CS121/IS223. Reminder. Object Declaration, Creation, Assignment. What is Going On? Variables in Java CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors Agenda

More information

Object Oriented Analysis & Design (OOAD)

Object Oriented Analysis & Design (OOAD) Object Oriented Analysis & Design (OOAD) 1 OOAD It focuses on objects where system is broken down in terms of the objects that exist within it. Functions (behaviour) and data (state) relating to a single

More information

CPS122 Lecture: Course Intro; Introduction to Object-Orientation

CPS122 Lecture: Course Intro; Introduction to Object-Orientation Objectives: CPS122 Lecture: Course Intro; Introduction to Object-Orientation 1. To introduce the course requirements and procedures. 2. To introduce fundamental concepts of OO: object, class Materials:

More information

Inheritance and Polymorphism

Inheritance and Polymorphism Inheritance and Polymorphism Inheritance (Continued) Polymorphism Polymorphism by inheritance Polymorphism by interfaces Reading for this lecture: L&L 10.1 10.3 1 Interface Hierarchies Inheritance can

More information

Abstract Data Types. Different Views of Data:

Abstract Data Types. Different Views of Data: Abstract Data Types Representing information is fundamental to computer science. The primary purpose of most computer programs is not to perform calculations, but to store and efficiently retrieve information.

More information

Intro to Haskell Notes: Part 5

Intro to Haskell Notes: Part 5 Intro to Haskell Notes: Part 5 Adrian Brasoveanu October 5, 2013 Contents 1 Curried functions and related issues 1 1.1 Curried functions......................................... 1 1.2 Partially applied

More information

In this lesson you will learn: To use various tools of Paint activity. (See the level I lesson on paint for a revision.)

In this lesson you will learn: To use various tools of Paint activity. (See the level I lesson on paint for a revision.) A m In this lesson you will learn: To use various tools of Paint activity. (See the level I lesson on paint for a revision.) Lesson6 Activity using Paint 1. Draw a greeting card for your friend on her

More information

Day 4. COMP1006/1406 Summer M. Jason Hinek Carleton University

Day 4. COMP1006/1406 Summer M. Jason Hinek Carleton University Day 4 COMP1006/1406 Summer 2016 M. Jason Hinek Carleton University today s agenda assignments questions about assignment 2 a quick look back constructors signatures and overloading encapsulation / information

More information

Dmitriy Shironosov/ShutterStock, Inc. Abstract Data Types Abstract Data Types

Dmitriy Shironosov/ShutterStock, Inc. Abstract Data Types Abstract Data Types Dmitriy Shironosov/ShutterStock, Inc. Abstract Data Types 85 LABORATORY 9 Abstract Data Types OBJECTIVE Gain a deeper appreciation for stacks, queues, and trees. REFERENCES Software needed: 1) Stack-Queue

More information

Object oriented programming Concepts

Object oriented programming Concepts Object oriented programming Concepts Naresh Proddaturi 09/10/2012 Naresh Proddaturi 1 Problems with Procedural language Data is accessible to all functions It views a program as a series of steps to be

More information

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011 A Correlation of AP Computer Science 3rd Edition, Lewis et al. 2011 To the INTRODUCTION This document demonstrates how AP (Advanced Placement) Computer Science, 3rd Edition 2011, Lewis et al. meets the

More information

CS485/540 Software Engineering Requirements Modeling (Ch. 6)

CS485/540 Software Engineering Requirements Modeling (Ch. 6) CS485/540 Software Engineering Requirements Modeling (Ch. 6) Cengiz Günay Dept. Math & CS, Emory University Fall 2013 Some slides courtesy of Joan Smith and Roger Pressman Günay (Emory) Requirements Modeling

More information

Introduction to Object Oriented Analysis and Design

Introduction to Object Oriented Analysis and Design A class note on Introduction to Object Oriented Analysis and Design Definition In general, analysis emphasizes an investigation of the problem and requirements of the domain, rather than a solution. Whereas,

More information

Math 7 Notes - Unit 4 Pattern & Functions

Math 7 Notes - Unit 4 Pattern & Functions Math 7 Notes - Unit 4 Pattern & Functions Syllabus Objective: (3.2) The student will create tables, charts, and graphs to extend a pattern in order to describe a linear rule, including integer values.

More information

Lab 2: Object-Oriented Design 12:00 PM, Jan 31, 2018

Lab 2: Object-Oriented Design 12:00 PM, Jan 31, 2018 CS18 Integrated Introduction to Computer Science Fisler, Nelson Contents Lab 2: Object-Oriented Design 12:00 PM, Jan 31, 2018 1 Terminology 1 2 Class Hierarchy Diagrams 2 2.1 An Example: Animals...................................

More information

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects

Credit where Credit is Due. Lecture 4: Fundamentals of Object Technology. Goals for this Lecture. Real-World Objects Lecture 4: Fundamentals of Object Technology Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some material presented in this lecture

More information

CS121/IS223. Object Reference Variables. Dr Olly Gotel

CS121/IS223. Object Reference Variables. Dr Olly Gotel CS121/IS223 Object Reference Variables Dr Olly Gotel ogotel@pace.edu http://csis.pace.edu/~ogotel Having problems? -- Come see me or call me in my office hours -- Use the CSIS programming tutors CS121/IS223

More information

Chapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc.

Chapter 13 Object Oriented Programming. Copyright 2006 The McGraw-Hill Companies, Inc. Chapter 13 Object Oriented Programming Contents 13.1 Prelude: Abstract Data Types 13.2 The Object Model 13.4 Java 13.1 Prelude: Abstract Data Types Imperative programming paradigm Algorithms + Data Structures

More information

Designing Classes. Appendix D. Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall

Designing Classes. Appendix D. Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall Designing Classes Appendix D Slides by Steve Armstrong LeTourneau University Longview, TX 2007, Prentice Hall Chapter Contents Encapsulation Specifying Methods Java Interfaces Writing an Interface Implementing

More information

Computer Science 210 Data Structures Siena College Fall Topic Notes: Trees

Computer Science 210 Data Structures Siena College Fall Topic Notes: Trees Computer Science 0 Data Structures Siena College Fall 08 Topic Notes: Trees We ve spent a lot of time looking at a variety of structures where there is a natural linear ordering of the elements in arrays,

More information

COMPUTER PROGRAMMING (ECE 431) TUTORIAL 9

COMPUTER PROGRAMMING (ECE 431) TUTORIAL 9 COMPUTER PROGRAMMING (ECE 431) TUTORIAL 9 1. What is object oriented programming (OOP)? How is it differs from the traditional programming? 2. What is a class? How a class is different from a structure?

More information

Inheritance (Outsource: )

Inheritance (Outsource: ) (Outsource: 9-12 9-14) is a way to form new classes using classes that have already been defined. The new classes, known as derived classes, inherit attributes and behavior of the pre-existing classes,

More information

UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011

UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011 UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011 1 Goals of the Lecture Review the material in Chapter 2 of the Textbook Cover key parts of the UML notation

More information

Chapter 2: The Object-Oriented Design Process

Chapter 2: The Object-Oriented Design Process Chapter 2: The Object-Oriented Design Process In this chapter, we will learn the development of software based on object-oriented design methodology. Chapter Topics From Problem to Code The Object and

More information

Object-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1

Object-Oriented Languages and Object-Oriented Design. Ghezzi&Jazayeri: OO Languages 1 Object-Oriented Languages and Object-Oriented Design Ghezzi&Jazayeri: OO Languages 1 What is an OO language? In Ada and Modula 2 one can define objects encapsulate a data structure and relevant operations

More information

Computer Science 9608 (Notes) Chapter: 4.1 Computational thinking and problem-solving

Computer Science 9608 (Notes) Chapter: 4.1 Computational thinking and problem-solving UWhat is Computational Thinking? Computational thinking (CT) involves a set of skills and techniques that software engineers use to write programs that underlie the computer applications you use such as

More information

[key, Left subtree, Right subtree]

[key, Left subtree, Right subtree] Project: Binary Search Trees A binary search tree is a method to organize data, together with operations on these data (i.e., it is a data structure). In particular, the operation that this organization

More information

QUIZ. How could we disable the automatic creation of copyconstructors

QUIZ. How could we disable the automatic creation of copyconstructors QUIZ How could we disable the automatic creation of copyconstructors pre-c++11? What syntax feature did C++11 introduce to make the disabling clearer and more permanent? Give a code example. QUIZ How

More information

Page 1 CCM6+ Unit 10 Graphing UNIT 10 COORDINATE PLANE. CCM Name: Math Teacher: Projected Test Date:

Page 1 CCM6+ Unit 10 Graphing UNIT 10 COORDINATE PLANE. CCM Name: Math Teacher: Projected Test Date: Page 1 CCM6+ Unit 10 Graphing UNIT 10 COORDINATE PLANE CCM6+ 2015-16 Name: Math Teacher: Projected Test Date: Main Concept Page(s) Vocabulary 2 Coordinate Plane Introduction graph and 3-6 label Reflect

More information

CS 15 Design Section. Design

CS 15 Design Section. Design Design Introduction to the Section: This may be for advanced students who already know about Procedural Programming. Could be a nice lecture for them as to why we teach OO. This is from a lecture at Georgia

More information

Classes, objects, methods and properties

Classes, objects, methods and properties Learning Object 1. African Virtual University Template for extracting a learning object Main Learning Objective Nature of learning object Key concept (s) Source Module information Access source module

More information

Database Design. 6-2 Normalization and First Normal Form. Copyright 2015, Oracle and/or its affiliates. All rights reserved.

Database Design. 6-2 Normalization and First Normal Form. Copyright 2015, Oracle and/or its affiliates. All rights reserved. Database Design 6-2 Objectives This lesson covers the following objectives: Define the purpose of normalization in database models Define the rule of First Normal Form in the normalization process Determine

More information