C Programming
- C Program Structure
- Data Representation
- Operators and Expressions
- Casts
- Statements and Blocks
- Control Flow Constructs
- Function Syntax
- Parameter Passing
- Call by Address
- Call by Value
- Storage Classes
- Separate Compilation
- Single Dimensional Arrays
- Multi-Dimensional Arrays
- Initializing Arrays
- Pointers, Operators, Expressions
- Pointers and Arrays
- Pointers to Pointers
- Command Line Arguments
- Structure Declarations
- Structure Members
- Arrays of Structures
- Initializing Structures
- Pointers to Structures
- Structure Operations
- Unions
- Bit Fields
- Standard C Library
- Buffered File I/O
- Dynamic Storage Allocation
C++ Programming
- Object-Oriented Fundamentals
- Programming Paradigms
- Conquering Complexity
- C++ Basics
- Built-in Types, Arrays and Pointers
- Comments, Keywords, I/O Streams
- Built-in Operators and Control Constructs
- Dynamic Free Store Operators
- C++ Functions
- Definition and Prototypes
- Inline Functions
- Structures and References
- Encapsulation
- Data Members, Member Functions
- Private and Public
- Constructors and Destructors
- Default Arguments
- Storage Allocation and Deallocation
- this Pointer
- Copy Constructors
- Overloading Functions
- Overloading Operators
- Unary and Binary Operators
- Initialization vs. Assignment
- Stream Input and Output
- Inheritance
- Public Inheritance and Subtyping
- Base and Derived Classes
- Constructors and Destructors
- Base Class Initialization
- Using Protected keyword
- Virtual Functions
- Base Class Pointers and References
- Dynamic Binding
- Abstract Base Classes
- Pure Virtual Functions
- Virtual Destructors
- Containment
- Objects as Data Members
- Member Initialization
- Private Inheritance
- Base and Derived Relationship
- Access Declarations
- Templates
- Template Functions
- Template Classes
- Exceptions
- try, catch, throw
- Exception Hierarchies
Python Programming
- Why Python?
- Good to know
- Python Syntax contrasted(compared) with other programming dialects or languages.
- Python Install
- The print statement
- Comments
- Python Data Structures & Data Types
- String Operations in Python
- Simple Input & Output
- Simple Output Formatting
- Operators in python
- Indentation
- The If statement and its’ related statement(assertion)
- An example with if and it’s related statement(explanation)
- The while loop
- The for loop
- The range statement
- Break & Continue
- Assert
- Examples for looping
- Create your own functions
- Functions Parameters
- Variable Arguments
- Scope of a Function
- Function Documentations
- Lambda Functions & map
- n Exercise with functions
- Create a Module
- Standard Modules
- Errors
- Exception handling with try
- handling Multiple Exceptions
- Writing your own Exception
- File handling Modes
- Reading Files
- Writing & Appending to Files
- Handling File Exceptions
- The with statement
- New Style Classes
- Creating Classes
- Instance Methods
- Inheritance
- Polymorphism
- Exception Classes & Custom Exceptions
- Iterators
- Generators
- With Statement
- Data Compression
- List Comprehensions
- Nested List Comprehensions
- Dictionary Comprehensions
- Functions
- Default Parameters
- Variable Arguments
- Specialized Sorts
- namedtuple()
- deque
- ChainMap
- Counter
- OrderedDict
- defaultdict
- UserDict
- UserList
- UserString
Data Structures
- Introduction to arrays
- Array indexing and accessing elements
- Operations on arrays (insertion, deletion, searching)
- Multidimensional arrays
- Applications of arrays
- Introduction to stacks
- Basic operations (push, pop, peek)
- Implementation using arrays and linked lists
- Applications of stacks (e.g., function calls, expression evaluation)
- Stack-based algorithms (e.g., tower of Hanoi)
- Introduction to queues
- Basic operations (enqueue, dequeue, front)
- Implementation using arrays and linked lists
- Circular queues
- Applications of queues (e.g., BFS in graphs)
- Introduction to linked lists
- Singly Linked Lists (SLL) basics
- Doubly Linked Lists (DLL) basics
- Operations on linked lists (insertion, deletion, traversal)
- Applications of linked lists
- Introduction to trees
- Tree terminologies (root, node, leaf, etc.)
- Binary trees
- Tree traversal (in-order, pre-order, post-order)
- Applications of trees (e.g., hierarchical data)
- Introduction to Binary Search Trees (BST)
- Operations on BST (insertion, deletion, searching)
- BST properties
- Balanced BST (AVL trees)
- Applications of BST
- Introduction to heaps
- Min heap and max heap
- Operations on heaps (insertion, deletion)
- Heap sort
- Applications of heaps
- Introduction to hashing
- Hash functions
- Collision resolution techniques
- Hash tables
- Applications of hashing (e.g., dictionaries, caches)
- Introduction to graphs
- Types of graphs (directed, undirected)
- Graph representations (adjacency matrix, adjacency list)
- Graph traversal (DFS, BFS)
- Applications of graphs