Industry-focused diploma bridging academic excellence with real-world skills
The primary goal is to provide real-time industry learning experiences with international industry experts
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 |
Click on a course to jump to its detailed syllabus
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Design Scrum team structure for a project; Plan Sprint events calendar; Create Definition of Done for a software project; Role-play Sprint Planning meeting.
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.
Write user stories for an e-commerce application; Prioritize a product backlog using MoSCoW; Estimate stories using Planning Poker; Create a product roadmap.
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.
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.
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.
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.
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.
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.
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.
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.
Create a Spring Boot application with custom configuration; Implement dependency injection with multiple implementations; Configure different profiles for dev, test, and prod environments.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Create database schema for student management; Write queries using aggregate functions; Implement queries with subqueries; Normalize a given table to 3NF.
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.
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.
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.
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.
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.
Implement caching layer using Redis; Build session management system; Create real-time leaderboard using sorted sets; Implement rate limiting; Integrate Redis with web application.
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.
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.
Compare traditional vs DevOps workflows; Design a branching strategy for a team project; Create a pull request workflow; Identify automation opportunities.
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.
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.
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.
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.
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.
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.
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.
Deploy a full-stack application to GCP; Set up Cloud Build for CI/CD; Create monitoring dashboard; Configure alerts for application; Implement secret management.
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.