Certificate Course: Fundamentals of Programming (FoP)
Collaboration with: upGrad | Duration: January 2021 – June 2021
Students enrolled: 15

  Students who have successfully completed the course: 13

1

Anku Kumari

PGD

Data Science

2

Pranjal Kumar

PGD

Data Science

3

Mansi Pandey

B.Tech

CSE with Data Science

4

Anshuli Kashyap

B.Tech

CSE with Data Science

5

Ashish Kumar

B.Tech

CSE with Data Science

6

Chand Babu

B.Tech

CSE with Data Science

7

Kishor Kumar

B.Tech

CSE with Data Science

8

Krishna Agarwal

B.Tech

CSE with Data Science

9

Sagar Kishan Verma

MSc.

Data Science

10

Shivani Pal

B.Tech

CSE with Data Science

11

Taufeeq Ahmad

B.Tech

CSE with Data Science

12

Varun Kuttan

MSc

Data Science

13

Vishal Lakhera

B.Tech

CSE with Data Science

 Syllabus

Module Name

Session Topic

Variables & Datatypes

· Installation of JDK
· The ‘Hello World’ Program on Command Prompt
· Integrated Development Environment (IDE) – IntelliJ
· Variables

· Primitive Data Types
· Arithmetic operations
· Taking user input in Java
· Strings and characters

· Arrays
· Relational operators
· Logical operators

· Comments in Java
· Errors while coding in Java
· Debugging using the debugger tool provided by IntelliJ

Conditionals, Loops & Functions

· Conditional statements
· Loops
· Functions

· Use loops to reduce the repetition of logic
· Implement while, do-while and for loops
· Use loops to solve problems

· Create functions to make your program efficient
· Use internal functions
· Handle errors

· Use loops to reduce the repetition of logic
· Implement while, do-while and for loops
· Use loops to solve problems

Object Oriented Programming

· Benefits of object-oriented programming
· Introduction to classes and objects
· Modelling real-life problems using classes & objects
· Constructors — default &parameterised constructors

· The ‘this’ keyword
· The ‘static’ and ‘final’ keywords
· First principle of OOP — abstraction
· Private access modifier
· Getter and setter methods
· Private methods and constructors

· The second principle of OOP — encapsulation
· Introduction to inheritance
· Inheritance in Java

· The second principle of OOP — encapsulation
· Introduction to inheritance
· Inheritance in Java

· Inheritance vs Composition
· Method Overriding
· Method Overloading

Arrays & Linked Lists

· Inheritance vs Composition
· Method Overriding
· Method Overloading

Abstract classes

Interfaces

· Dynamic Polymorphism
· Abstract Classes
· Interfaces
· Exception Handling

String Handling

· Arrays
· Generic data structures
· ArrayList and LinkedList

· Basic operations in ArrayList and LinkedList
· Lists and polymorphism

· Iterators
· Performance Measurement
· Performance of different operations in ArrayList and LinkedList

· Structure of ArrayList and LinkedList

· Introduction to Stacks
· Revision: Array list and Linked list
· Data structures

· Stacks
· Parenthesis matching problem

. Applications of Stacks & Operations of stacks

· Solving the parenthesis matching problem using stacks
· Matching multiple types of parentheses
· Implementing a stack

. Queues

· Industry Demonstration: file versioning system
· Queues
· Ticket booking system using queues

· Implement a stack using two queues
· Implement a stack using one queue
·Identify a palindromic string problem

· Delete duplicate parenthesis problem
· Reverse a stack problem
· Find kth largest element problem

· Introduction to Hash Tables
· Array Implementation of a Phone book problem
· Hashing and Hash Functions

· Collisions in hash tables
· How a hash function affects hashing
· Phone book implementation using hash tables

· Introduction to hashmap and hashset
· Find symmetric pairs problem

· First unique character problem

· Check array of contiguous integers problem
· Pair with a given sum problem

· Find itinerary from all tickets problem
· Match locks and keys problem

· The title problem
· Linear vs non linear data structure

· Introduction to trees
· Introduction to binary trees

·Properties of binary tree
· Types of binary tree

· Representation of binary tree
· Tree traversal : DFS

· DFS pseudocode and code

· Tree traversal : BFS
· BFS (recursive) pseudocode and code

Graphs

Heaps

Algorithm Analysis

· Parameters of Algorithm Efficiency
· Complexity functions

· Asymptotic notations
· Big O functions

· Time vs Space complexity trade off
· Run time analysis of various algorithms

· Fibonacci sequence
· Recursion
· Industry relevant examples

Searching & Sorting

· Introduction to Searching

· Linear Search and its Java implementation
· Time Complexity of Linear Search

· Divide & Conquer algorithms

· Binary Search and its Java implementation
· Time Complexity of Binary Search

· Bubble Sort and its Java implementation
· Time Complexity of Bubble Sort

· Selection Sort and its Java implementation
· Time Complexity of Selection Sort

· Insertion Sort and its Java implementation

· Time Complexity of Insertion Sort
· Insertion Sort vs Selection Sort

· Merge Sort and its Java implementation
· Time Complexity of Merge Sort

· Quick Sort and its Java implementation
· Time Complexity of Quick Sort

· Quick Sort demonstration through cards game + Doubt resolution

· Comparison of Sorting Algorithms
· Sample problem (Leader-board)