Department: B. Tech.-CSE
Semester: III
Credit: 3 [3-0-0] (Program Core)
Offered: 2025
Pre-requisite: Computer Programming skills
Part I
Unit 1: C++ Programming Basics: Fundamentals, Variables and Assignments, Data Types and Expressions, Input and Output, Use of Boolean Expressions, The Flow of Control-Multiway Branches-Use and Design of Loops, Top-Down Design, Subprograms, Predefined Functions, User-Defined Functions, Procedural Abstractions, Local Variables, Overloading Function Names, Templates, Function Calling Functions, Recursive Functions, Namespace, C++ Array, Vector, Dynamic memory Allocation, lvalue, rvalue, References, Forwarding/Universal reference, Lambda function.
Unit 2: Introduction to Object-Oriented Programming Fundamentals: Object-Oriented Programming and Design, Review of Abstraction, Classes, Objects, Object Reference, Methods, Constructor, Defining Classes and Members, Functions, Recursive Member Functions, Virtual Functions, Static Member Functions, Friend Functions, Public and Private Members, Parameter Passing - This Pointer, Pointers to Functions, Pointer, Constructor Overloading, Operator Overloading, Copy Constructors, Destructors, and Friend Class.
Unit 3: C++ Advanced Object-Oriented Concepts: Inheritance, Polymorphism, Virtual Functions, Advanced Use of Pointers-Dynamic Memory Allocation, Abstract Classes and Interfaces, Templates, Exception Handling, File I/O, Standard Template Library (STL).
Part II
Unit 4: Introduction to OOAD, Unified Process, UML Diagrams, Use Case, Use Case Modelling, Relating Use Cases – Include, Extend and Generalization, Class Diagram, Elaboration-Domain Model, Finding Conceptual Classes and Description Classes, Associations, Attributes, Domain Model Refinement, Finding Conceptual Class Hierarchies, Aggregation and Composition, Relationship between Sequence Diagrams and Use Cases
Unit 5: Dynamic Diagrams – UML interaction diagrams, Sequence Diagrams, Collaboration Diagrams, State Machine Diagram and Modelling, Activity diagram, Implementation Diagrams, UML Package Diagram, Component and Deployment Diagrams
Unit 6: SOLID, GRASP: Designing objects with responsibilities- Expert, Creator, High Cohesion, Low Coupling, Controller, Polymorphic, Pure Fabrication, Indirection, Protected Variations; *Design patterns: Creational – Factory method; Structural – Adapter– Bridge; Behavioral – Strategy – Observer; Applying GoF design patterns; Mapping design to code
50% End-Term Exam | 30% Mid-Term Exam | 10% Quiz | 10% Assignment
Quiz 1:
Quiz 2:
Assignment Submission:
Deitel and Deitel, C++ How to Program, Third Edition, Pearson Publication.
Robert Lafore, Object-Oriented Programming in C++, Fourth Edition, SAMS publications.
Craig Larman, ―Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Third Edition, Pearson Education, 2005.
Ali Bahrami – Object-Oriented Systems Development, McGraw Hill International Edition – 1999
Unit 1: Introduction to Software Engineering: The evolving Role of Software Engineering, The Changing Nature of Software, Legacy software, Software Evolution and Software Myths. Industrial Engineering Tools for Software Engineering.
Unit 2: Process Models: Software Process Models: The Waterfall Model, The Incremental Model, the RAD model, Evolution Process Model: Prototyping, The Spiral model, Concurrent Development Model. Agile Process Models: Extreme Programming (XP)
Unit 3: Software Project Management: Management Activities, Project Planning, Project scheduling, Risk management. Requirements Engineering. Feasibility study, requirement analysis, cost-benefit analysis, planning systems, analysis tools and techniques.
Unit 4: System Design: design fundamentals, modular design, data and procedural design, object-oriented design and UML. System Development: Code documentation, program design paradigms.
Unit 5: Software Testing: Test Strategies for Conventional Software, Test Strategies for Object–Oriented Software, Verification and Validation Testing, System Testing, Debugging. Black-Box and White-Box Testing, Basis Path Testing, Control Structure Testing, Regression Testing, Mutation Testing, Dataflow Testing.
Unit 6: Software Maintenance: Maintenance Characteristics, Maintainability, Maintenance Tasks and Side Effects
50% End-Term Exam | 30% Mid-Term Exam | 10% Quiz | 10% Assignment
Quiz 1:
Quiz 2:
Assignment Submission:
Pressman Roger S, Software Engineering A Practitioner’s Approach, TATA McGraw-Hill Publications, 6th Edition, 2005, ISBN No. 007-301933X
Ian Sommerville, Software Engineering, Pearson Education, 7th Edition, 2008, ISBN: 978-81-7758530-8. 3. Ghezzi C. Jazayeri M and Mandrioli: Fundamentals of Software Engg. , PHI.
Roger S. Pressman & Bruce R. Maxim, Software Engineering: A Practitioner’s Approach, 9 th ed., 2020
Ian Sommerville, Software Engine24AIT302-Data Mining and Warehousing ering, 10 th ed.
Unified Modeling Language Reference manual”, Grady Booch, James Rambaugh, Ivar Jacobson, Pearson India, ISBN – 9788177581614 R5.
50% End-Term Exam | 30% Mid-Term Exam | 10% Quiz | 10% Assignment
Quiz 1:
Quiz 2:
Assignment Submission:
J. Han and M. Kamber, Data Mining: Concepts and Techniques, Morgan Kaufmann/Elsevier India, 3rd edition, 2011.
Ian H. Witten and Eibe Frank, Data Mining: Practical Machine Learning Tools and Techniques (Second Edition), Morgan Kaufmann, 2005.
Part I
Lab 1: Basic C++ Syntax and Data Types
Lab 2: Header structure, Program Debugging, Function Overloading and Templates.
Lab 3: Array and Vector, Lvalue, Rvalue, References, and lambda function.
Lab 4: Introduction to Object-Oriented Programming (OOP).
Lab 5: Smart Pointers.
Lab 6: Operator Overloading.
Lab 7: Operator Overloading and Conversion Operator and Constructor.
Lab 8: Inheritance.
Lab 9: Polymorphism and Abstract Classes.
Lab 10: Class Templates and Exception Handling.
Lab 11: Standard Template Library (STL).
Part II
Lab 12: Class and Domain Modeling.
Lab 13: GRASP Principles and Design Patterns.
Lab 14: GRASP Principles and Design Patterns (cont...).
Lab 15: Applying GoF Design Patterns.
Lab 16: Applying GoF Design Patterns (cont...).
Mini Project: A mini project will be distributed to demonstrate the learning outcome of the Object-Oriented Analysis and Design course.
50% Regular Lab Evaluation | 20% Mid-Term Exam | 20% End-Term Exam | 10% Mini Project
Note: Marks for the absence of any lab will be evaluated based on 50% of the total marks for that lab, provided a valid reason is submitted.