0% found this document useful (0 votes)
16 views

list of learning topics

Uploaded by

Borhan Bhuiyan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

list of learning topics

Uploaded by

Borhan Bhuiyan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 6

Programming Fundamentals Data Structure & Algorithm Fundamentals Competitive Programming -

Beginner, Intermediate & Advanced

Computer Fundamentals
● Various components of a computer and their characteristics (RAM,ROM,CPU etc).
● Basics of I/O devices.
● Basics of Networking.

Digital Logic

● Boolean Algebra (Basic).


i) Logic Gates (AND,OR,NOT,XOR etc)
ii) Truth Table.
iii) Tricks & techniques of logic gates in programming.

● Number Systems.
i) How the binary system helps us to perform operations efficiently.
ii) Relation and conversion between various number systems.
iii) Real life examples and optimization techniques.

OJ's and Code sharing sites

● IDE vs Compiler.
● Compiling, Running and Understanding First Program.
● Introduction to various OJ i.e. CF, UVA, Codechef, vjudge etc.
● Introduction to code sharing sites.

Variabls, Data Types and Operators

● Coding styles and header files.


● Variables and I/O.
● Understanding Data Types and Constants.
● Working with Arithmetic Expressions.
● Relational, Logical and Conditional operators.
● Bitwise operators and their tricky applications.

Making Decisions

● The if and if-else Statement.


● Nested if and if-else Statement.
● The switch Statement
● Boolean Variables

Loops

● Loops - While and For


● Loops - Do-while
● Break, Continue, Goto and Labels
Discrete Math & Number Theory

● Basic Number Theory (GCD, LCM, Divisibility,Primality Testing etc).


i) Euclid's theorem for calculating GCD and how it works.
ii) Insights of GCD and LCM with real life examples.
iii) Concepts of divisors and how it helps to efficiently perform primality testing.
iv) Real life examples and some problem solving.
● Sieve of Eratosthenes.
● Basic Modular Arithmetic.
● Factorization
● Fermat's little theorem
● Totient function
● Combinatorics from HSC.
● Probability with Expected Value
● Matrix Exponentiation
● Combinarotics
● Extended GCD
● Convex Hull

Arrays

● Defining and Initializing Arrays.


● Operations: Find, Insert, Erase, Copy, Reverse, etc.
● Subarray, Subsequence.
● Multidimensional Arrays and Variable-Length Arrays.
Matrix

● Matrix addition, subtraction, multiplication.


● Matrix rotation, translation.

Sorting Algorithms

● Introduction.
● Implementation in C++.
● Complexity analysis of sorting algorithms.
● Insertion and selection sort
● Counting sort
● Using in problem solving
● STL Sort
● Merge sort
● Quick sort

Strings

● Arrays of Characters.
● Variable-Length Character Strings.
● The Null String, Escape Character.
● String in C++.
● Substring, Subsequence, substring, palindrome, anagram.
● Matching.
● Hashing
● KMP
● Trie

Structures and Classes

● Using structure.
● Operator Overloading.
● Arrays of Structures.
● Sorting of structures.
● Structures Containing Array.
● Basic Object Oriented Programming.

Basics of Set Theory

● Concept of Set
● Why we use it and learn it
● Set Union
● Set Intersection
● Disjoint Set.

Pointer & Linked List

● Introduction.
● Why we need it.
● How it works.
● Implementation in C.
● Implementing with static array and dynamic array.
Stack

● Introduction, why we need it, how it works.


● Implementation in C++ with static array, dynamic array and linked list.
● Different usage of Stack.
Queue

● Introduction, why we need it, how it works.


● Implementation in C++ with static array, dynamic array and linked list.
● Different usage of queue.

Functions
● Defining a function.
● Arguments and Local Variable.
● Returning function results.
● Global, Automatic and Static Variables.
● Call by Pointers, Call by Reference.
● Matrix formation of a linear recursive function.

complexity analysis of a program

● Importance of time complexity analysis of a program.


● Easiest way to calculate time complexity of a program.
● Time Complexity Analysis.
a. Big-O Notation.
b. How to calculate time complexity of a function.
● Memory Complexity Analysis.
a. Capacity of each data type variable and its calculation.
b. How to calculate memory complexity of a piece of code.
c. Concepts of Heap Memory & Stack Memory.
● Single and Multidimensional arrays.
a. Introduction.
b. Conversion between various dimensional arrays into 1D arrays.
c. Application and necessity of arrays.

Recursion

● Insight, recursive equation


● Binary search with recursion
● Divide and Conquer
● Quick select
● Inversion count
● Intro to backtracking

Operating System and some algorithms of operating system

● Basics of Operating System.


● Operating System Algorithms
i) First-Come, First-Served (FCFS) Scheduling algorithm.
ii) Shortest-Job-Next (SJN) Scheduling algorithm.
iii) Priority Scheduling algorithm.
iv) Shortest Remaining Time algorithm.
v) Round Robin(RR) Scheduling algorithm.

STL

i) introduction, mechanism, library functions


ii) vector
iii) Stack/queue/deque
iv) Priority Queue
v) set/map/multi/unordered
Greedy Algorithms.

● Introduction.
● Prove/disprove greedy approach
● Discussion on a few related problems.
● Task scheduling ,Fractional Knapsack,Coin Change etc.

Searching Algorithms

● Binary Search.
a. Introduction.
b. Implementation.
c. Insight of binary search and binary property.
d. Binary search on arrays.
e. Binary search on math problems.
f. Bisection in geometry problems.
g. Complexity Analysis.
h. Different application of searching techniques(Lower and upper bound)

● Ternary Search
a. Introduction.
b. Implementation in C++.
c. Different application of searching techniques.

Graph Theory & Representation

● Introduction.
a. What is a graph?
b. Why do we need this?
● Types of graph.
a. Directed Graph and Undirected Graph.
b. Cyclic.
c. Tree.
● Graph modeling.
● Adjacency matrix representation.
● Adjacency list representation.
● Edge List representation.
● Implementing all the representations in C++.
● Articulation Point & Bridge.
● All Pair Shortest Path, Shortest Path with negative weight.
● Minimum/Maximum Spanning Tree.
● Biconnected Component, Strongly Connected Component.
● Relevant basic problem solving i.e. 8-queen, all permutations, Fibonacci, Graph coloring etc.
Graph Traversing Algorithm.

● Depth First Search.


● Breadth First Search.
● How to model a graph based on real life scenario and finding shortest.
● Different application of DFS and BFS other than graph.
● Dijkstra

Dynamic programming

● Introduction, properties, states


● Ancestors of DP: Fibonacci, Factorial, nCr
● Classics and variations
● Bitmask DP
● Digit DP
● Iterative DP

Segment Tree

● Basic segment Tree


● Segment Tree with Lazy Update
● Sparse Table (Binary Lifting): LCA,RMQ with O(1)

Network Flow

Max flow
Min cut
Min cost max flow

Game theory

Pattern
DP
Nim
Grundy
Minimax

You might also like