CSE202T Object Oriented Programming 15121::amita Dhiman 3.0 1.0 0.0 4.0 Courses With Numerical and Conceptual Focus
CSE202T Object Oriented Programming 15121::amita Dhiman 3.0 1.0 0.0 4.0 Courses With Numerical and Conceptual Focus
CSE202T Object Oriented Programming 15121::amita Dhiman 3.0 1.0 0.0 4.0 Courses With Numerical and Conceptual Focus
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-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://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
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
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))
RW-11
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
RW-11
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
be able to take input and provide required output and to use variety of operators
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
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
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
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)
RW-15
Week 4
Lecture 10
T-2:Chapter-6 6.16
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
To be able to use number and type of inbuilt functions available To use basic inbuilt functions
Lecture 14
Lecture 15
Structured Data Types and Classes (Unions and Enumerations and Type Definition using typedef statement)
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
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
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
Lecture 24
Inheritance and Aggregation T-1:Chapter-12 12.1 (Inheritance Basics, Types (simple, multi-level, multiple and hierarchical))
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
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)
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
Week 11
Lecture 31
Dynamic Memory Allocation and Dynamic Binding(Virtual functions, Pure virtual functions, Abstract classes.)
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)
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
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
AT No.
Objective
Evaluation Mode
Test 1
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
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 7
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