You are on page 1of 10

Lovely Professional University, Punjab

Course Code CSE202T Course Category Course Title OBJECT ORIENTED PROGRAMMING Courses with numerical and conceptual focus Course Planner 15121::Amita Dhiman Lectures 3.0 Tutorials Practicals Credits 1.0 0.0 4.0

TextBooks Sr No T-1 T-2 Title A Structured Approach using C++ Programming with C++ Reference Books Sr No R-1 R-2 R-3 R-4 R-5 R-6 Other Reading Sr No OR-1 OR-2 OR-3 OR-4 OR-5 OR-6 OR-7 OR-8 Journals articles as Compulsary reading (specific articles, complete reference) Dr. Dobb's Journal , www.artima.com (Online C++ Journals) , http://www.informatik.uni-trier.de/~ley/db/journals/joop/index.html , http://c2.com/cgi/wiki?JournalOfObjectOrientedProgramming , http://en.wikipedia.org/wiki/C/C%2B%2B_Users_Journal , http://wordaligned.org/articles/printed-c-journals , http://domains.techweb.com/ , http://www.apl.jhu.edu/~paulmac/c++-references.html#Journals , Title Author Edition 4th 2nd 4th 3rd 2nd 1st Year Publisher Name Prentice Hall Addison Wisely Addison Wisely Tata McGraw Hill Pearson Education Cengage Learning Object Oriented Programming with C E. Balagurusamy ++ The Annotated C++ Reference Manual C++ Primer Teach Yourself C++", Object oriented Programming with ANSI and Turbo C++ A Workbook on C++ J Marget A. Ellis and Bjarne Stroustrup Lippman F. B Herbert Schildt Kamthane, Ashok N. Sumit Mittu Author Behrouz A. Forouzan and Richard F. Gilberg D Ravichandran Edition 2nd 3rd Year Publisher Name Cengage Learning Mc graw Hill

Relevant Websites Sr No RW-1 (Web address) (only if relevant to the course) http://www.icce.rug.nl/documents/cplusplus Salient Features This document is intended for knowledgeable users of C (or any other language using a C-like grammar, like Perl or Java) who would like to know more about, or make the transition toC++. Frequently asked questions in C++ About C, C++ and C# brings the latest programming tutorials, programming challenges,C++ for beginners LearnCpp.com is a totally free website devoted to teaching you to program in C++. Whether youve had any prior experience programming or not, the tutorials on this site will walk you ACM (Association for Computing Machinery), the worlds largest educational and scientific computing society, delivers resources that advance computing as a science and a profession. Pointers Pointers A complete step by step guide for beginners to learn C++ Pointers slides Pointers slides Introduction to basic concepts operators used in c++ Decision making statements Arrays

RW-2 RW-3 RW-4

http://www.research.att.com/~bs/bs_faq.html http://cplus.about.com http://www.learncpp.com

RW-5

www.acm.org

RW-6 RW-7 RW-8 RW-9 RW-10 RW-11 RW-12 RW-13 RW-14 RW-15 RW-16 RW-17 RW-18 RW-19 RW-20 RW-21 RW-22 RW-23 RW-24

http://www.cplusplus.com/doc/tutorial/pointers/ http://www.newty.de/fpt/index.html http://www.cprogramming.com/tutorial/c++-tutorial.html http://www.cs.ust.hk/~huamin/COMP171/pointers.ppt http://www.cs.virginia.edu/c++programdesign/slides/ppt/chap11.ppt http://www.cs.fsu.edu/~gaitrosd/classes/cop3330/Slides/Introduction.ppt http://classes.cec.wustl.edu/~cse332/C++_programs.ppt http://www.cs.bu.edu/fac/gkollios/cs113/Slides/lecture4.ppt http://www.cs.virginia.edu/c++programdesign/slides/ppt/chap11.ppt

http://pages.cpsc.ucalgary.ca/~duta/index_files/Writing%20Functios%20in%20C++.ppt Functions http://web.cs.wpi.edu/~cs2303/c10/Protected/Lectures-C10/Week2_StructuresEtc.ppt http://web.cs.wpi.edu/~cs2303/c10/Protected/Lectures-C10/Week2_StructuresEtc.ppt http://elearning.najah.edu/OldData/pdfs/C++%20Classes%20Tutorials.ppt http://www.cse.unr.edu/~bebis/CS308/PowerPoint/ReviewConstDestr.ppt http://web.cs.wpi.edu/~cs2303/c10/Protected/Lectures-C10/Week5_DeeperClasses.ppt http://ebiz.u-aizu.ac.jp/~paikic/lecture/2003-1/program3adv/week02/lecture/Operator.ppt http://www.lsp4you.com/cpp/lsp4you_cpp_unit9.ppt http://www.cs.ust.hk/~huamin/COMP171/pointers.ppt http://www.slideshare.net/nita23arora/file-handling-in-c Structures Structures Classes and objects Manager Functions Friend Function operator overloading Typeconversions Classes and pointers File handling

RW-25 RW-26 RW-27 RW-28 RW-29

http://nishank-link.weebly.com/uploads/2/6/8/4/2684565/file_handling_in_c.ppt http://www.cs.virginia.edu/~gfx/glunch/STL.ppt

Files STL

http://www.yolinux.com/TUTORIALS/C++MemoryCorruptionAndMemoryLeaks.html Memory Leak http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic= %2Fcom.ibm.cpp.doc%2Fsii-extend-16107.htm http://wps.aw.com/wps/media/objects/1935/1982372/ppt/sav_ch15.ppt Object decomposition Object slicing

Audio Visual Aids Sr No AV-1 AV-2 (AV aids) (only if relevant to the course) http://nptel.iitm.ac.in/video.php?subjectId=106102067 http://www.catonmat.net/blog/bjarne-stroustrup-video-lecture-on-cpp-standard/ Salient Features To maintain a high level of interest in the lesson To get students to use the language, especially at the beginning stages

Software/Equipments/Databases Sr No SW-1 Virtual Labs Sr No VL-1 (VL) (only if relevant to the course) http://deploy.virtual-labs.ac.in/labs/cse02/index.php?section=Introduction Salient Features The interactive experiments in this lab will give the students an opportunity for learning and better understanding of the basic concepts and constructs of computer programming (S/E/D) (only if relevant to the course) Dev-C++ Salient Features Dev-c++ is an IDE for developing code written in C++ language for windows and Linux platforms

LTP week distribution: (LTP Weeks) Weeks before MTE Weeks After MTE Spill Over 7 6 2

Detailed Plan For Lectures


Week Number Lecture Number Broad Topic(Sub Topic) Chapters/Sections of Text/reference books Other Readings, Lecture Description Relevant Websites, Audio Visual Aids, software and Virtual Labs Learning Outcomes Pedagogical Tool Demonstration/ Case Study / Images / animation / ppt etc. Planned

Week 1

Lecture 1

Features and Basics of C++ Programming(Introduction to concepts of OOP and OOP Languages,Procedural programming paradigm v/s objectoriented programming paradigm. Writing, Editing, Compiling and Linking programs.) Features and Basics of C++ Programming(Elements and Structure of C++ program (Constants, Data Types, Storage Classes, Variables, Identifiers))

T-1:Chapter-1 1.6 T-2:Chapter-1 1.1 1.2 1.8

RW-11

Description of basic OOPS programming Features

To explain the Slides from Refrence principles of the object oriented programming paradigm specifically including abstraction encapsulation inheritance and polymorphism To be able to describe and use basic key terms used in a program

Lecture 2

T-1:Chapter-2 2.2 T-2:Chapter-3 3.1 to 3.6

RW-11

Defining basic building blocks of Program

Lecture 3

Features and Basics of C++ T-1:Chapter- 3 (page Programming(Reading and writing 75-101) Data using cin and cout, Operators, Expressions and Statements Operator Precedence and Associativity.) Control structure and Arrays (Control Transfer Statements (selection, repetition, and jump)) T-2:chapter-5

RW-12

Different kind of operator usage

be able to take input and provide required output and to use variety of operators

Slides from Refrence

Week 2

Lecture 4

RW-13

different kind of decision To be able to use wide making statements variety of decision making statements in their programming problems One dimensional array usage Two dimensional array usage

Slides from Refrence

Lecture 5

Control structure and Arrays(Using T-2:Chapter-7 7.1 to arrays in C++ (one-dimensional)) 7.5 Control structure and Arrays(Using arrays in C++ (Two-dimensional)) T-2:Chapter-7 7.7

RW-14

To be able to store large Slides from Refrence amount of data in a structured manner To be able to store large amount of data in a matrix form To illustrate how to use Slides from Refrence a pointer to access a variable and also to modify its value

Lecture 6

Pointers,References and String T-1:Chapter-9 9.1 to Concepts(Understanding pointers, 9.5 Accessing address of a variable, Declaring and initializing pointers, Accessing a variable through its pointer) Pointers,References and String Concepts(Defining and using pointer and reference variables. The void pointer, Pointer arithmetic) T-2:Chapter-8 8.2

RW-9 RW-10

to initialize pointers

Difference between refrence and pointer

To explain how it will allow you to treat the reference exactly as though it were the original variable for the purpose of accessing and modifying the value of the original variableeven if the second name the reference is located within a different scope

Week 3

Lecture 7

Pointers,References and String Concepts(Pointer to Pointer, Possible problems with the use of pointers - Dangling/wild pointers, Null pointer assignment) Pointers,References and String Concepts(String handling concepts, String input/output, Array of strings.)

T-2:Chapter-8 8.9

Handling different kinds To explain how to deal of problems related with with memory safety pointers violations by explaining Dangling pointers different kinds of functions used for Strings To use some different functions that are used for strings like adding to strings finding the length of strings and also of checking to see if strings match To use blocks of code Slides from Refrence that perform a number of pre defined commands to accomplish something productive To be able to express or use operations in terms of themselves

Lecture 8

T-1:Chapter-14 14.1 to 14.4

Lecture 9

Functions and Input/output Streams(Creating User Defined functions, Functions with Default parameters/arguments, Inline Functions) Functions and Input/output Streams(Recursion) Functions and Input/output Streams(Function overloading and Scope rules)

T-1:Chapter-4 4.1 to 4.4

RW-15

Introducing Modularization in OOP

Week 4

Lecture 10

T-2:Chapter-6 6.16

different kind of Manipulator functions usage

Lecture 11

T-2:Chapter-6 6.13 and 13.1 R-1:chapter 3 R-5:chapter 5 T-2:Chapter-8 8.3 8.4 8.5

To use same function To be able to name to execute task of understand how same different data types function name is useful in real world implementations To use inbuilt basic library functions How can we use pointers in conjunction with pointers

Lecture 12

Functions and Input/output Streams(Pointers with Functions (Passing arguments to function using Reference and using Pointers, Returning pointers from functions),Pointer to Functions) Functions and Input/output Streams(Features of Input/output Streams,Manipulators Functions.) Functions and Input/output Streams(Input and output Stream Flags,Library Functions)

Week 5

Lecture 13

T-2:Chapter-4 4.6 and 4.8

to describe pointers dealing with functions

To be able to use number and type of inbuilt functions available To use basic inbuilt functions

Lecture 14

T-1:Chapter- 4 (page- 147-154) T-2:Chapter-4 4.9 RW-16

To use a function that call itself

Lecture 15

Structured Data Types and Classes T-2:chapter-9 9.1 to (Structures) 9.9

To see the difference between structure of C and OOPs

To be able to differentiate between Structures used in C and C

Slides from Refrence

Structured Data Types and Classes (Unions and Enumerations and Type Definition using typedef statement)

T-2:Chapter-9 9.10 9.12 9.13

RW-17

To see the difference To be able to use between Union of C and restricted range of OOPs values which are all expressed as constants by the use of Enumerations

Slides from Refrence

Week 6

Lecture 17

Structured Data Types and Classes T-1:Ch- 10 (pg- 488(Creating classes, Class objects, 498) Accessing class members)

RW-18

Introducing Encapsulation with the help of classes

To be able to Slides from Refrence understand how we achieve Encapsulation by using classes and its member To illustrate how to use Slides a function which has the same name as the class This Lecture describes how a static data members can be initialized inside a class or value type within the C Programming

Lecture 18

Structured Data Types and Classes T-2:Chapter-11 11.1 (Manager Functions (constructors to 11.3 and destructor), Copy constructor) R-1:chapter-6 Structured Data Types and Classes T-1:Chapter-11 11.2 (Dynamic constructors , Inline and T-2:Chapter-11 11.4 Non-inline member 11.5 functions,Static data members and R-1:chapter-6 static member functions, Initializer lists) Structured Data Types and Classes T-2:Chapter-10 10.7 (Array of objects, Classes 10.8 and 11.8 containing pointers. Pointer to objects, The this pointer) Structured Data Types and Classes T-2:Chapter-11 11.6 (Friends of a class (Friend Functions and Friend classes))

RW-19

To use a function that has same name of the class to define the usage of static data members

Week 7

Lecture 19

Lecture 20

To use number of objects To be able to use of a single class pointers with the objects RW-20 To access the Private To see how it can be members of a class with useful for one class to help of Friend Function see and use the private variables of another class Slides from Refrence

Lecture 21

MID-TERM
Week 8 Lecture 22 Operator Overloading and Type Conversion(Operator Overloading (unary operator, binary operator overloading)) T-2:chapter 13 RW-21 Overloading of operator To be able to provide Slides from Refrence with the help of friend an operator to a class by and member function overloading the builtin operator to perform some specific computation Conversion of one class to basic type To be able to convert type of a class to basic type and viceversa To be able to convert type of one class into another It is possible to structure a program starting with abstract ideas that are then implemented by specific classes Slides from Refrence

Lecture 23

Operator Overloading and Type Conversion(Type conversions basic type to class type, class type to basic type) Operator Overloading and Type Conversion(Type conversions Class type to another class type)

R-1:chapter 7

RW-22

R-1:chapter 7

Conversion of one class to another Type of inheritance

Lecture 24

Inheritance and Aggregation T-1:Chapter-12 12.1 (Inheritance Basics, Types (simple, multi-level, multiple and hierarchical))

Inheritance and Aggregation (Modes (private, protected, public inheritance))

T-1:Chapter-12 12.2

specification of To get familiar with accessibility of members different accessibility of a class of members of a class

Week 9

Lecture 25

Inheritance and Aggregation T-1:Chapter-12 12.4 (Overriding member functions, R-1:chapter -8 Order of execution of constructors and destructors) Inheritance and Aggregation (Resolving ambiguities in inheritance, Virtual base class) R-1:Chapter-8

overriding member function in inheritance

To be able to provide re usability in code

inheritance To be able to resolve Solution to the ambiguity ambiguity in of inheritance through Inheritance virtual base class aggregation use between To be able to perform objects of different inclusion of objects classes within an object RW-28 RW-29 Discussion on Slicing problem of an object To be able to know how Slides additional attributes of a derived class object is sliced to form a base class object

Lecture 26

Inheritance and Aggregation (Aggregation concepts, The const keyword) Inheritance and Aggregation (Object slicing, Object composition and delegation)

T-1:Chapter-12 12-9 and page no.45

Lecture 27

Week 10

Lecture 28

Dynamic Memory Allocation and Dynamic Binding(Dynamic memory allocation using new and delete operators) Dynamic Memory Allocation and Dynamic Binding(Pointers and classes, Pointer to an object, Pointer to a member) Dynamic Memory Allocation and Dynamic Binding(Memory leak and allocation failures) Dynamic Memory Allocation and Dynamic Binding(Self-referential classes, Early binding and late binding)

T-1:Chapter-9 9-15

Allocation of memory at To be able to use run time Memory in an efficient manner by allocating it at run time Use of pointers to access To be able to use members of a class pointers in conjunction with classes RW-27 Memory leak problem that we encounter because of improper usage Difference of compile time and runtime To prevent memory safety violations Slides

Lecture 29

T-2:10.8 R-1:chapter 9

Lecture 30

T-2:Chapter-14 14.2 14.5

To be able to Link together to form useful data structures

Week 11

Lecture 31

Dynamic Memory Allocation and Dynamic Binding(Virtual functions, Pure virtual functions, Abstract classes.)

T-2:Chapter-14 14.4 14.6 14.7

Introducing a class just To create a function used for the whose behaviour can be implementation of others overridden within an inheriting class by a function with the same signature calling of destructors in order through virtual destructors RW-24 to open or close a file using oop code reading and writing in text files reading and writing in binary files To be able to call the destructors in order To get familiar with Slides from Refrence basic introduction of file opening and closing Basic reading and writing in file Basic binary file operations

Dynamic Memory Allocation and Dynamic Binding(Virtual destructors and polymorphsim) Lecture 32 Data File operations(Opening and closing of files, stream state member functions) Data File operations (Reading/Writing of files) Data File operations(binary file operations)

T-2:Chapter-14 14.10 T-2:Chapter-16 16.1 and 16.2 T-2:Chapter-16 16.3 T-2:Chapter-16 16.4

Lecture 33

Week 12

Lecture 34

Data File operations(classes and file operations, Structures and file operations)

T-2:Chapter-16 16.5 and 16.6

Classes and Structures in To use classes and file handling Structures with Files using number of objects in file handling using nested classes in file handling handling updations in file randomly Introducing generic programming concept with the help of templates To use number of objects of classes with files To be able to operate with nested classes To be able to update file in Random Manner To be able to use generic types

Lecture 35

Data File operations(Array of class T-2:Chapter-16 16.7 objects and File operations) Data File operations(Nested Classes and File operations) Data File operations(Random Access File Processing) T-2:Chapter-16 16.8 T-2:Chapter-16 16.9

Lecture 36 Week 13 Lecture 37 Lecture 38

Templates and Exception Handling T-2:Chapter-15 15.1 (Function Template and Class and 15.2 Template) Templates and Exception Handling T-2:Chapter-15 15.4 (Basics of exception handling, Exception handling mechanism) Templates and Exception Handling T-2:Chapter-15 15.4 (Throwing mechanism, Catching mechanism)

Lecture 39

Difference between error To be able to catch and exception exceptional circumstances like runtime errors introducing mechanism to handle exceptions To be able to catch exceptional circumstances like runtime errors

SPILL OVER
Week 14 Lecture 40 T-2:Chapter-17 17.1 to 17.6 RW-26 STLContainers To be able to focus on Introduction Vector class dynamic arrays Dequeue class List Stack and Queue class STLContainers Library Priority queue classSet Multiset Map Multimap Bitset To be able to focus on dynamic arrays Slides from Refrence

Lecture 41

T-2:Chapter-17 17.7 to 17.12

Scheme for CA:


Component Homework,Quiz,Test Frequency 2 Total :Out Of 3 Each Marks Total Marks 10 10 20 20

Details of Academic Task(s)

AT No.

Objective

Topic of the Academic Task

Nature of Academic Task (group/individuals/field work Individual

Evaluation Mode

Allottment / submission Week 5/5

Test 1

To test the performance of the student

Test will be purely analytical based on the topics covered upto week-4 and duration of test is 45 minutes.

depends upon the attemptation of answers given by the student Strictly on the basis of evaluation parameters communicated to the students at the time of allotment

Homework 1

To check the indepth Homework must be purely analytical and consist of lots of Individual knowledge of the programming exercises. concepts Homework will have two parts ,Part-A and Part-B each consist of 3 questions and all are mandatory to workupon. Part-A will be a collection of questions based on the topic covered from week-4 to week-6 Part-B will be a collection of questions based on the topic covered from week-7 to week-8. To encourage the students for indepth study of the concepts In a quiz (MCQ based Test) the questions must be so framed that Individual student is not able to answer through sheer guess work. Each question must require some sought of analysis. The time limit should be decided carefully according to the complexity of questions and number of questions per test. Typically the maximum time available for MCQ based test should be one minute per question. Negative marking (25%) should be done to avoid guess work. Quiz will cover syllabus from week 9 to week 11

6/9

Quiz 1

Based on the performance of the individual student

11 / 11

Plan for Tutorial: (Please do not use these time slots for syllabus coverage)
Tutorial No. Lecture Topic Type of pedagogical tool(s) planned (case analysis,problem solving test,role play,business game etc)

Tutorial 1

Problem solving about Constants, Data Types,Variables, Identifiers and Storage Classes

Problem solving

Tutorial 2

Operators, Expressions and Statements. Operator Precedence and Associativit and Control Transfer Statements (selection, repetition, jump) Problem solving on Arrays,pointers and Refrence variables Problem Solving on Functions Problem solving on Structures Problem Solving on Unions and Enumerations

Problem solving

Tutorial 3

Problem solving

Tutorial 4 Tutorial 5 Tutorial 6

Problem solving Problem solving Problem solving

Tutorial 7

Problem solving on and classesconstructors and Destructors

Problem solving

After Mid-Term
Tutorial 8 Tutorial 9 Tutorial 10 Tutorial 11 Tutorial 12 Tutorial 13 Problem solving on operator overloading Problem solving on Inheritance Problem Solving on Dynamic Memory allocation Quiz Problem solving on File Handling Problem solving Problem solving Problem solving Quiz Problem solving

Problem solving on Templates and Exception Handling Problem solving

You might also like