Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Similar documents
San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Spring 2018

Compulsory course in Computer Science

1st Semester MTCE 601A COMPUTER SYSTEM SOFTWARE

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

CPSC 2380 Data Structures and Algorithms

CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid. Fall 2018

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

Cpt S 122 Data Structures. Course Review Midterm Exam # 2

CENTRAL TEXAS COLLEGE COSC 1337 PROGRAMMING FUNDAMENTALS II. Semester Hours Credit: 3

CSCI-1200 Data Structures Fall 2009 Lecture 25 Concurrency & Asynchronous Computing

CoSci 440 SYLLABUS Programming in C++ INSTRUCTOR Mari Rettke cell SECTION : and 13345

B.C.A 2017 OBJECT ORIENTED PROGRAMMING USING C++ BCA303T MODULE SPECIFICATION SHEET

VALLIAMMAI ENGINEERING COLLEGE

Data Structures. Lecture 1: Introduction CSC212. Instructor: George Wolberg Department of Computer Science City College of New York

CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon

Cpt S 122 Data Structures. Course Review FINAL. Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University

M.C.A DEGREE EXAMINATION,NOVEMBER/DECEMBER 2010 Second Semester MC 9222-OBJECT ORIENTED PROGRAMMING (Regulation 2009)

COURSE SYLLABUS ****************************************************************************** YEAR COURSE OFFERED: 2015

Course Administration

Object Oriented Programming with c++ Question Bank

More on Arrays CS 16: Solving Problems with Computers I Lecture #13

Object Oriented Programming

Object Oriented Paradigm

Data Structures - Section FG

CS 3304 Comparative Languages. Lecture 1: Introduction

Short Notes of CS201

01 INTRODUCTION TO COURSE

CS201 - Introduction to Programming Glossary By

CMPT Data and Program Organization

Absolute C++ Walter Savitch

CS183 Software Design. Textbooks. Grading Criteria. CS183-Su02-Lecture 1 20 May by Eric A. Durant, Ph.D. 1

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

CSCI-1200 Data Structures Fall 2017 Lecture 25 C++ Inheritance and Polymorphism

1. Software Systems Complexity, OO Paradigm, UML

MaanavaN.Com CS1203 OBJECT ORIENTED PROGRAMMING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Cleveland State University

Problem Solving with C++

Advanced Programming CMPS 109

CS Computer Science I

CS 210 Algorithms and Data Structures College of Information Technology and Engineering Weisberg Division of Engineering and Computer Science

Object Oriented Programming

CISC 3130 Data Structures Spring 2018

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen

COMP322 - Introduction to C++ Lecture 01 - Introduction

CSCI-1200 Computer Science II Fall 2006 Lecture 23 C++ Inheritance and Polymorphism

CMPE/SE 135 Object-Oriented Analysis and Design

Inheritance: Develop solutions by abstracting real-world object and their interaction into code to develop software solutions. Layering: Organization

Computer Science II Lecture 1 Introduction and Background

COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University

Object-Oriented Programming for Managers

CISC 3130 Data Structures Fall 2018

CSC 111 Introduction to Computer Science (Section C)

CS503 Advanced Programming I CS305 Computer Algorithms I

Course Text. Course Description. Course Objectives. StraighterLine Introduction to Programming in C++

Preface to the Second Edition Preface to the First Edition Brief Contents Introduction to C++ p. 1 A Review of Structures p.

Encapsulation. Mason Vail Boise State University Computer Science

Model 4.2 Faculty member + student Course syllabus for Advanced programming language - CS313D

CS 241 Data Organization. August 21, 2018

CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful?

Course Review for. Cpt S 223 Fall Cpt S 223. School of EECS, WSU

Derived Classes in C++

CE221 Programming in C++ Part 1 Introduction

VIRTUAL FUNCTIONS Chapter 10

I BCS-031 BACHELOR OF COMPUTER APPLICATIONS (BCA) (Revised) Term-End Examination. June, 2015 BCS-031 : PROGRAMMING IN C ++

Lecture 7. Log into Linux New documents posted to course webpage

ECE Object-Oriented Programming using C++ and Java

Study Guide to Exam 2

Algorithms and Data Structures Spring 2008

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

Programming Languages CSCE

EECE.2160: ECE Application Programming Spring 2017

CPSC 427: Object-Oriented Programming

10CS36: Object Oriented Programming with C++

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone Address Office Hours

Today. An Animated Introduction to Programming. Prerequisites. Computer programming

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

Programming, numerics and optimization

CSE 332: Data Structures. Spring 2016 Richard Anderson Lecture 1


RAJIV GANDHI COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY OBJECT ORIENTED PROGRAMMING QUESTION BANK UNIT I 2 MARKS

Outline. Computer Science 331. Course Information. Assessment. Contact Information Assessment. Introduction to CPSC 331

Review and Recursion

Final Exam. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings

CSEN401 Computer Programming Lab. Topics: Introduction and Motivation Recap: Objects and Classes

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

Topics. Modularity and Object-Oriented Programming. Dijkstra s Example (1969) Stepwise Refinement. Modular program development

Agenda: Notes on Chapter 3. Create a class with constructors and methods.

Problem Solving With C++ Ninth Edition

CSCE 206: Structured Programming in C

Fast Introduction to Object Oriented Programming and C++

CSE 373: Introduction, ADTs, Design Decisions, Generics. Michael Lee Wednesday Jan 3, 2017

Lecture 6. COMP1006/1406 (the OOP course) Summer M. Jason Hinek Carleton University

Announcements. 1. Forms to return today after class:

Lecture 15: Object-Oriented Programming

CMSC 202 Section 010x Spring Justin Martineau, Tuesday 11:30am

Transcription:

1 CPSC2620 Advanced Programming Spring 2003 Instructor: Dr. Shahadat Hossain 2 Today s Agenda Administrative Matters Course Information Introduction to Programming Techniques 3 Course Assessment Lectures: MWF 12:00 noon - 12:50 p.m. (Section A) 3:00 p.m. - 3:50 p.m. (Section B) Weekly Labs (Monday) and Tutorials (Wednesday) Tutorials begin this week; no labs this week Approximately 8 homework assignments Two quiz tests (in January and March) One midterm on February 15 Final exam 4 Course Material Lecture Notes: These slides will be posted on the course web page http://classes.uleth.ca/200301/cpsc2620a/ Assignments: Solutions will be posted after due date Text: Problem Solving With C++ by Walter Savitch 5 Grading Method Assignments: 25% of course grade Quiz tests: 5% each Midterm: 25% Final: 40% 6 Out of Class Help Academic Assistant: Rex Forsyth Instructor: - Office Hours: MWF 4:00 p.m. - 5:00 p.m or by appointment - Office Location: C540 University Hall Labs and Tutorials 7 Course Outline Introduction to Object-oriented design and standard libraries - vector, string - iostream library 1

Program performance, running time estimation Recursion, sorting, searching Designing and implementing classes - Member functions, constructors, destructors - Function and operator overloading 8 Course Outline (contd.) Storage types, dynamic memory management, pointers Simple data structures - Containers and iterators - Linked lists, stacks, queues, and binary trees Inheritance and polymorphism - Derived classes, abstract classes, pure virtual functions 9 What is cs2620? cs2620 is an introduction to programming and problem-solving using Object-Oriented (OO) techniques Assumes completion of cs1620 (or equivalent) and familiarity of C++ language syntax 10 Bits of advice to succeed in cs2620 Start assignments early. Document your code. Design before implementing Test each function/method code separately for correctness before you plug them in the main code Go back and review - practice what you have learned - mistakes will happen but you will learn from them You will be tested on the concepts you have learned 11 2

Questions? 12 Introduction to Programming Techniques Procedural Technique - Divide problem into sequence of subproblems to be solved - Program is sequence of procedure calls - Languages: C, Pascal, Fortran, COBOL, etc Procedural Design - identify simple tasks that can be programmed easily - break tasks into subtasks - write small useful routines and compose into larger procedures 13 Problems in Procedural Programs Large program built from many small procedures Not clear which does what to what data No enforced control over access to data Difficult to fix bugs, modify, and use procedures in other programs 14 Modular Programming Group together related procedures into units called Modules Modules can have their own data that they manipulate Example: Modula Problems: No enforced control to access of data 15 Object-Oriented Programming Think of building program from parts like building a machine! Parts are objects that interact to solve problem Define classes of objects that can be reused Think in terms of objects and their interactions Languages: C++, Java, Eiffel, Smalltalk, etc 16 Why Object-Oriented? Object interactions are defined by methods, which are just procedures (functions in C++) The complete program still is a sequences of procedure calls, but acting on objects (not just on some data structures) 3

Procedures are organized around objects Data access is easier to understand Data access is easier to control 17 Generalization in OOP Two approaches to defining classes in terms of others inheritance : inherit properties of other classes parameterized classes (templates) class defined in terms of parameter classes Design patterns are solutions to common design problems 18 OO Design Identify objects and classes Strategies: abstraction and separation Identify how objects interact in system Strategies: composition Identify hierarchies of related classes Strategies: generalization 19 OO Design Strategies Abstraction modeling essential properties Separation treat what and how independently Composition building complex structures from simpler ones Generalization identifying common elements 20 Example: Bank Administration Objects to be modeled - account - employee - client 21 How do represent an Account? Attributes: - account number - owner name - balance - interest YTD 4

(?) Behavior: - make deposit - withdraw - get balance - transfer - (?) 22 A bankaccount Class class bankaccount { public: void makedeposit(double amount); void withdraw(double amount); bool transfer(bankaccount &to, double amount); double getbalance() const; private: double balance; double interestytd; string ownername; int accountnumber; }; 23 Next Lecture Software Libraries: A very brief introduction to C++ Standard Template Library (STL) - string class - vector class Reading: Chapter 11 from the textbook Input/Output in C++ (also done in the tutorial) Basic stream input/output Reading: Chapter 5 from the textbook 5