KnowYourBasics
Distance Education Program
View All Programs
šŸŽ“ Acharya Nagarjuna University – Distance Education

Diploma in Advanced Computer Science & Engineering

Industry-focused diploma bridging academic excellence with real-world skills

1 Year Duration
2 Semesters
35 Credits
12 Courses
šŸ“„ Download Complete Syllabus (DOCX)
← Back to Distance Education Programs

Program Overview

The primary goal is to provide real-time industry learning experiences with international industry experts

šŸŽÆ Program Objectives

  • Real-time industry learning experiences
  • Access to international industry experts
  • Work on real-world industry challenges
  • Bridge academic knowledge with industry requirements
  • Hands-on learning with enterprise-grade tools

šŸ“š Learning Outcomes

  • Apply computational thinking & problem-solving
  • Design & implement efficient data structures
  • Build enterprise apps with Spring Boot & Flask
  • Manage relational & NoSQL databases
  • Implement agile & DevOps practices
  • Deploy applications on cloud platforms

šŸ› ļø Technologies Covered

  • Java, Python, Spring Boot, Flask
  • MySQL, PostgreSQL, MongoDB, Redis
  • Docker, GitHub Actions, CI/CD
  • Google Cloud Platform (GCP)
  • Git, Maven, Gradle, Agile Tools

Course Structure

2 Semesters • 12 Courses • 35 Total Credits

S.No Course Code Course Title Credits
SEMESTER 1: Foundation & Fundamentals (16 Credits)
1 DACSE101 Computer Programming with Problem Solving (Java/Python) 3
2 DACSE102 Computer Programming Lab 2
3 DACSE103 Data Structures & Algorithms 3
4 DACSE104 Data Structures & Algorithms Lab 2
5 DACSE105 Agile Product Management 3
6 DACSE106 Capstone Project 1 3
SEMESTER 2: Advanced & Enterprise Technologies (19 Credits)
7 DACSE201 Advanced Computer Programming Tools 3
8 DACSE202 Advanced Computer Programming Tools Lab 2
9 DACSE203 Enterprise Data Sources & Concepts 3
10 DACSE204 Enterprise Data Management Lab 2
11 DACSE205 Advanced Enterprise Automation Process 3
12 DACSE206 Capstone Project 2 6

Detailed Syllabus

Click on a course to jump to its detailed syllabus

DACSE101 DACSE102 DACSE103 DACSE104 DACSE105 DACSE106 DACSE201 DACSE202 DACSE203 DACSE204 DACSE205 DACSE206
DACSE101

Computer Programming with Problem Solving (Java/Python)

šŸ“š 3 Credits šŸ“… Semester 1 šŸ“‹ Prerequisite: Basic Mathematical Aptitude

Course Objectives

  1. Introduce the fundamentals of computational thinking and problem-solving approaches
  2. Teach programming concepts using Java and Python programming languages
  3. Develop skills in designing algorithms and implementing solutions
  4. Enable students to write efficient, readable, and maintainable code
  5. Build a strong foundation for advanced programming concepts
I

Computational Thinking and Problem Solving

Introduction to Computational Thinking – Fundamentals of Computing – History and Evolution of Computers – Identification of Computational Problems – Problem Analysis Techniques – Components of a Computer System – Hardware and Software Overview – Introduction to Programming Languages – Compiled vs Interpreted Languages. Algorithms and Problem Solving – Definition and Characteristics of Algorithms – Building Blocks of Algorithms: Statements and Expressions, State and Variables, Control Flow Mechanisms, Functions and Procedures – Algorithm Notations: Pseudo Code (Syntax and Conventions), Flow Charts (Symbols and Drawing Techniques), Programming Language Representation – Algorithmic Problem-Solving Strategies: Sequential Approach, Iterative Approach, Recursive Approach – Introduction to Algorithm Complexity (Time and Space).

šŸ“ Illustrative Problems

Find the minimum element in a list of numbers; Find the maximum element in a list of numbers; Insert a card in a list of sorted cards (insertion concept); Guess an integer number in a given range (binary search concept); Towers of Hanoi – Recursive problem solving.

II

Programming Fundamentals – Variables, Operators & Control Flow

Introduction to Programming Environment – Setting up Development Environment (IDE: Eclipse/PyCharm/VS Code) – Writing, Compiling, and Executing First Program – Understanding the Structure of Java and Python Programs – Comments, Documentation, and Code Readability. Variables and Data Types – Identifiers (Naming Conventions and Rules) – Variables (Declaration, Initialization, and Assignment) – Primitive Data Types: Numeric Types (int, float, double, long), Character Type (char, String basics), Boolean Type (true/false) – Type Conversion (Implicit and Explicit Casting) – Constants and Literals. Operators and Expressions – Arithmetic Operators – Relational/Comparison Operators – Logical Operators – Assignment Operators – Bitwise Operators – Operator Precedence and Associativity. Control Flow Statements – Conditional Statements: if, if-else, if-elif-else/if-else if-else, Nested if, switch-case/match-case – Looping Statements: while, do-while, for, for-each, Nested loops – Jump Statements: break, continue, pass.

šŸ“ Illustrative Problems

Calculate simple and compound interest; Check if a number is even or odd; Find the largest among three numbers; Calculate factorial using loop; Print multiplication table; Check if a number is prime; Print Fibonacci series; Sum of digits; Reverse a number; Check palindrome.

III

Functions, Arrays, and Strings

Functions/Methods – Introduction to Modular Programming – Function Definition and Declaration – Function Parameters and Arguments – Pass by Value, Pass by Reference – Return Values and Return Types – Function Overloading (Java) – Default and Keyword Arguments (Python) – Variable Scope – Recursion: Base Case and Recursive Case – Lambda Functions. Arrays/Lists – Introduction to Arrays – Array Declaration and Initialization – Accessing Array Elements – Multi-dimensional Arrays – Common Array Operations – Python Lists – List Comprehensions. Strings – String Declaration and Initialization – String Immutability – String Operations: Concatenation, Comparison, Slicing – String Methods – String Formatting.

šŸ“ Illustrative Problems

Calculate factorial using recursion; Find GCD using recursion; Binary search using recursion; Find sum of array elements; Find largest and smallest element; Sort array using bubble sort; Matrix addition and multiplication; Count vowels and consonants; Check if string is palindrome; Reverse words in sentence; Find character frequency; Remove duplicates from list.

IV

Object-Oriented Programming

Introduction to OOP – Programming Paradigms – Principles of OOP – Advantages of OOP. Classes and Objects – Class Definition – Creating Objects – Constructors: Default, Parameterized, Overloading, __init__ – Instance Variables vs Class Variables – Instance Methods vs Class Methods vs Static Methods – this/self reference – Destructor and Garbage Collection. Encapsulation – Data Hiding – Access Modifiers – Getter and Setter Methods – Properties. Inheritance – Concept of Inheritance – Types: Single, Multilevel, Hierarchical, Multiple – Method Overriding – super keyword – Abstract Classes. Polymorphism – Method Overloading – Method Overriding – Duck Typing.

šŸ“ Illustrative Problems

Create Student class with attributes and methods; Implement BankAccount class with deposit/withdraw; Create Calculator class with overloaded methods; Implement inheritance (Shape → Rectangle, Circle, Triangle); Create Employee management system; Design Library Management System; Implement Shopping Cart; Create Animal hierarchy demonstrating polymorphism.

V

Exception Handling and File Operations

Exception Handling – Introduction to Errors and Exceptions – Types of Errors – Exception Hierarchy – Handling Exceptions: try-catch/try-except, Multiple catch/except blocks, finally block, try-with-resources/with statement – Throwing Exceptions – Custom Exceptions – Best Practices. File Handling – Types of Files – File Opening Modes – Reading from Files – Writing to Files – File Pointer and Seeking – Working with CSV Files – Working with JSON Files. Introduction to Modules and Packages – Built-in Modules – Creating Custom Modules – Importing Modules – pip and Package Management.

šŸ“ Illustrative Problems

Handle division by zero exception; Handle array index out of bounds; Create custom exception for invalid age; Read text file and display line/word count; Copy contents between files; Write/read student records; Read CSV file and calculate statistics; Store/retrieve student info in JSON; Implement log file system; Merge multiple text files.

šŸ“– Textbooks

  1. Herbert Schildt, "Java: The Complete Reference", 11th Edition, McGraw Hill, 2019
  2. Cay S. Horstmann, "Core Java Volume I – Fundamentals", 11th Edition, Pearson, 2018
  3. Mark Lutz, "Learning Python", 5th Edition, O'Reilly Media, 2013
  4. Eric Matthes, "Python Crash Course", 3rd Edition, No Starch Press, 2023
DACSE102

Computer Programming Lab

šŸ“š 2 Credits šŸ“… Semester 1 šŸ“‹ Co-requisite: DACSE101

Course Objectives

  1. Provide hands-on experience in programming with Java and Python
  2. Reinforce theoretical concepts through practical implementation
  3. Develop debugging and testing skills
  4. Build problem-solving abilities through coding exercises
Lab

Laboratory Experiments

Experiment 1: Setting up development environment (JDK, Python, IDE) and writing Hello World programs. Experiment 2: Programs using variables, data types, and operators. Experiment 3: Programs using conditional statements (if-else, switch-case). Experiment 4: Programs using loops (for, while, do-while). Experiment 5: Programs using functions/methods with different parameter passing techniques. Experiment 6: Programs using recursion. Experiment 7: Programs using arrays and lists. Experiment 8: Programs using strings and string manipulation. Experiment 9: Programs demonstrating OOP concepts – classes, objects, constructors. Experiment 10: Programs demonstrating inheritance and polymorphism. Experiment 11: Programs implementing exception handling. Experiment 12: Programs for file handling – reading, writing, CSV and JSON processing.

DACSE103

Data Structures & Algorithms

šŸ“š 3 Credits šŸ“… Semester 1 šŸ“‹ Prerequisite: DACSE101

Course Objectives

  1. Understand the importance of data organization in computing
  2. Learn various linear and non-linear data structures
  3. Analyze and compare algorithms based on time and space complexity
  4. Develop skills in selecting appropriate data structures for specific problems
  5. Master searching, sorting, and graph algorithms
I

Introduction to Data Structures and Algorithm Analysis

Introduction to Data Structures – Definition and Need for Data Structures – Classification: Primitive vs Non-Primitive, Linear vs Non-Linear, Static vs Dynamic – Abstract Data Types (ADT) – Data Structure Operations. Algorithm Analysis – Definition of Algorithm – Characteristics of a Good Algorithm – Performance Analysis: Time Complexity, Space Complexity – Asymptotic Notations: Big O (O), Omega (Ī©), Theta (Θ) – Best Case, Worst Case, Average Case – Common Time Complexities: O(1), O(log n), O(n), O(n log n), O(n²), O(2ⁿ). Recursion – Recurrence Relations – Solving using Substitution Method, Master Theorem – Tail Recursion.

šŸ“ Illustrative Problems

Calculate time complexity of simple and nested loops; Analyze recursive Fibonacci algorithm; Compare iterative vs recursive factorial; Derive time complexity using Master Theorem; Analyze space complexity of recursive vs iterative solutions.

II

Linear Data Structures – Arrays, Linked Lists

Arrays – Array Representation in Memory – One-dimensional and Multi-dimensional Arrays – Address Calculation – Sparse Matrices – Dynamic Arrays: ArrayList (Java), List (Python). Linked Lists – Introduction – Types: Singly Linked List, Doubly Linked List, Circular Linked List, Circular Doubly Linked List – Operations: Traversal, Insertion, Deletion, Searching, Reversing – Header Linked Lists – Polynomial Representation – Comparison: Arrays vs Linked Lists. Applications – Implementing Stacks and Queues – Polynomial Operations – Sparse Matrix Representation – Memory Management.

šŸ“ Illustrative Problems

Find middle element of a linked list; Detect and remove loop; Reverse a linked list; Merge two sorted linked lists; Add two polynomials; Implement sparse matrix using linked list; Find nth node from end.

III

Stacks and Queues

Stacks – Stack ADT – Implementation: Array-based, Linked List – Operations: push(), pop(), peek(), isEmpty(), isFull() – Applications: Expression Evaluation and Conversion (Infix to Postfix, Postfix Evaluation), Parenthesis Matching, Function Call Management, Backtracking, Undo Mechanism. Queues – Queue ADT – Implementation: Array-based, Linked List – Types: Simple Queue, Circular Queue, Double-ended Queue (Deque), Priority Queue – Applications: CPU Scheduling, Print Spooling, BFS, Buffer Management.

šŸ“ Illustrative Problems

Implement stack using arrays; Convert infix to postfix; Evaluate postfix expression; Check balanced parentheses; Implement circular queue; Implement priority queue using heap; Design min-stack; Implement queue using two stacks.

IV

Trees

Introduction to Trees – Tree Terminology – Binary Trees: Full, Complete, Perfect, Skewed – Binary Tree Representation – Traversals: Inorder, Preorder, Postorder, Level Order – Construction from Traversals. Binary Search Trees – BST Properties – Operations: Search, Insertion, Deletion – Inorder Successor and Predecessor. Balanced Trees – AVL Trees: Balance Factor, Rotations (LL, RR, LR, RL), Insertion and Deletion – Introduction to Red-Black Trees, B-Trees, B+ Trees. Heap – Max Heap and Min Heap – Heap Operations – Building Heap – Heap Sort – Priority Queue using Heap.

šŸ“ Illustrative Problems

Implement binary tree with all traversals; Construct binary tree from inorder and preorder; Find height of binary tree; Check if a tree is BST; Find LCA in BST; Implement AVL tree with rotations; Implement heap sort; Convert BST to balanced BST.

V

Graphs, Searching and Sorting

Graphs – Graph Terminology – Types of Graphs – Representations: Adjacency Matrix, Adjacency List, Edge List – Traversals: BFS, DFS – Applications: Dijkstra's Algorithm, Bellman-Ford, Prim's Algorithm, Kruskal's Algorithm, Topological Sorting. Searching – Linear Search, Binary Search, Interpolation Search, Jump Search, Exponential Search. Sorting – Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, Heap Sort, Counting Sort, Radix Sort, Bucket Sort – Stability in Sorting – Lower Bound: O(n log n). Hashing – Hash Functions – Collision Resolution: Open Addressing, Separate Chaining – Load Factor and Rehashing.

šŸ“ Illustrative Problems

Implement BFS and DFS; Find shortest path using Dijkstra's; Implement Prim's algorithm for MST; Implement topological sort; Implement binary search; Implement merge sort and quick sort; Implement heap sort; Design hash table with collision handling.

šŸ“– Textbooks

  1. Ellis Horowitz, Sartaj Sahni, "Fundamentals of Data Structures in C", 2nd Edition, Universities Press, 2008
  2. Thomas H. Cormen, et al., "Introduction to Algorithms", 3rd Edition, MIT Press, 2009
  3. Mark Allen Weiss, "Data Structures and Algorithm Analysis in Java", 3rd Edition, Pearson, 2012
DACSE104

Data Structures & Algorithms Lab

šŸ“š 2 Credits šŸ“… Semester 1 šŸ“‹ Co-requisite: DACSE103

Course Objectives

  1. Implement various data structures from scratch
  2. Practice algorithmic problem-solving techniques
  3. Analyze algorithm performance through practical implementation
  4. Develop efficient coding practices for competitive programming
Lab

Laboratory Experiments

Experiment 1: Array operations and complexity analysis. Experiment 2: Singly and Doubly Linked List implementation. Experiment 3: Stack implementation using array and linked list. Experiment 4: Queue implementation – Linear, Circular, Priority Queue. Experiment 5: Expression evaluation and conversion. Experiment 6: Binary Tree implementation with traversals. Experiment 7: Binary Search Tree operations. Experiment 8: AVL Tree implementation with rotations. Experiment 9: Heap implementation and Heap Sort. Experiment 10: Graph representation and traversals (BFS, DFS). Experiment 11: Shortest path algorithms (Dijkstra's). Experiment 12: Sorting algorithms comparison and analysis.

DACSE105

Agile Product Management

šŸ“š 3 Credits šŸ“… Semester 1 šŸ“‹ Prerequisite: None

Course Objectives

  1. Understand agile principles and values
  2. Learn Scrum framework and its implementation
  3. Develop skills in product backlog management and user stories
  4. Master sprint planning and execution techniques
  5. Use agile project management tools effectively
I

Introduction to Agile Methodologies

Evolution of Software Development Methodologies – Waterfall Model and Its Limitations – Introduction to Agile – Agile Manifesto: Four Values and Twelve Principles – Benefits of Agile – Agile vs Traditional Approaches – Types of Agile Frameworks: Scrum, Kanban, XP, Lean – Choosing the Right Framework – Agile Mindset and Culture – Common Misconceptions about Agile.

šŸ“ Illustrative Problems

Compare Waterfall and Agile for a given project scenario; Identify which Agile framework suits a specific team/project; Create an Agile adoption roadmap for a traditional organization.

II

Scrum Framework

Introduction to Scrum – Scrum Theory: Empiricism, Transparency, Inspection, Adaptation – Scrum Values: Commitment, Courage, Focus, Openness, Respect. Scrum Team – Product Owner: Responsibilities, Skills – Scrum Master: Responsibilities, Servant Leadership – Development Team: Self-organizing, Cross-functional. Scrum Events – Sprint: Definition, Time-boxing, Sprint Goal – Sprint Planning – Daily Scrum – Sprint Review – Sprint Retrospective. Scrum Artifacts – Product Backlog – Sprint Backlog – Increment – Definition of Done.

šŸ“ Illustrative Problems

Design Scrum team structure for a project; Plan Sprint events calendar; Create Definition of Done for a software project; Role-play Sprint Planning meeting.

III

Product Backlog Management

Product Vision and Roadmap – Creating Product Vision Statement – Product Roadmap Development – Release Planning. User Stories – Writing Effective User Stories (INVEST Criteria) – User Story Format: As a [user], I want [feature], So that [benefit] – Acceptance Criteria – Story Splitting Techniques. Backlog Management – Backlog Grooming/Refinement – Prioritization Techniques: MoSCoW, Value vs Effort Matrix, WSJF – Estimation Techniques: Story Points, Planning Poker, T-Shirt Sizing – Velocity Calculation and Forecasting.

šŸ“ Illustrative Problems

Write user stories for an e-commerce application; Prioritize a product backlog using MoSCoW; Estimate stories using Planning Poker; Create a product roadmap.

IV

Kanban and Lean Practices

Introduction to Kanban – Kanban Principles and Practices – Visualizing Work: Kanban Board – Limiting Work in Progress (WIP) – Managing Flow – Making Policies Explicit – Implementing Feedback Loops – Collaborative Improvement. Kanban Metrics – Lead Time, Cycle Time, Throughput – Cumulative Flow Diagram – Little's Law. Lean Software Development – Lean Principles: Eliminate Waste, Amplify Learning, Decide Late, Deliver Fast, Empower Team, Build Integrity, Optimize Whole – Types of Waste in Software Development – Value Stream Mapping.

šŸ“ Illustrative Problems

Design a Kanban board for a development team; Calculate Lead Time and Cycle Time from data; Identify waste in a development process; Create a value stream map.

V

Agile Tools and Scaling

Agile Project Management Tools – Jira: Projects, Boards, Backlogs, Sprints, Reports – Trello: Boards, Lists, Cards, Power-Ups – Azure DevOps: Boards, Repos, Pipelines – Asana, Monday.com (Overview) – Tool Selection Criteria. Agile Metrics and Reporting – Burndown Charts, Burnup Charts – Velocity Charts – Sprint Reports – Release Reports. Scaling Agile – Challenges in Scaling – SAFe (Scaled Agile Framework) Overview – LeSS (Large-Scale Scrum) Overview – Scrum of Scrums – Choosing a Scaling Framework.

šŸ“ Illustrative Problems

Set up a Jira project with Scrum board; Create Sprint reports and analyze metrics; Analyze a burndown chart and identify issues; Propose a scaling strategy for growing team.

šŸ“– Textbooks

  1. Ken Schwaber, Jeff Sutherland, "The Scrum Guide", 2020
  2. Mike Cohn, "User Stories Applied", Addison-Wesley, 2004
  3. Roman Pichler, "Agile Product Management with Scrum", Addison-Wesley, 2010
DACSE106

Capstone Project 1

šŸ“š 3 Credits šŸ“… Semester 1 šŸ“‹ Prerequisites: DACSE101, DACSE103, DACSE105

Course Objectives

  1. Apply Semester 1 concepts in a real-world project
  2. Demonstrate mastery of programming and data structures
  3. Practice agile methodologies in project development
  4. Develop teamwork and project presentation skills
Project

Mini-Project Guidelines

Project Scope: Students will work on a complete software development project from requirements gathering to deployment. Projects should demonstrate: Programming skills in Java/Python – Implementation of appropriate data structures – Application of algorithms – Agile project management practices. Deliverables: Project Proposal – Sprint Planning Documents – Source Code with Documentation – User Manual – Project Presentation – Sprint Retrospective Reports. Suggested Project Areas: Console-based applications – Data processing tools – Algorithm visualization – Game development – Library management system – Student information system – Inventory management.

DACSE201

Advanced Computer Programming Tools

šŸ“š 3 Credits šŸ“… Semester 2 šŸ“‹ Prerequisites: DACSE101, DACSE103

Course Objectives

  1. Understand modern enterprise development frameworks and architectures
  2. Master Spring Boot for building production-ready Java applications
  3. Learn Python Flask for developing web services and APIs
  4. Understand build automation tools (Maven, Gradle, pip)
  5. Develop skills in version control and collaborative development using Git
I

Introduction to Enterprise Development and Build Tools

Enterprise Application Development Overview – Characteristics of Enterprise Applications: Scalability, Reliability, Security, Performance – Monolithic vs Microservices Architecture – Multi-tier Architecture – MVC Pattern – API-First Development. Maven – Introduction to Maven – Project Structure – Project Object Model (POM) – Maven Lifecycle: clean, compile, test, package, install, deploy – Dependency Management – Maven Plugins. Gradle – Gradle vs Maven – build.gradle Structure. Python Package Management – pip – requirements.txt – Virtual Environments: venv, virtualenv, conda – pipenv and Poetry.

šŸ“ Illustrative Problems

Create a Maven project with proper structure; Configure a multi-module Maven project; Set up a Python virtual environment with requirements.txt; Manage dependency conflicts in Maven project.

II

Spring Boot Fundamentals

Introduction to Spring Ecosystem – Dependency Injection (DI) and Inversion of Control (IoC) – Spring Boot vs Spring Framework – Spring Initializr – Project Structure – application.properties/application.yml – Spring Boot DevTools. Core Concepts – Spring Beans and IoC Container – Annotations: @Component, @Service, @Repository, @Controller, @Autowired, @Configuration, @Bean, @Value, @Profile – Component Scanning – Bean Scopes: Singleton, Prototype, Request, Session. Configuration – Profiles for Different Environments – Environment Variables – Logging: SLF4J and Logback.

šŸ“ Illustrative Problems

Create a Spring Boot application with custom configuration; Implement dependency injection with multiple implementations; Configure different profiles for dev, test, and prod environments.

III

Building REST APIs with Spring Boot

Introduction to REST – REST Principles – HTTP Methods: GET, POST, PUT, PATCH, DELETE – HTTP Status Codes. Spring Web MVC for REST – @RestController – @RequestMapping and Shortcuts – @PathVariable, @RequestParam, @RequestBody – ResponseEntity – Content Negotiation. Building CRUD APIs – Designing Resource URLs – DTO Pattern – Entity to DTO Mapping – Pagination and Sorting. Exception Handling – @ExceptionHandler, @ControllerAdvice – Custom Exception Classes. API Documentation – Swagger/OpenAPI – SpringDoc OpenAPI.

šŸ“ Illustrative Problems

Build a complete CRUD REST API for a Book management system; Implement pagination and sorting; Create custom exception handling with proper error responses; Document API using Swagger/OpenAPI.

IV

Python Flask Web Development

Introduction to Flask – Flask vs Django – Flask Micro-framework Philosophy – Application Structure – Blueprints for Modular Applications – Configuration Management. Routing and Views – URL Routing – HTTP Methods – Request Object – Response Object. Building REST APIs – Flask-RESTful Extension – Resource Classes – Request Parsing – Error Handling – CORS. Flask Extensions – Flask-SQLAlchemy, Flask-Migrate, Flask-Marshmallow, Flask-JWT-Extended, Flask-CORS. Template Rendering – Jinja2 Basics – Template Inheritance – Static Files.

šŸ“ Illustrative Problems

Create a Flask application with blueprint structure; Build a REST API for a Todo application using Flask-RESTful; Implement user authentication using Flask-JWT-Extended; Create a Flask application with database integration.

V

Version Control and Collaborative Development

Introduction to Version Control – Git Overview – Git Repository: git init, git clone – Git Workflow: Working Directory, Staging Area, Repository – Basic Commands: git add, git commit, git status, git log, git diff. Branching and Merging – Creating and Switching Branches – Merging Branches – Merge Conflicts and Resolution – Branch Strategies: Git Flow, GitHub Flow, Trunk-based Development. Remote Repositories – GitHub, GitLab, Bitbucket – Remote Operations: git push, git pull, git fetch – Fork and Clone – Pull Requests – Code Review. Advanced Git – Git Stash, Rebase, Cherry-pick, Tags, .gitignore, Git Hooks.

šŸ“ Illustrative Problems

Initialize a Git repository and perform basic operations; Create feature branches and merge with conflict resolution; Set up a GitHub repository and collaborate with teammates; Create a pull request with proper description and review.

šŸ“– Textbooks

  1. Craig Walls, "Spring in Action", 6th Edition, Manning Publications, 2022
  2. Miguel Grinberg, "Flask Web Development", 2nd Edition, O'Reilly Media, 2018
  3. Jon Loeliger, Matthew McCullough, "Version Control with Git", 3rd Edition, O'Reilly Media, 2022
DACSE202

Advanced Computer Programming Tools Lab

šŸ“š 2 Credits šŸ“… Semester 2 šŸ“‹ Co-requisite: DACSE201

Course Objectives

  1. Implement enterprise applications using Spring Boot and Flask
  2. Build RESTful APIs with proper architecture
  3. Practice version control with Git
  4. Develop testing and documentation skills
Lab

Laboratory Experiments

Experiment 1: Maven project setup and dependency management. Experiment 2: Spring Boot application with dependency injection. Experiment 3: Building REST APIs with Spring Boot. Experiment 4: Spring Boot with database (Spring Data JPA). Experiment 5: Exception handling and validation in Spring Boot. Experiment 6: Flask application setup and routing. Experiment 7: Building REST APIs with Flask-RESTful. Experiment 8: Flask with database (Flask-SQLAlchemy). Experiment 9: Authentication using JWT in Flask/Spring Boot. Experiment 10: Git basics – init, add, commit, branch. Experiment 11: Git collaboration – push, pull, merge, conflicts. Experiment 12: API documentation with Swagger/OpenAPI.

DACSE203

Enterprise Data Sources & Concepts

šŸ“š 3 Credits šŸ“… Semester 2 šŸ“‹ Prerequisite: DACSE103

Course Objectives

  1. Understand enterprise data management concepts
  2. Master relational database design and SQL
  3. Learn NoSQL databases and their use cases
  4. Develop skills in data modeling and database integration
  5. Understand when to choose SQL vs NoSQL databases
I

Database Fundamentals and Relational Model

Introduction to Database Systems – What is a Database? – DBMS – Advantages of DBMS over File Systems – Three-Schema Architecture – Data Independence. Relational Database Model – Relational Model Concepts: Relation, Tuple, Attribute, Domain – Keys: Super Key, Candidate Key, Primary Key, Foreign Key, Composite Key – Relational Integrity Constraints – Relational Algebra Operations. Entity-Relationship Modeling – Components of ER Diagram: Entities, Attributes, Relationships, Cardinality – Weak Entities – Converting ER Diagram to Relations.

šŸ“ Illustrative Problems

Identify keys for a given relation; Draw ER diagram for a library management system; Convert ER diagram to relational schema; Design ER diagram for an e-commerce platform.

II

SQL and Database Design

Introduction to SQL – DDL, DML, DCL, TCL – MySQL/PostgreSQL Setup. Data Definition Language – CREATE, ALTER, DROP, TRUNCATE – Data Types – Constraints – CREATE INDEX. Data Manipulation Language – INSERT, SELECT, UPDATE, DELETE – WHERE, ORDER BY, LIMIT – DISTINCT. Advanced SQL – Aggregate Functions – GROUP BY, HAVING – Subqueries – CASE Expressions – Set Operations. Database Normalization – Functional Dependencies – Normal Forms: 1NF, 2NF, 3NF, BCNF – Denormalization.

šŸ“ Illustrative Problems

Create database schema for student management; Write queries using aggregate functions; Implement queries with subqueries; Normalize a given table to 3NF.

III

Advanced SQL – Joins, Procedures, and Transactions

SQL Joins – Types: INNER, LEFT OUTER, RIGHT OUTER, FULL OUTER, CROSS, SELF JOIN – Multiple Table Joins. Views – Creating Views – Updatable Views – Advantages. Stored Procedures and Functions – Parameters, Local Variables, Control Structures – Creating Functions – Exception Handling. Triggers – Types: BEFORE/AFTER, INSERT/UPDATE/DELETE – Use Cases. Transactions – ACID Properties – Transaction Control: BEGIN, COMMIT, ROLLBACK, SAVEPOINT – Isolation Levels – Concurrency Issues – Locking.

šŸ“ Illustrative Problems

Write queries using different types of joins; Create a view for reports; Implement stored procedure for order processing; Create trigger for audit logging; Demonstrate transaction handling with rollback.

IV

NoSQL Databases – MongoDB

Introduction to NoSQL – CAP Theorem – BASE vs ACID – When to Use NoSQL – Types: Key-Value, Document, Column-Family, Graph. MongoDB – Document Model – Collections and Documents – BSON Format – Installation. CRUD Operations – insertOne, insertMany, find, findOne, updateOne, updateMany, deleteOne, deleteMany. Query Operators – Comparison, Logical, Array, Element Operators. Aggregation Pipeline – $match, $group, $sort, $project, $limit. Indexing – Single Field, Compound, Text Index. Data Modeling – Embedding vs Referencing – Schema Design Patterns.

šŸ“ Illustrative Problems

Design MongoDB schema for a blog; Write queries with various operators; Implement aggregation pipeline; Create indexes and analyze performance; Compare MongoDB vs MySQL for scenarios.

V

In-Memory Data Stores – Redis

Introduction to Redis – In-Memory Data Stores – Use Cases: Caching, Session Management, Real-time Features, Message Queues. Redis Data Structures – Strings, Lists, Sets, Sorted Sets, Hashes. Redis Operations – Key Expiration: EXPIRE, TTL – Key Management – Transactions: MULTI, EXEC, DISCARD. Redis Pub/Sub – Publish/Subscribe Pattern. Redis in Applications – Caching Layer – Session Storage – Rate Limiting – Leaderboards – Real-time Counters. Database Security Basics – Authentication, Authorization – SQL Injection Prevention – Data Encryption.

šŸ“ Illustrative Problems

Implement caching layer using Redis; Build session management system; Create real-time leaderboard using sorted sets; Implement rate limiting; Integrate Redis with web application.

šŸ“– Textbooks

  1. Ramez Elmasri, Shamkant B. Navathe, "Fundamentals of Database Systems", 7th Edition, Pearson, 2017
  2. Abraham Silberschatz, et al., "Database System Concepts", 7th Edition, McGraw Hill, 2020
  3. Kristina Chodorow, "MongoDB: The Definitive Guide", 3rd Edition, O'Reilly Media, 2019
DACSE204

Enterprise Data Management Lab

šŸ“š 2 Credits šŸ“… Semester 2 šŸ“‹ Co-requisite: DACSE203

Course Objectives

  1. Practice SQL and NoSQL database operations
  2. Implement database design from ER diagrams
  3. Work with MongoDB and Redis
  4. Integrate databases with applications
Lab

Laboratory Experiments

Experiment 1: MySQL/PostgreSQL installation and basic operations. Experiment 2: Database design from ER diagram to schema. Experiment 3: Complex SQL queries with joins and subqueries. Experiment 4: Stored procedures, triggers, and transactions. Experiment 5: Views and index optimization. Experiment 6: MongoDB setup and CRUD operations. Experiment 7: MongoDB aggregation and indexing. Experiment 8: MongoDB schema design and relationships. Experiment 9: Redis installation and data structure operations. Experiment 10: Implementing caching with Redis. Experiment 11: Redis Pub/Sub and session management. Experiment 12: Integrating databases with Spring Boot/Flask applications.

DACSE205

Advanced Enterprise Automation Process

šŸ“š 3 Credits šŸ“… Semester 2 šŸ“‹ Prerequisites: DACSE201, DACSE203

Course Objectives

  1. Understand DevOps culture, principles, and practices
  2. Master containerization using Docker
  3. Learn CI/CD pipeline implementation using GitHub Actions
  4. Introduction to Google Cloud Platform (GCP) fundamentals
  5. Develop skills in deploying applications to cloud
I

Introduction to DevOps

Software Development Lifecycle Evolution – Waterfall Limitations – Agile Practices – Gap Between Development and Operations. Introduction to DevOps – What is DevOps? – DevOps Principles: Culture of Collaboration, Automation, Measurement, Sharing – DevOps Lifecycle: Plan, Code, Build, Test, Release, Deploy, Operate, Monitor. DevOps Culture – Breaking Down Silos – Shared Responsibility – Continuous Improvement – Feedback Loops. Version Control Best Practices – Git Workflows: Git Flow, GitHub Flow, Trunk-Based Development – Code Review Process – Pull Request Best Practices. Automation Fundamentals – Why Automate? – Areas of Automation: Build, Test, Deployment.

šŸ“ Illustrative Problems

Compare traditional vs DevOps workflows; Design a branching strategy for a team project; Create a pull request workflow; Identify automation opportunities.

II

Containerization with Docker

Introduction to Containers – Containers vs Virtual Machines – Benefits of Containerization. Docker Fundamentals – Docker Architecture: Docker Client, Docker Daemon, Docker Registry – Installing Docker – Docker CLI: docker run, ps, images, pull/push, exec, logs, stop/start/rm. Docker Images – Image Layers and Caching – Dockerfile: FROM, RUN, COPY/ADD, WORKDIR, ENV, EXPOSE, CMD/ENTRYPOINT – Building Images – Multi-stage Builds – Best Practices. Docker Containers – Container Lifecycle – Container Networking: Bridge, Host Networks – Container Volumes: Bind Mounts, Named Volumes. Docker Compose – docker-compose.yml Structure – Multi-container Applications – Docker Compose Commands. Docker Hub – Pushing and Pulling Images – Image Tagging and Versioning.

šŸ“ Illustrative Problems

Containerize a Spring Boot application; Containerize a Flask application; Create multi-stage Dockerfile; Set up multi-container application with Docker Compose; Push images to Docker Hub.

III

CI/CD with GitHub Actions

Continuous Integration (CI) – CI Principles and Benefits – CI Best Practices. Continuous Delivery and Deployment – CD vs Continuous Deployment – Deployment Pipeline Stages – Release Strategies: Rolling Updates, Blue-Green Concepts. GitHub Actions Fundamentals – Workflows, Jobs, and Steps – Workflow YAML Syntax: name, on, jobs, runs-on, steps. GitHub Actions in Detail – Triggers: push, pull_request, schedule – Using Actions Marketplace – Environment Variables and Secrets – Matrix Builds – Caching Dependencies – Artifacts. Building CI Pipelines – CI for Java/Maven Projects – CI for Python Projects – Running Automated Tests – Code Quality Checks. Building CD Pipelines – Deploying to Cloud from GitHub Actions – Environment Management – Rollback Strategies.

šŸ“ Illustrative Problems

Create GitHub Actions workflow for Java/Maven project; Create workflow for Python project; Implement automated testing in CI; Configure deployment to GCP; Set up code quality checks.

IV

Google Cloud Platform Fundamentals

Introduction to Cloud Computing – Cloud Service Models: IaaS, PaaS, SaaS – Deployment Models – Benefits of Cloud Computing. Google Cloud Platform Overview – GCP Global Infrastructure: Regions and Zones – GCP Console and Cloud Shell – GCP Free Tier – Setting up GCP Account. GCP Compute Services – Compute Engine: VMs, Machine Types – App Engine: Platform as a Service – Cloud Run: Serverless Containers. GCP Storage Services – Cloud Storage: Buckets, Objects, Storage Classes – Persistent Disk. GCP Database Services – Cloud SQL: Managed MySQL/PostgreSQL – Firestore: NoSQL Document Database – Cloud Memorystore: Managed Redis. GCP Networking Basics – VPC – Firewall Rules – Load Balancing Concepts.

šŸ“ Illustrative Problems

Create and configure a VM on Compute Engine; Deploy web application to App Engine; Deploy containerized application to Cloud Run; Set up Cloud Storage bucket; Configure Cloud SQL instance.

V

Deployment and Monitoring on GCP

Deploying Applications to GCP – Deployment Options Overview – Deploying to Compute Engine – Deploying to App Engine – Deploying Containers to Cloud Run – Using Container Registry. GCP Identity and Access Management – IAM Concepts: Users, Service Accounts, Roles, Permissions – Principle of Least Privilege – Creating Service Accounts. CI/CD with GCP – Cloud Build Overview – Integrating GitHub with Cloud Build. Monitoring with Cloud Operations – Cloud Monitoring: Metrics, Dashboards, Uptime Checks – Cloud Logging: Log Viewer, Log-based Metrics – Setting up Alerts. Application Security Basics – Secret Manager – Security Best Practices. Cost Management – Understanding GCP Pricing – Billing and Budgets.

šŸ“ Illustrative Problems

Deploy a full-stack application to GCP; Set up Cloud Build for CI/CD; Create monitoring dashboard; Configure alerts for application; Implement secret management.

šŸ“– Textbooks

  1. Gene Kim, et al., "The DevOps Handbook", 2nd Edition, IT Revolution Press, 2021
  2. Nigel Poulton, "Docker Deep Dive", Updated Edition, 2020
  3. Dan Sullivan, "Official Google Cloud Certified Professional Cloud Architect Study Guide", Wiley, 2019
DACSE206

Capstone Project 2

šŸ“š 6 Credits šŸ“… Semester 2 šŸ“‹ Prerequisites: All Semester 2 courses

Course Objectives

  1. Integrate all Semester 2 concepts in a comprehensive project
  2. Build an enterprise-grade application with proper architecture
  3. Implement CI/CD pipeline and cloud deployment
  4. Work with industry mentors on real-world challenges
Project

Major Project Guidelines

Project Scope: Students will develop a complete enterprise application demonstrating: Full-stack development with Spring Boot/Flask – Database integration (SQL and NoSQL) – RESTful API design – Containerization with Docker – CI/CD pipeline using GitHub Actions – Cloud deployment (AWS/Azure/GCP) – Agile project management throughout. Deliverables: Project Proposal and Architecture Design – Sprint Planning and Progress Reports – Source Code Repository (GitHub) – Docker and Kubernetes Configurations – CI/CD Pipeline Configuration – Cloud Deployment Documentation – API Documentation – User Manual and Technical Documentation – Final Presentation and Demo – Project Retrospective Report. Suggested Project Areas: E-commerce platform – Social media application – Healthcare management system – Learning management system – IoT dashboard – Booking/reservation system – Financial management application.