C-DAC Logo

Diploma in Advanced Secure Software Development (e-DASSD)

In today's scenario, cyber security threats are majorly addressed reactively; but by following proper software security practices we can minimize attacks and address this problem proactively. e-DASSD course focuses on security requirements for modern software development with equal emphasis on programming foundations to make the students suitable to work in IT industry from day one. The course gives special emphasis to the emerging technologies such as blockchain technology and machine learning, and their use cases in cyber security. Objective of the course is to make students strong in programming basics, software security, current & emerging technology trends and prepare them to be on par with the changing technologies and the requirements of IT industry.

·  Graduate in Engineering in IT, Computer Science, Electronics, Telecommunications, Electrical, Instrumentation, OR

·  MCA

The candidate must have minimum of 55% in qualifying degree.

The course fees of e-Diploma in Advanced Secure Software Development (e-DASSD) course is Rs. 50,000 plus GST currently @ 18%.

The course fees is to be paid in the two installments. The first installment is Rs. 10,000/- plus GST currently @ 18% to be paid after the allocation of seats. The second installment is Rs. 40,000/- plus GST currently @ 18% to be paid before the commencement of course.


Basics - Introduction to GNU Tool chain, Linux environment and VI editor, Tokens of C - Keywords, Data-Types, Variables, Constants, Operators, Identifiers, Storage Class Specifiers, Control Flow Statements, GNU Make utility, Arrays, Multidimensional arrays, Data Input & Output, Strings, Loops - for, while etc., Functions and Recursion

Advanced - Pointers - Intro, Pointer Arithmetic, Pointers and Arrays, Pointers and Functions, Pointers and Strings, Structures, Unions, Enum, Typedef, Bit field operators and pointers with structures, Preprocessors, C and Assembly, Files, I/O, Variable No. of arguments, Command Line arguments, Error handling and debugging with GNU GDB


Introduction to Data Structures, Complexity of Algorithms - Space and time complexity

Linked Lists, Stacks, Queues, Sorting algorithms - Bubble, selection, insertion, quick, merge and heap sort, Searching algorithms - linear and binary search, Hashing - collision, collision resolution techniques, Trees - Binary trees, Binary search trees, AVL trees

 Graphs - terminology, breadth first and depth first traversals, spanning trees, minimum spanning tree algorithms, shortest path algorithms, Pattern Matching algorithms


  • OS Organization, Architecture, Structure and Operations.
  • Process Management - Processes, Threads, Concurrency, Process Synchronization, CPU Scheduling, Static and Shared Libraries.
  • Memory Management - Main Memory and Virtual Memory
  • Filesystem Management - File System interface
  • IPC mechanisms - Pipes, Named Pipes, FIFOs, Message Queues, Mutexes, Condition Variables, Read Write locks, Semaphores, Shared Memory
  • Network Programming: Introduction to TCP/IP Networking Stack, Socket Introduction, Elements of TCP sockets, TCP Client-Server, I/O Multiplexing (select/poll), Elements of UDP sockets, Non-blocking I/O & IOCTL operations


  • Introduction to Security Concepts & terminology - Networking Devices (Routers/Switches/Bridges), Security Attacks
  • Security Services - Authentication, Access Control, Data Confidentiality, Data Integrity, Non-Repudiation & Availability.
  • Security Mechanisms, Classical Encryption - Cryptography, Cryptanalysis & Brute Force Attacks, Substitution & Transposition Techniques, Cryptographically strong random numbers/APIs, Introduction to Steganography, Denial of Service (DoS) Attacks & Distributed Denial of Service Attacks (DDoS), Stream Ciphers & Block Ciphers, Public Key Cryptography & RSA, Diffie-Hellman Key Exchange & Man-in-the-Middle Attack, Message Authentication Code (MAC), Hash Functions & Hashed Message Authentication Code (HMAC).
  • Digital Signatures, Digital Certificates, X.509 & Public-key Infrastructure (PKI)
  • Security Protocols - Pretty Good Privacy & S/MIME, Secure Sockets Layer (SSL) & Transport Layer Security (TLS)
Software Security
  • Binary Analysis: Assembly Syntax, Different phases of the C compilation process, Disassembling a Binary, ELF & PE Formats, Concepts - Call Graph, Control Flow Graph & Basic Blocks
  • Binary Exploitation & Defence Mechanisms: Stack, Stack Frame, Base Pointer, Stack Pointer, Heap, 32-bit & 64-bit calling conventions, Classical problems in C programming - Stack-based & heap-based buffer overflow, Format String problems & Integer overflows, Defence Mechanisms - Stack Canaries, Data Execution Prevention & Address Space Layout Randomization


Introduction - Object Oriented Programming and concepts, Java language and its features, JDK, JRE and JVM, Basic Programming Constructs - Charset, identifiers, data types, variables, constants, literals operators, decision making statements (if, switch), iterative statements (while, do, for and for-each), jump statements (break, continue and return) and keywords, Classes and Objects, Data and methods members - Types of variables and their scope, Creating objects, Constructors, Overloading, Parameter passing in Java, this and static keywords, JVM and Garbage Collection - Java Virtual Machine and subsystems, Class loading and Execution Engine systems, Java runtime memory system,

Inheritance and Polymorphism - Visibility modifiers, extends and super keywords, Abstract classes, Run-time polymorphism, Interfaces, Inner classes, Anonymous inner classes, Packages and Wrapper Classes - Importing  packaging, Defining custom packages, Wrapper classes, Modifiers in Java, Exception Handling - Introduction to exceptions – checked and unchecked, Java’s exception handling mechanism, Writing custom exceptions in Java, Arrays and Strings - Arrays, Strings, String constant pool, String comparison and methods, Stringbuffer and Stringbuilder classes, Command line arguments

IO Streams - Text Streams – Reader and Writer, Byte Streams – InputStream and OutputStream, File IO –Filereader and Filewriter , Processing Buffers, Ways of reading data from Keyboard, Multi-Threading- Concept of Thread and thread life cycle, Creating a thread, Thread class and its methods, Thread synchronization and inter thread communication

Java Collection Framework - Need of collections in Java, Key interfaces of Collection Framework – Collection, List, Set, Queue, Map, etc.,Legacy and non-legacy collection classes, Iterators and Enumerator, Utility classes – Collections and Arrays, Exploring java.util package – Date, Calendar, Scanner etc. Generic Programming in Java, Introduction, Writing a Generic Class, Passing Objects of a Generic Class to a Method, Writing Generic Methods, Constraining a Type Parameter in a Generic Class, Use of wildcards – upper and lower bounds, , Secure Coding in Java, SEI CERT Java coding standard, Design Patterns in Java


  • Android Basics

  1. Overview of Android Platform & Android Building Blocks
  2. Overview of Android Application Components (Activity, Intents, Broadcast Receiver, Content Providers, Service)
  3. Android Permission Model and Application Sandboxing
  • Android application development

  1. Android GUI Development and Event Handling
  2. Programming on Android Application components
  • Android App development by using Kotlin

  • Secure Coding in Android

  1. App Security best practices
  2. Security Functions in Android
  3. Secure data storage options in Android
  4. SEI CERT Android coding standard 
  • Working on Socket connection

  • Signing and preparing the application for Google play store release

  • Security assessment of Android applications

  1. Reverse Engineering & Obfuscation techniques
  2. Static and Dynamic analysis with open-source tools
  • A case study for security analysis of Android application


Mathematics for Machine Learning - Linear Algebra (Including Matrix Operations), Probability & Statistics, Python  libraries for Machine Learning (Numpy, Pandas, Matplotlib, Scikit-learn), Introduction to Supervised, Unsupervised and Semi-supervised Learning, Exploratory Data Analysis, Data pre-processing & Feature engineering, Regression - Linear Regression, Gradient Descent, Multiple Linear Regression, Support Vector Machine (SVM), KNN, Evaluation of Regression Models, Classification - Logistic regression, KNN, SVM, Decision Trees, Naive Bayes

Evaluation of Classification Models, Unsupervised learning - K-Means, Case study in cyber security domain, ML for Android and a Case study




Reference Book

No. of Questions


Any High School Grammar Book (e.g. Wren & Martin)


Quantitative Aptitude & Reasoning

Quantitative Aptitude Fully Solved (R. S. Aggrawal)

Quantitative Aptitude (M Tyara)

Barron’s New GRE 2016

Computer Fundamentals

Foundations of Computing (Pradeep Sinha & Priti Sinha)


Operating Systems

Operating System Principles (Silberschatz, Galvin, Gagne)

C Programming

C Programming Language (Kernighan & Ritchie)

Let Us C (Yashavant Kanetkar)

Data Structures

Data Structures Through C in Depth (S. K. Srivastava)

OOP Concepts

Test Your C ++ Skills (Yashavant Kanetkar)

C-DACs - Advanced Computing Training School
Plot No. 6 & 7, Hardware Park, Sy No. 1/1, Srisailam Highway, Pahadi Shareef Via Keshavagiri (Post), Hyderabad
Andhra Pradesh 500016
7382053731 / 2
Contact Person
Mr. Sharanabasappa , Senior Technical Officer
C-DACs - Advanced Computing Training School
Plot No. 6 & 7, Hardware Park, Sy No. 1/1, Srisailam Highway, Pahadi Shareef Via Keshavagiri (Post), Hyderabad
Telangana 500005
Contact Person
Mr.Sharanabasappa, Senior Technical Officer
040-2374 3382