CPS 235 Object Oriented Programming Paradigm

Slides:



Advertisements
Similar presentations
Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Advertisements

Chapter 1 An Overview of Computers and Programming Languages.
The Assembly Language Level
Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
Compiler Construction by Muhammad Bilal Zafar (AP)
Programming Types of Testing.
INTRODUCTION T.Najah Al_Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System CS240.
COSC 120 Computer Programming
Introduction to Computers and Programming - Class 1 1 Introduction to Computers and Programming Professor Avi Rosenfeld.
Introduction to Computers and Java Recitation - 01/11/2008 CS 180 Department of Computer Science, Purdue University.
Three types of computer languages
Programming Languages Structure
Chapter 1 Introduction to C Programming. 1.1 INTRODUCTION This book is about problem solving with the use of computers and the C programming language.
1 Programming Languages Translation  Lecture Objectives:  Be able to list and explain five features of the Java programming language.  Be able to explain.
Chapter 8: Introduction to High-Level Language Programming Invitation to Computer Science, C++ Version, Fourth Edition.
C++ fundamentals.
Introduction To C++ Programming 1.0 Basic C++ Program Structure 2.0 Program Control 3.0 Array And Structures 4.0 Function 5.0 Pointer 6.0 Secure Programming.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
COMPUTER PROGRAMMING. Introduction to C++ History Merges notions from Smalltalk and notions from C The class concept was borrowed from Simular67 Developed.
CS190/295 Programming in Python for Life Sciences: Lecture 1 Instructor: Xiaohui Xie University of California, Irvine.
CS102 Introduction to Computer Programming
CHAPTER 4: INTRODUCTION TO COMPUTER ORGANIZATION AND PROGRAMMING DESIGN Lec. Ghader Kurdi.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
Chapter 1 An Overview of Computers and Programming Languages.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Programming in Java This is a one semester course. You will learn the language and some basic programming skills. You are expected to read, program,
CS101 Introduction to Computing Lecture Programming Languages.
C++ Programming Language Lecture 1 Introduction By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Programming With C.
1 CSC204 – Programming I Lecture 2 Intro to OOP with Java.
Introduction to C++ Programming Language
Objected Oriented Programming & Design JAVA Shishir Gupta (704) (704)
Chapter 1 Section 1.1 Introduction to Java Slides prepared by Rose Williams, Binghamton University Kenrick Mock, University of Alaska Anchorage.
Programming Fundamentals. Today’s Lecture Why do we need Object Oriented Language C++ and C Basics of a typical C++ Environment Basic Program Construction.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
COMPUTER PROGRAMMING. A Typical C++ Environment Phases of C++ Programs: 1- Edit 2- Preprocess 3- Compile 4- Link 5- Load 6- Execute Loader Primary Memory.
Chapter 1 Introduction Chapter 1 Introduction 1 st Semester 2015 CSC 1101 Computer Programming-1.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Lecture 1 Introduction. Instructor Name: Seokwoo Song Office: business 524 Phone: Office Hours: M W 4:30 – 5:30 PM or by appointment
Introduction to Computer Application (IC) MH Room 517 Time : 7:00-9:30pm.
Learners Support Publications Object Oriented Programming.
9-Dec Dec-15  INTRODUCTION.  FEATURES OF OOP.  ORGANIZATION OF DATA & FUNCTION IN OOP.  OOP’S DESIGN.
Chapter 4 Software. Chapter 4: Software Generations of Languages Each computer is wired to perform certain operations in response to an instruction. An.
CS-303 Introduction to Programming
1 Chapter 1 Programming Languages Evolution of Programming Languages To run a Java program: Java instructions need to be translated into an intermediate.
Introduction to OOP CPS235: Introduction.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Chapter 1 – Introduction to C.
Introduction to C Programming Language. History of C  C was evolved by Dennis Ritchie at AT&T Bell Laboratories in early of 1970s  Successor of: ALGOL.
Chapter 1 An Overview of Computers and Programming Languages.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (2/2)
Object-Oriented Paradigm (OOP) Course Code: SE 101 Lecture No. 1.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Hello world !!! ASCII representation of hello.c.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Introduction to Programming By: Prof. Muhammad Abu Baker Siddique 2 nd Lecture 1.
Fundamental of Java Programming (630002) Unit – 1 Introduction to Java.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Advanced Computer Systems
Visit for more Learning Resources
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING
High and low level languages
Lecture 1: Introduction to JAVA
SOFTWARE DESIGN AND ARCHITECTURE
OOP What is problem? Solution? OOP
CS190/295 Programming in Python for Life Sciences: Lecture 1
Compiler Construction
Programming Fundamentals Lecture #3 Overview of Computer Programming
PROGRAM AT RUNTIME Subject code: CSCI-620
Presentation transcript:

CPS 235 Object Oriented Programming Paradigm Lecturer Aisha Khalid Khan Introduction CPS235: Introduction

Resource Person Lecturer Aisha Khalid Office: Room 3, First Floor, Computer Science Department Email: aisha.khalid.khan@gmail.com Any course related query sent by email should have “OOPsSpring10” in the subject line Phone: MCS extension 3346 CPS235: Introduction

About the course Credit hours: 3 + 1 Pre-requisites: CPS 101 Textbook Object Oriented Programming in C++ by Robert Lafore E-book available Reference books C++ How To Program, Deitel and Deitel Thinking in C++ by Bruce Eckel Online book available on http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html Course Webpage Will be conveyed to you later CPS235: Introduction

Course Overview Syllabus (Subject to changes) Introduction C++ Programming Basics Object-Oriented Concepts Objects and Classes Operator Overloading Inheritance Polymorphism Pointers Virtual Functions Streams and Files Templates and Exceptions Object Oriented Software Development Building GUIs CPS235: Introduction

Lecture Slides Course lecture slides will be made available in PowerPoint format on the course website on a weekly basis, as they are developed However, possessing/reading these notes is not a suitable substitute for attending lectures CPS235: Introduction

Student Evaluation Assignments (5%) Quizzes (15%) MidTerm (30%) Assignments submitted after the due date will either be rejected altogether or heavily penalized Quizzes (15%) Quizzes (mostly unannounced) will be conducted quite frequently and any missed quizzes will not be re-conducted MidTerm (30%) Final (50%) CPS235: Introduction

Plagiarism Policy Plagiarism “Using another person's ideas or creative work without giving credit to that person” [1] Copying and Pasting from the Internet without citing source Copying an assignment from a friend and turning it in as your own Policy Zero tolerance! Zero points in assignment/ quiz/ project/ exam [1] http://www.cgcc.cc.or.us/Library/lib-instruction/define-terms.htm#M-term CPS235: Introduction

My expectations Arrive on time Maintain class discipline Keep your phones silent Actively participate in class discussion CPS235: Introduction

CLASSIFICATION OF PROGRAMMING LANGUAGES Machine Language Assembly Language High-level language CPS235: Introduction

High Level Language Translators One of the disadvantages of a high-level language is that it must be translated to machine language High-level languages are translated using language translators There are three types of translators: 1. Assemblers 2.  Compilers 3.  Interpreters CPS235: Introduction

High Level Language Translators Assemblers An assembler is a program that translates an assembly language program, written in a particular assembly language, into a particular machine language Compilers A compiler is a program that translates a high-level language program, written in a particular high-level language, into a particular machine language Interpreters An interpreter is a program that translates a high-level language program, one instruction at a time, into machine language. As each instruction is translated it is immediately executed Interpreted programs are generally slower than compiled programs because compiled programs can be optimized to get faster execution Some high-level languages are compiled while others are interpreted. There are also languages, like Java, which are first complied and then interpreted CPS235: Introduction

A typical C++ Development Environment Loader Primary Memory Program is created in the editor and stored on disk. Preprocessor program processes the code. Loader puts program in memory. CPU takes each instruction and executes it, possibly storing new data values as the program executes. Compiler Compiler creates object code and stores it on disk. Linker links the object code with the libraries, creates an executable file and stores it on disk Editor Preprocessor Linker   CPU . Disk Phases of C++ Programs: Edit Preprocess Compile Link Load Execute CPS235: Introduction

Compilation Process: Traditional Compilers In the traditional compilation process, the compiler produces machine code for a specific family of processors For example, given a source program, a compiler for the x86 family of processors will produce binary files for this family of processors A disadvantage of this compilation method is that the code produced in each case is not portable To make the resulting code portable, we need the concept of a virtual machine CPS235: Introduction

Java Compiler Compiler translates program to byte code The JVM is a byte code interpreter that translates byte code to machine code CPS235: Introduction

Compilation Process: Java Compilers CPS235: Introduction

Java Virtual Machine Instead of producing a processor-specific code, Java compilers produce an intermediate code called bytecode The bytecode is also a binary code but is not specific to a particular CPU A Java compiler will produce exactly the same bytecode no matter what computer system is used The Java bytecode is then interpreted by the Java Virtual Machine (JVM) interpreter Notice that each type of computer system has its own Java interpreter that can run on that system This is how Java achieves compatibility It does not matter on what computer system a Java program is compiled, provided the target computer has a Java Virtual machine CPS235: Introduction

Programming Paradigms CPS235: Introduction

Unstructured Programming A program that contains only one main program Main program stands for a sequence of commands or statements which modify data which is global throughout the whole program Unstructured programming. The main program directly operates on global data CPS235: Introduction

Unstructured Programming This programming technique provides tremendous disadvantages once the program gets sufficiently large For example, if the same statement sequence is needed at different locations within the program, the sequence must be copied This has lead to the idea of extracting these sequences, naming them and offering a technique to call and return from these procedures CPS235: Introduction

Procedural Programming Combine returning sequences of statements into one single place A procedure call is used to invoke the procedure After the sequence is processed, flow of control proceeds right after the position where the call was made CPS235: Introduction

Procedural Programming With the introduction of parameters as well as procedures of procedures ( subprocedures) programs can now be written more structured and error free For example, if a procedure is correct, every time it is used it produces correct results The main program is responsible to pass data to the individual calls, the data is processed by the procedures and, once the program has finished, the resulting data is presented CPS235: Introduction

Procedural Programming Now we have a single program which is divided into small pieces called procedures To enable usage of general procedures or groups of procedures also in other programs, they must be separately available For that reason, modular programming allows grouping of procedures into modules CPS235: Introduction

Modular Programming During the 1970s it became clear that even well-structured programs were not enough for mastering the complexity involved in developing a large program system It was also recognized that it was necessary to support the division of the program into well-defined parts or modules, that could be developed and tested independently of one another, so that several people could work together within one large programming project Modular programming is thus concerned with the subdivision of programs into manageable "chunks" CPS235: Introduction

Modular Programming With modular programming procedures of a common functionality are grouped together into separate modules A program therefore no longer consists of only one single part It is now divided into several smaller parts which interact through procedure calls and which form the whole program CPS235: Introduction

Modular Programming Each module can have its own data. This allows each module to manage an internal state which is modified by calls to procedures of this module CPS235: Introduction

Unstructured, procedural, modular programming Procedural programming. The main program coordinates calls to procedures and hands over appropriate data as parameters Unstructured programming. The main program directly operates on global data Modular programming. The main program coordinates calls to procedures in separate modules and hands over appropriate data as parameters CPS235: Introduction

Problems with the procedural approach Data and code that operates on this data are not tightly coupled Data is generally made globally accessible to all functions Inadvertent changes to data may occur CPS235: Introduction

Object Oriented Programming In the OOP approach, data and the functions, which are supposed to have the access to the data, are packed together into one box known as an object Objects of the program interact by sending messages to each other

Benefits of using OOP Objects made in a program can be reused by any other program This increases the reusability of the programs once written. The programs written in an OOP can be easily updated by using the facilities of inheritance CPS235: Introduction

OOP Features Encapsulation Inheritance and reuse Creating new Data types Polymorphism and overloading CPS235: Introduction

Encapsulation Both the data, and the functionality that could affect or display that data are included under a unified name (the object name itself). In the classic definition, the data elements (or properties of the object) are not available to the outside world directly. Instead, methods would be created to give access to these values outside of the object Now we have the ability to declare properties as being public or private CPS235: Introduction

Inheritance and reuse This feature allows developers to define objects in a hierarchy much like a taxonomy chart Each level of the hierarchy defines a more specific object than the parent level Each level inherits all the properties and methods of it's parent object and at that point you define the more specific properties and methods need by the new level of object you created CPS235: Introduction

Creating new data types OOP provides the programmer a convenient way to construct new data types Suppose you want to represent the location of something in the form of its x and y coordinates and want to add them normal arithmetic operations like location1 = location2 + origin Where each of these variables represents a pair of numerical quantities This can be done with the help of objects and classes CPS235: Introduction

Polymorphism At any level of an object hierarchy each object could have a method of the same name and because of the level at which the method resides in, it could know which of the procedures or functions to call Hence you could have a Shape object that has a Draw method Then you could define a Circle, Square and Triangle object as Shape objects and override the Draw method to draw specifically a Circle, Square or Triangle method respectively All 4 objects would then have a Draw method but only the right method for the right object would be called CPS235: Introduction

Overloading When an existing operator such as + or = is given the capability to operate on a new data type such as our location object in the previous example CPS235: Introduction