DAC May 2021 Syllabus
DAC May 2021 Syllabus
COURSE MODULES:
MODULE CONTENTS:
@CDAC Page 1 of 3
o Shell scripting • Introduction to testing methods: white-box,
• Process black-box and grey-box
o Process States • Introduction to functional and non-functional
o Preemptive and non-preemptive processes testing
o Process life cycle • Introduction to Selenium (use Eclipse IDE)
o FCFS • Load web driver
o RR • Create selense commands: locators: by ID,
o Shortest Job First name, class, tag name, XPath
o Priority • Add interactions: text box, radio button selection,
• Threads check box selection, drop down item selection,
o Types of Threads - user and kernel threads keyboard actions, mouse actions, multi select
o Difference between Threads and Process
• Concurrency control 2. Object Oriented Programming with Java
o Deadlock Handling Strategies
o Deadlock Prevention • Introduction to java
o Deadlock Avoidance • Features of java
• JVM Architecture
1c. Software Engineering Concepts • JDK and its usage
• Structure of java class
• Developing an application in a team • Working with data types: Primitive data types
• Issues developers face when working in a team • Operators
• Introduction to code versioning system o Unary, binary, Arithmetic, Assignment,
• Introduction to git compound, relational, logical, equality
• Introduction to git repository and git structure • Control statements
• Adding code to git o if-else-if, switch, ternary operator, for
• Creating and merging different git branches loop, while loop, do-while loop
• Introduction to software engineering • Declaring variables and methods
• Software Development Life Cycles • Data type compatibility
• Requirements Engineering • Static variables and methods
• Design and Architectural Engineering • Accessing static variables and methods of
o Design Models different class
o UML • Introduction to reference data types
• Object Oriented Analysis and Design • Reference variables and methods
• Introduction to Agile development model • Difference between reference data types and
• Agile development components primitive data types
• Benefits of Agile model • Difference between reference variable and
• Introduction to different tools used for agile static variable
web development • Constructors, initializing reference variables
• Introduction to Atlassian Jira using constructors
o Add Project • Pass by value v/s pass by reference
o Add Tasks and sub-tasks • Re-assigning a reference variable
o Create sprints with tasks • Passing reference variable to method
• Case study of developing web application • Initializing reference variable of different class
using agile methodology • Heap memory and stack memory
• Introduction to software testing
• Principles of software testing Object Oriented Programming Concepts
• Verification and validation • Introduction to OOP concepts
• Quality Assurance vs Quality Control vs Testing • Encapsulation
• Introduction to STLC and V Model • Inheritance: single & multilevel
• Types of testing: manual and automation • Inheritance: Hierarchical
• Tools used for automation testing • Polymorphism: Compile time and runtime
polymorphism
@CDAC Page 2 of 3
• Rules of overriding and overloading of o Object Class: Overriding to String, equals &
methods hashcode method
• super and this keywords Collections
• Upcasting & downcasting of a reference
variable • Introduction to collections: Collection hierarchy
• Abstract class and abstract methods • List, Queue, Set and Map Collections
• Interface (implementing multiple interfaces) • List Collection:
• Final variables, final methods and final class o ArrayList, LinkedList
• Functional interface o Vector (insert, delete, search, sort, iterate,
• New interface features (Java 8 & above) replace operations)
• Arrays • Collections class
• Enumerations • Comparable and Comparator interfaces
• Access modifiers (public, private, protected • Queue collection
and default) • Set Collection:
• Packages and import statements o HashSet, LinkedHashSet & TreeSet collection
• Static imports o Backed set collections
• Constructor chaining (with and without • Map Collection:
packages) o HashTable, HashMap, LinkedHashMap
• Accessing protected variables and methods & TreeMap classes
outside the package o Backed Map collections
• Garbage collection in java • Generics
• Requesting JVM to run garbage collection • Concurrent collections
• Different ways to make object eligible for • MultiThreading : Thread class and Runnable
garbage collection: (Nulling a reference Interface
variable, Re-assigning a reference variable • sleep, join, yield, setPriority, getPriority methods
& island of isolation) • ThreadGroup class
• Finalize method • Synchronization
• Wrapper Classes & String Class • Deadlock
o Wrapper classes and constant pools • Wait, notify and notifyAll methods
o String class, StringBuffer & StringBuilder • Inner classes
class
o String pool 3. Algorithms and Data Structures Using Java
• Exception Handling Problem Solving & Computational Thinking
o Exception hierarchy, Errors, Checked and
un-checked exceptions • Define the problem
o Exception propagation • Identify the problem
o try-catch-finally block , throws clause and • Introduction to Problem Solving
throw keyword • Problem solving basics
o Multi catch block
Algorithm & Data Structures
o Creating user defined checked and
unchecked exceptions • Introductory Concepts
• Java.io & java.nio Package • Algorithm Constructs
o Brief introduction to InputStream, • OO design: Abstract Data Types (ADTs)
OutputStream, Reader and Writer • Basic Data Structures
interfaces o Arrays
o NIO package o Stacks
o Serialization and de-serialization o Queues
o Shallow copy and deep copy o Circular Queues
• Object Class & java.util Package • Linkedlists
o Date, DateTime, Calendar class o Singly LinkedLists
o Converting Date to String and String to Date o Doubly LinkedLists
using SimpleDateFormat class
@CDAC Page 3 of 3
o Circular LinkedLists o Adjacency List
o Node-based storage with arrays o Graph Traversal Algorithms ( Breadth
• Recursion First Search, Depth First Search)
o What is recursion? • Shortest Path
o What is the base condition in recursion o Level Setting : Dijkstra's algorithm
o Direct and indirect recursion. o Level Correcting: All-pairs shortest
o Memory is allocated to different function path, Floyd-Warshall algorithm
calls in recursion • Spanning Trees
o Pro and cons of recursion o Minimum spanning tree algorithms,
o Function complexity during recursion o Prim's algorithm
• Trees & Applications o Kruskal's Algorithm
o Introduction to trees • What are the different class of algorithms
o Trees and Terminology • How to write efficient Algorithm
o Tree Traversals • Introduction to algorithm design techniques
o Binary trees • Algorithm Design techniques
o Complete binary trees / Almost complete • Analysis of an Algorithm
binary tree (ACBT) o Asymptotic Analysis
o Array Implementation of ACBT o Algorithm Analysis
o Binary search trees • Analysis of different type of Algorithms
o AVL Tree o Divide and Conquer Algorithm
o Multi-way Tree o Greedy algorithm
• Objectives of Searching o Dynamic Programming algorithm
o The Sequential Search o Brute force algorithm
o Analysis of Sequential Search o Backtracking algorithms
o The Binary Search o Branch-and-bound algorithms
• Analysis of Binary Search o Stochastic algorithms
• Introduction to sorting • Complexity
o Selection sort o Complexity Analysis
o Insertion sort o Space complexity of algorithm
o Bubble sort o Time complexity of algorithm
o Shell Sort • Case study on Algorithm Design techniques
o Heapsort • Application of Data structures
o Mergesort
o Quicksort 4. Database Technologies
• Analysis of sorting algorithms
• Hashing & Introduction to hashtables • Introduction to DBMS
• Hash Functions • Basic Database Terminology
• Different type of hash functions • Database Storage Architecture, Concepts of
• Collision Resolution Database Instance and Schema, Distributed
• Clustering Databases
o Primary • Types of DBMS: Relational, Object Relational
o Secondary and NoSQL Databases
• Linear Probing • Data Models (Conceptual, Logical, Physical),
• Quadratic Probing Codd’s 12 rules for RDBMS
• Double Hashing • Database Design, Entity-Relationship Diagram
• Inserting and Deleting an element from a (ERD)
hash table • Introduction to SQL, Categories of SQL
• Introduction to graph theory Commands: DDL, DML, DCL, DTL/TCL.
• Graph Terminology • Introduction to MySQL, MySQL Clients
(Monitor, Shell, Workbench).
• Different types of Graphs
• Representation of Graphs
o Adjacency Matrix
@CDAC Page 4 of 3
• SQL/MySQL Data Types, Database Constraints • Triggers (BEFORE, AFTER), New and Old trigger
(Primary Key, Unique, Not Null, Foreign Key, variables
Default, Check) • Trigger Examples and real time use
• Normalization, Need for Normalization • Full-Text Search, Pattern Matching with RegEx
• Data Redundancy, Data Anomalies, Functional • Introduction to NoSQL database, Features of
Dependency NoSQL Database
• Normal Forms (1NF, 2NF, 3NF, BCNF) with • Structured vs. Semistructured and Unstructured
examples, Introduction to 4th and 5th NF, Data
Need of Denormalization • Difference between RDBMS and NoSQL databases
• LIKE Operator, DISTINCT, Sorting (Order by • CAP Theorem, BASE Model
clause). • Categories of NoSQL Databases
• BETWEEN, AND, OR Operators, Comparing • Introduction to MongoDB, Features of MongoDB
Nulls (IS NULL/IS Not NULL), IN/NOT IN • MongoDB command interface and MongoDB
• Relational Algebra Operations (Selection, compass
Projection, Union, Intersect, Minus) • MongoDB Documents & Collections
• Aggregate Functions • RDBMS & MongoDB analogies: relations/tables
• Grouping Things Together (Group By, Having) => collections; tuples/records => documents
• Joins (Equi, Inner, Outer, Natural, Cross), SQL • JSON and BSON documents
Standard Syntax for Joins • Performing CRUD (CREATE, READ, UPDATE,
• Copying table structure/data, Sequences DELETE) Operations, UPSERT
(AUTO_INCREMENT) • MongoDB Operators, Sorting and Indexing in
• Subquery, Correlated Subquery, EXISTS/NOT MongoDB
EXISTS • Migrating from RDBMS to NoSQL
• TCL Commands (Commit/Rollback/SavePoint),
DCL Commands (GRANT/REVOKE/GRANT 5. Web Programming Technologies
OPTION)
• Views, Types of Views, Simple and Complex • Brief history of the Internet
Views • How does the Internet work?
• Indexes, Benefit of Indexes, Type of Indexes, • Internet Protocol; HTTP
Temporary Tables • Domain Names; Domain Name Service servers
• MySQL Storage Engines (InnoDB, MyISAM and • HTTP Protocols
others) o Difference between HTTP1.0, HTTP 1.1 and
• ACID Properties, Concurrency and Locks HTTP 2.0
• Introduction to MySQL Programming, Use of o Methods – GET, POST, HEAD, PUT, DELETE, etc.
MySQL Programs, o Status codes
• Introduction to Stored Procedures, Benefits of o Stateless nature of the protocol and
HTTP Session
Stored Procedures
o HTTPS
• Procedure Parameters (IN, OUT and INOUT)
• Architecture of the Web
• Flow Control Statements (LOOP, WHILE and
• Web servers – IIS, Apache server
REPEAT)
• Introduction to HTML
• Using above statements in Stored Procedures/
Functions • Document Object Model (DOM)
• Conditional Statements (IF, IF-ELSE-THEN, • Basic HTML Tags
SWITCH CASE) o Alignment, Headings, Anchor, Paragraph,
Image, Lists, Tables, and iFrames
• Example of each type of statement
• HTML5
• Loop constructs (ITERATE, LEAVE)
o New features in HTML5
• Functions with and without parameters
o New elements, new attributes, link
• MySQL Built-in functions (string, numeric, date)
relations, microdata, ARIA accessibility
• Cursors (Asensitive, Insensitive, Read only, o HTML5 Validation
Nonscrollable)
o Audio & Video Support
• Cursors example and real time use • HTML Forms & Controls
@CDAC Page 5 of 3
o Input, Text Area, Radio Button, Checkbox, • Errors, Debugging
Dropdown, Submit, Reset, Button, etc. • Introduction to Browser Dev Tool
• Introduction to CSS, Styling HTML with CSS, • Pushing code quality via JSLint tool
Structuring pages with CSS, • Introducing to jQuery
• Inline CSS, Internal CSS, External CSS, Multiple • jQuery selectors
styles, CSS Fonts • jQuery events
• CSS Box Model • jQuery animation effects
• id Attribute, class Attribute • jQuery DOM traversal and manipulation
• HTML Style Tags • Data attributes and templates
• Linking a style to an HTML document • jQuery DOM utility functions
• Introduction of UI Scripting • jQuery plugins
• The Best Experience for All Users • Introduction and need of JSON
o Desktop, Tablet, Mobile • JSON Syntax Rules
• Bootstrap • JSON Data - a Name and a Value,
o Overview of Bootstrap, Need to use • JSON Objects, JSON Arrays, JSON Files
Bootstrap • JSON parsing
o Bootstrap Grid System, Grid Classes, Basic • Introduction to Ajax
Structure of a Bootstrap Grid
• Ajax Framework
o Typography
• Ajax Architecture
o Components – Tables, Images, Jumbotron,
• Web services and Ajax
Wells, Alerts, Buttons, Button Groups,
Badges/Labels, Progress Bars, Pagination, • Ajax using JSON and jQuery
List Groups, Panels, Dropdowns, Collapse, Node.js
Tabs/Pills, Navbar
o Forms, Inputs • Introduction to Node.js
o Bootstrap Themes, Templates • Browser JS vs. Node.js
• ECMAScript 2015 (ES6)
JavaScript • Node.js REPL
• Introduction to JavaScript • Introduction to Asynchronous programming
• Variables in JavaScript and callbacks
• Statements, Operators, Comments, • Promises and async & await
Expressions, and Control Structures • The Event Loop and Timers
• JavaScript Scopes • Understanding Node modules, exports, and
• Strings, String Methods require
• Numbers, Number Methods • Introduction to npm
• Boolean Values o package.json and package-lock.json files
• Dates, Date Formats, Date Methods o Install, update, and manage package
• Arrays, Array Methods dependencies
• Objects, Object Definitions, Object Properties, o Local and global packages
Object Methods, Object Prototypes • File I/O – Sync & Async Methods
• Functions, Function Definitions, Function • HTTP Module – Building an HTTP server
Parameters, Function Invocation, Function • Developing a Node web application
Closures React
• Object Oriented Programming
o Method, Constructor, Inheritance, • Introduction to React
Encapsulation, Abstraction, Polymorphism • React Elements and React Components
• Document Object Model (DOM) • Function and Class Components
o Object hierarchy in JavaScript • Working with React Components and Props
o HTML DOM, DOM Elements, DOM Events o Compose components
o DOM Methods, DOM Manipulation o Render components
• Forms, Forms API, Forms Validation o Declutter components
• Regular Expressions • Introduction to State and Lifecycle
@CDAC Page 6 of 3
• Stateful components and lifecycle methods • Session Tracking with
• Props vs. State vs. Context o Cookies
• Handling events o HttpSession
• Conditional rendering • Request Dispatcher
• Lists and Keys • Page Navigation
o Rendering Multiple Components • Complete Case study Servlet Based
o Basic List Component • JSP: Separating UI from Content generation code
• Working with forms and inputs • MVC architecture
• Refs and the DOM • Design Pattern: MVC Pattern
• Lifting state up • Life cycle of a JSP page
• Error Boundaries • Directives, Implicit and Explicit Objects,
• Composition vs. Inheritance Scriptlets, Expressions, Expression Language
o Containment • Scope
o Specialization • JSP Error Page handling
• Thinking in React • JSTL
• Introduction to Redux • Hibernate Framework
• Actions, Reducers, and Stores o Introduction to Hibernate Framework
• Usage with React o Architecture
• Hibernate in IDE
6. Web-based Java Programming o Creating web application using Hibernate API
o Lifecycle of Hibernate Entities
• J2EE Overview
• HB with annotation example
o J2EE Container
• Hibernate Mappings and Relationships
o Packaging Web applications
• Collection and Component Mapping
o J2EE compliant web application
• HQL, Named Queries, Criteria Queries
o Deployment tools.
o Web application life cycle Spring
o Deploying web applications.
o Web Services Support • What is Spring Framework
• JDBC & Transaction Management • Overview of Spring Architecture
o Introduction to JDBC API • Spring MVC architecture
o JDBC Architecture • Spring Modules Overview
o JDBC Drivers • Understanding Spring 4 annotations (Basic
o JDBC Classes & Interfaces: Driver, Introduction)
Connection, Statement, • What is IoC (Inversion of Control)
PreparedStatement, ResultSet and their • IOC container
relationship to provider implementations • Dependency Injection
o Stored procedures and functions Invocation • Spring Beans
o SQL Injection overview and prevention • Autowiring Beans
o Design Pattern: Data Access Object Pattern • Bean Scopes
• Servlets: Dynamic Content Generation • Spring MVC
• Advantages of Servlets over CGI • Model, Model & View, HandlerMapping,
• Servlet Life cycle ViewResolver
• Servlet API & Deployment • Design Pattern: Front Controller Pattern
• Servlet Annotations • Spring MVC Web application with JSP views
• The Servlet interface (without Spring Boot)
• The HttpServlet, HttpServletRequest, • Using Thymleaf as alternate View Technology
HttpServletResponse (only introduction)
• Exception Handling • Spring Validations
• Servlet, DAO, POJO DB Layers • Spring i18n, Localization, Properties
• Session • File Upload example
• Session Management • Spring Boot essentials
@CDAC Page 7 of 3
• Why Spring boot
• Spring Boot Overview
• Basic Introduction of MAVEN
• Building Spring Web application with Boot
• Spring Boot in detail (Use Spring Boot for all
demo & assignments here onwards)
• Running a web application using Spring Boot
with CRUD (with Static Data not DB)
• Spring Data JDBC
• Spring Data Module
o Spring Data JPA (Repository support for JPA)
o CrudRepository & JPARepository
o Query methods
o Using custom query (@Query)
• Spring AOP
o AOP Overview
o Spring AOP
o AOP Terminology and annotations: Advice,
Join Points, Pointcuts, Aspects
• Building REST Services with Spring
o Introduction to web services
o SOAP Vs RESTful web services
o RESTful web service introduction
o Create RESTful web service in java using
Spring Boot
o RESTful web service JSON example
o RESTful web service CRUD example
o Using POSTMAN client to invoke REST API’s
o REST service invocation using REST
Template
• Testing in Spring
• Unit Testing of Spring MVC Controllers:
• Unit Testing of Spring Service Layer
• Integration Testing of Spring MVC Applications:
REST API
• Unit Testing Spring MVC Controllers with REST
8. Software Project
@CDAC Page 8 of 3