Course No: ICT. Ed.403 Full marks: (50T + 50 P)
Nature of the course: Theory +Practical Pass marks: 20T+25P
Level: Bridge Course for M Ed. ICTEd. Total periods: 80
Module: III Time per period: 1 Hrs.
- Course Description
The main purpose of OOP with C++ course is to introduce students to the concepts of Object Oriented Programming by using C++. The database management system course aimsto give students an in-depth understanding of databasesystems. - General Objectives
The general objectives of OOP with C++ course are as follows:- Introduce the basic concepts of objects-oriented programming (OOP).
- Discuss objects and classes in details and expose their functions in OOP.
- Create classes and set its properties in OOP.
- Discuss the relationship that exists between constructors and destructors.
- Expose the relationships of composition, inheritance and polymorphism in OOP.
- Introduce modular programming and discuss how to divide a program into modules.
- Discuss in details overloading focusing on the different type ofoverloading.
- Analyze static methods and fields are associated with an entire class ratherthan specific instances of the class
- Learn how to create a class that inherits fields and methods from another class
- Learn how the object of a class can reference members of another class (composition).
- Define the term ‘database management system’
- Give typical examples of database management systems
- Identify the categories of database management systems
- Explain the concept of ‘database servers’
- Outline the evolution of database management systems
- State the common features of database management systems
- Explain the notion of data models
- Identify the common categories of data models
- Explain the concept of entity-relationship models
- Describe the concept of mapping cardinalities with respect to entity-relationship diagram
- Identify the link between instances and schemes
- List and describe the components of a data structure
- State the data structures required for physical system
- Describe the notion of relationship sets
- Give a formal definition of a relational algebra
- Identify the key role of each component of an SQL expression
- Identify the common forms of database modification
- Discover the link between main Constraints and Integrity Constraints
- List and describe the common attribute types
- Understand database Design and Normalization techniques.
- Use Structured Query Language and Transaction Management.
- Understand functional dependency and their uses
- Develop database system to handle real world problem.
- Specific Objectives and Content
Specific Objectives Contents Object Oriented Programming with C++ - Familiarization of the oriented programming system.
- Explain the OOP features
- Understand the advantages of OOP
Unit 1: Object oriented concepts (2)
1.1 Object oriented methodology
1.2 Features, advantages and Applications of OOP- Understand various data types, type conversions, operators in C++
- Explain the term classes
- Describe what objects are
- Understand how to access a class member
- Explain/ Defineimplementation of varieties of classes
. - Understand console I/O and formatting
Unit 2: Introduction to C++ (8)
2.1 Data types, new operators and keywords, type conversion in C++
2.2 Introduction to reference variables
2.3 Classes & Objects
2.4 Classes & Object specifiers
2.5 Defining data members and member functions
2.6 Array of objects
2.7 Managing console I/O
2.8 C++ stream classes
2.9 Formatted and unformatted console I/O
2.10 Usage of manipulators- Implementation of methods and message passing systems
- Understand polymorphism and its importance.
- Explain the term overloading and function overloading
- Understand different types of functions and their uses
Unit 3: Function in C++ (6)
3.1 Call by reference, Return by reference
3.2 Function overloading and default arguments
3.3 Inline function
3.4 Static class members
3.5 Friend functions- Explain the constructors and destructors functions and their uses
Unit 4: Constructors and destructor (4)
4.1 types of constructors
4.1 memory allocation (new and delete)
4.2 usage of destructor- Explain the term operator overloading.
- Understand unary and binary operator overloading
Unit 5: Operator overloading (4)
5.1 overloading unary and binary operators
5.2 overloading using friend function
5.3 usage of this pointer
5.4 overloading insertion and extraction operator- Identify different types of inheritances.
- Develop the program for different inheritance system.
- Define the term virtual function and its uses
Unit 6: Inheritance (12)
6.1 types of inheritance with examples
6.2 virtual base classes and abstract base classes
6.3 constructor and destructor in derived class
6.4 virtual functions and pure virtual function- Understand and use exception handling in C++ programming
Unit 7: Exception Handling in C++ (4)
7.1 Try, catch and throw primitivesDatabase Management System - Understand basic of database.
- Application of database.
- Understand the difference between file system Vs DBMS
- Identify & describe various data models
- Understand various types of queries
- Understand various types of DBMS users & their roles
Unit 1: Introduction of DBMS(5)
1.1 Overview
1.2 File system Vs DBMS
1.3 Describing & storing data ( Data models (relational, hierarchical, network))
1.4 Levels of abstraction
1.5 Data independence
1.6 Queries in DBMS ( SQL : DDL,DML,DCL, TCL)
1.7 Structure of DBMS
1.8 People who deal in DBMS
1.9 Advantages of DBMS- Describe Conceptual model (ER) and understand its various parts and their uses
- Learn various constraints and their uses
- Design conceptual model for small enterprise
Unit 2: Conceptual Design (E-R model) (6)
2.1 Overview of DB design
2.2 ER data model ( entities, attributes, entity sets
2.3 Additional constraints ( key constraints, participation constraints, weak entities, aggregation/generalization
2.4 Conceptual design using ER ( entities VS attributes, EntityVs relationship, binary Vs ternary, constraints beyondER)
2.5 Conceptual design for small to large enterprises relations, relationship sets)- Describe relational model and understand how to convert ER model to relational model
- Understand how different constraints are specified in relational model
Unit 3: Relational Model (5)
3.1 Relations (concepts, definition)
3.2 Conversion of ER toRelational model
3.3 integrity constraints ( key, referentialintegrity, general constraints)- Understand and apply relational algebra for various types of queries
Unit 4: Relational algebra(5)
4.1 Preliminaries
4.2 Relational algebra ( selection, projection,set operations, renaming, joins, division)- Understand and apply various DDL and DML SQL queries.
- Learn some complex SQL queries such as nested queries
- Learn the uses of aggregate operators and functions in SQL queries
- Learn the importance of NULL values and its impact on SQL queries.
- Learn various types of joins to form complex queries
Unit 5: SQL(9)
5.1 DDL (create, drop, alter)
5.2 Forms of a basic SQL query (e.g. expressions, strings in SQL)
5.3 Union / intersection / except
5.4 Nested queries( introduction, correlated queries, set comparison operators)
5.5 Aggregate operators ( group by, having)
5.6 Aggregate functions
5.7 Null values ( comparison using NULL, Logical connections (AND,OR,NOT), impact on SQL commands, outer joins,disallowing NULL), examples on SQL (case studies )- Describe functional dependency and its importance in relational DBMS.
- Understand various types functional dependency
- Describe database normalization, understand the uses of various normal forms
- Convert not normalized database into various types of normal forms.
Unit 6: Functional dependency(10)
6.1 Introduction to schema refinement ( problems caused byredundancy, use of decomposition , problems related todecomposition, functional dependencies, egs motivatingschema refinement ( constraints on an entity set,constraints on relation set, identifying attributes ofentities, identifying entity sets))
6.2 Reasoning aboutfunctional dependency ( F+ , attribute closure)
6.3 Normalization forms ( 1NF, 2NF, 3NF, BCNF)
6.4 Decomposition ( lossless join, dependency preserving property)
6.5 Normalization ( decomposition into BCNF, decomposition into 3NF)
6.6 Other kinds of decomposition (multivalued dependency) - Laboratory:
There shall be 20 exercises in minimum, as decided by the faculty. The exercises shall encompass a broad spectrum of real-life and scientific problems, development of small program to the development of fairly complex subroutines, programs for practical applications and problem solving situations. Laboratory assignments will be offered in groups of two to four for evaluation purpose. In general, the Laboratory Work must cover assignments and exercises from the following areas:1. Data types – control structures, functions and scoping rules.
2. Composite data types, C++ strings, use of keyword, pointers and references
3. Classes and data abstraction
4. Inheritance, abstract classes and multiple inheritance
5. Friend functions, friend classes and operator overloading.
6. Static class members
7. Polymorphism, early binding and late binding
8. C++ type conversion
9. Exception handling
10. Function templates, class templates and container classes.For database management system, there shall be 10 laboratory exercised based on database package to cover theoretical part studied. An individual project should be given to each student.
1. Assignment to create simple tables, with only the primary key constraint (as atable level constraint & as a field level constraint) (include all data types)
2. Assignment to create more than one table, with referential integrity constraint, PKconstraint.
3. Assignment to create one or more tables with following constraints, in addition tothe first two constraints (PK & FK)- Check constraint
- Unique constraint
- Not null constraint
6. Assignment to query the tables using simple form of select statementSelectfrom table [where order by ]Select from table [where group by<> having <> order by <>]
7. Assignment to query table, using set operations (union, intersect)
8 Assignments to query tables using nested queries
NB :- ‘Where’ clause condition will be compound demonstrating joins betweentables.
- Where’ clause condition can be demonstrating joins can be written as nestedquery
9. Assignment to query tables , using nested queries ( use of ‘Except’, exists, notexists clauses
10. Assignment related to small case studies ( Each case study will involve creatingtables with specified constraints, inserting records to it & writing queries for extractingrecords from these tables)
- Instructional Techniques The instructional techniques for this course are divided into two groups. First group consists of general instructional techniques applicable to most of the units. The second group consists of specific instructional techniques applicable to specific units.
- 4.1 General Instructional Techniques
- Providing the reading materials to the students to familiarize the units.
- Lecture, question-answer, discussion, brainstorming, practical, and buzz session.
- Specific Instructional Techniques
- Lecture
- Practical
- Discussion
- Group work
- Evaluation
Students will be evaluated on the basis of the class test during academic session, classroom participation, presentation of the reports and other practical activities. The scores obtained will be used for feedback purposes. The students will be evaluated through the annual examination held by the Office of the Controller of Examinations on the basis of objective questions, short and long questions. The types and number of questions to be asked in the annual examination is mentioned below:Types of questions Total questions to be asked Number of questions to be answered and marks allocated Total marks Group A: Multiple choice items 10 questions 10 x 1 mark 10 Group B: Short answer questions 4 with 2 'or' questions 4 x 7 marks 28 Group C: Long answer questions 1 with 1 'or' question 1 x 12 marks 12
The performance of the students will be assessed through practical examination. The practical examination will be conducted within the campus by external and internal examiners. Marks distribution for the practical examination is given as follows.Contents Total questions to be asked Number of questions to be answered and marks alloted Total marks OOPs with C++ 4 4×5 mark 20 SQL 4 4×5 mark 20 Viva (question to asked) 10 10×1 mark 10
Recommended Books R. Lafore, Object Oriented Programming in Turbo C++, Galgotia Publications Ltd. India, 2001. (For Units I to IV)
A.K Majumdar and P. Bhattacharaya, Database Management Systems, Tata McGraw Hill, India, 2003. (For Units V to XV)- References
Eckel, B., Thinking in C++, 2nd Edition, Prentice Hall, 2000
Budd, T., An Introduction to Object Oriented Programming, Second Edition, Addison-Wesley, Pearson Education Asia, ISBN: 81-7808-228-4.
Savitch, W, Problem Solving with C++ - The Object of Programming, 2nd Edition, Addison – Wesley, Pearson Education Asia (LPE), 2001, ISBN: 81-7808-173-3.
H.F. Korth and A. Silberschatz, Database System Concepts, McGraw Hill.
R.E. Mani and S.C Nevathe, Fundamentals of Database Systems, Benjamin/Cummings Publishing Co. Inc.
G.C Everest, Database Management, McGraw Hill.
BjarneStroustrup, “The C++ Programming Language: Second Edition”