 Computer Science 1MD3 Introduction to Programming Michael Liut Ming Quan Fu Brandon.

Slides:



Advertisements
Similar presentations
Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
Advertisements

BITS Pilani Avinash Gautam Department of Computer Science and Information Systems.
Classes & Objects Computer Science I Last updated 9/30/10.
Chapter 10 Introduction to Objects and Classess 1.
Chapter 1 Object-Oriented System Development
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
1 Programming for Engineers in Python Autumn Lecture 5: Object Oriented Programming.
Object Oriented System Development with VB .NET
1 Basic Object Oriented Concepts Overview l What is Object-Orientation about? l What is an Object? l What is a Class? l Constructing Objects from Classes.
OBJECT ORIENTED ANALYSIS & DESIGN Vassilka Kirova Department of Computer & Information Science NJIT.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
Systems Analysis & Design Sixth Edition Systems Analysis & Design Sixth Edition Toolkit Part 5.
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
Chapter 4 Object and Object-Relational Databases (Part ½: Object-Oriented Concepts) Lecturer: H.Ben Othmen Department of Computer Science, Umm Al-Qura.
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
CSCI-383 Object-Oriented Programming & Design Lecture 15.
BACS 287 Basics of Object-Oriented Programming 1.
 Computer Science 1MD3 Introduction to Programming Michael Liut Ming Quan Fu Brandon.
Object Oriented Programming
Introduction To System Analysis and design
Introduction to Object-oriented programming and software development Lecture 1.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
Object Oriented Design and Programming Alan Goude Room: Sheaf 9323.
 Computer Science 1MD3 Introduction to Programming Michael Liut Ming Quan Fu Brandon.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Unified Modeling Language, Version 2.0
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
Computer Science 1MD3 Introduction to Programming
Object Oriented Programming Principles Lecturer: Kalamullah Ramli Electrical Engineering Dept. University of Indonesia Session-3.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
OOP Class Lawrence D’Antonio Lecture 3 An Overview of C++
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
 Computer Science 1MD3 Introduction to Programming Michael Liut Brandon Da Silva
Basic OOP Concepts and Terms. In this class, we will cover: Objects and examples of different object types Classes and how they relate to objects Object.
Elements of OO Abstraction Encapsulation Modularity Hierarchy: Inheritance & Aggregation 4 major/essential elements3 minor/helpful elements Typing Concurrency.
Introduction to Design (and Zen) CpSc 372: Introduction to Software Engineering Jason O. Hallstrom Authorship Disclaimer. These.
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
CSC 131 Fall 2006 Lecture # 6 Object-Oriented Concepts.
Programming Paradigms Lecturer Hamza Azeem. What is PP ? Revision of Programming concepts learned in CPLB Learning how to perform “Object-Oriented Programming”
 Computer Science 1MD3 Introduction to Programming Michael Liut Ming Quan Fu Brandon.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
Salman Marvasti Sharif University of Technology Winter 2015.
Object-Oriented Programming © 2013 Goodrich, Tamassia, Goldwasser1Object-Oriented Programming.
OOP (Object Oriented Programming) Lecture 1. Why a new paradigm is needed? Complexity Five attributes of complex systems –Frequently, complexity takes.
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science)
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
OO in Context Lecture 13: Dolores Zage. Confused about OO Not alone, there is much confusion about OO many programs are claimed to be OO but are not really.
Lecture 2: Review of Object Orientation. © Lethbridge/La ganière 2005 Chapter 2: Review of Object Orientation What is Object Orientation? Procedural.
Basic Concepts of OOP.  Object-Oriented Programming (OOP) is a type of programming added to php5 that makes building complex, modular and reusable web.
Lecture 2 Object-oriented programming. Definitions of OOP OOP is a programming paradigm, which utilizes encapsulation, inheritance and polymorphism. (From.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
COP 4331 – OOD&P Lecture 7 Object Concepts. What is an Object Programming language definition: An instance of a class Design perspective is different.
Object Oriented Paradigm OOP’s. Problems with Structured Programming As programs grow ever larger and more complex, even the structured programming approach.
CSC 205 Java Programming II Abstract Data Type. Abstraction The meaning of abstraction Abstraction arises from a recognition of similarities between certain.
Introduction to Object Oriented Programming Lecture-3.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
ISBN Chapter 12 Support for Object-Oriented Programming.
MAITRAYEE MUKERJI Object Oriented Programming in C++
Object-oriented programming (OOP) is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their.
Object Oriented Systems Design
Programming paradigms
CHAPTER 5 GENERAL OOP CONCEPTS.
OBJECT ORIENTED PROGRAMMING overview
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
Types of Programming Languages
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2004 Instructor: Patrice Chalin.
Object oriented analysis and design
Lecture 11 Abstract Data Type
Handout-2(a) Basic Object Oriented Concepts
Presentation transcript:

 Computer Science 1MD3 Introduction to Programming Michael Liut Ming Quan Fu Brandon Da Silva Winter

Contact Information  Feel free to any of us! Please DESCRIBE YOUR QUESTION IN DETAIL WITH YOUR FULL NAME & STUDENT NUMBER.  We will reply to your as soon as possible. You may not get a reply the day of the assignment due date or midterm.  Michael Liut  Brandon Da Silva  Ming Quan Fu  Ming’s Personal Office: ITB 206  No Office hours, do you want to schedule a meeting with us?  us first to schedule a time. We do not have set office hours.  Drop-in Centre not run by TAs, but by Engineering Department.

Assignments Assign_2: Wed Feb 26/14 BY 11pm

MidTerm Test 1 Thu. Feb 13, :30-17:20 T28  BEST OF TWO TERM TESTS (30%)  DO NOT MSAF!!!

Introduction  Programming Styles  Object Oriented Programming  Classes and Objects  Object Oriented Programming in Python  Examples

Programming Styles  Procedure-oriented: (Python, 1MD3)  Algorithms  Object-oriented: (Python,1MD3)  Classes and objects  Logic-oriented: (not included in 1MD3)  Goals, often expressed in a predicate calculus  Rule-oriented: (not included in 1MD3)  If-Then rules  Constraint-oriented: (not included in 1MD3)  Invariant relationships *In this course we focus on procedure and object oriented programming.

Programming styles  Each of these styles of programming are based on their own conceptual framework.  Each requires a different mindset; it is a completely different way of thinking about and solving the problem at hand.

Understanding OO  Object-Oriented Programming ( OOP ) is a programming paradigm that represents concepts as "objects" that have data fields (attributes that describe the object) and associated procedures known as methods.programming paradigmobjectsdata fieldsmethods  Objects, which are usually instances of classes, are used to interact with one another to design applications and computer programs.instancesclasses  C++, Objective-C, Smalltalk, Java, C#, Perl, Python, Ruby and PHP are examples of object-oriented programming languages. C++Objective-CSmalltalkJavaC#PerlPythonRuby PHP

Understanding OO  Lets use a real life example, something tangible:  We can think of a Car as one Class  With a type of car, for example a Jaguar, being its subclass  Or, think about a parent, and its child  Parent Class (Superclass)  Child Class (Subclass)

Classes and Objects  What is a Class? Why do we need them?  What is an Object? Why do we need them?  Do we need to know more about Classes and Objects?

Understanding OO and Classes For all things object-oriented, the conceptual framework is the object model. There are 4 major elements:  Abstraction  Encapsulation  Modularity  Hierarchy

Understanding Classes: Abstraction  Abstraction is one of the fundamental ways that we as humans cope with complexity. [1]  Abstraction arises from a recognition of similarities between certain objects, situations, or processes in the real world, and the decision to concentrate upon these similarities and to ignore for the time being the differences" [3].  An abstraction denotes the essential characteristics of an object that distinguish it from all other kinds of objects and thus provide crisply defined conceptual boundaries, relative to the perspective of the viewer. [1]

Understanding Classes: Abstraction

Understanding Classes: Abstraction  We can abstract different Classes and their relations from real project to form OO software design models  Input: Real project requirements Output: Different classes By: Abstraction

Understanding Classes: Encapsulation  Abstraction and encapsulation are complementary concepts.  Abstraction focuses upon the observable behavior of an object, whereas encapsulation focuses upon the implementation that gives rise to this behavior.  Encapsulation is most often achieved through information binding which is the process of hiding all the secrets of an object that do not contribute to its essential characteristics.

Understanding Classes: Encapsulation

Understanding Classes: Encapsulation  In OO, typically, the structure of a class or an object is hidden.  The implementation of classes methods or object methods are hidden

Understanding Classes: Modularity First, think about “toy bricks” – LEGO!  The act of partitioning a program into individual components can reduce its complexity to some degree.[1]  Although partitioning a program is helpful for this reason, a more powerful justification for partitioning a program is that it creates a number of well defined, documented boundaries within the program. These boundaries, or interfaces, are invaluable in the comprehension of the program [4].

Understanding Classes: Modularity

Understanding Classes and Objects: Modularity  Modules serve as the physical containers in which we declare the classes and objects of our logical design.  For tiny problems, the developer might decide to declare every class and object in the same package.  For anything but the most trivial software, a better solution is to group logically related classes and objects in the same module, and expose only those elements that other modules absolutely must see.

Understanding Classes and Object: Hierarchy Why do we need Hierarchy?  The Meaning of Hierarchy Abstraction is a good thing, but in all except the most trivial applications, we may find many more different abstractions than we can comprehend at one time.  Encapsulation helps manage this complexity by hiding the inside view of our abstractions.  Modularity helps also, by giving us a way to cluster logically related abstractions. Still, this is not enough.  Hierarchy is a ranking or ordering of abstractions.

Understanding Classes and Object: Hierarchy

Overview of OOP Terminology  Class: A user-defined prototype for an object that defines a set of attributes that characterize any object of the class. The attributes are data members (class variables and instance variables) and methods, accessed via dot notation.  Class variable: A variable that is shared by all instances of a class. Class variables are defined within a class but outside any of the class's methods. Class variables aren't used as frequently as instance variables are.  Data member: A class variable or instance variable that holds data associated with a class and its objects.  Instance variable: A variable that is defined inside a method and belongs only to the current instance of a class.

OO Examples in Python

References  [1] Book, OBJECT-ORIENTED ANALYSIS AND DESIGN Grady Booch, Second Edition, ISBN ,1998  Images are also referenced from this book.  [2]  [3] Keene. Object~Oriented Programming, p  [4] Lea, D. Aug.st 12, Users Guide to GIVV C++ Library. Cambridge, MA: Free Software Foundation, p. 12  [5]