i. Create awareness of and experience in object-oriented programming discipline.
- Understand the meaning of and the usage of object oriented programming
- Learn basics of object oriented programming and class definition.
- Learn recursive algorithms and argument passing
ii. Create awareness of and experience in dynamic memory management.
- Understand the meaning of and the usage of memory and dynamic memory.
- Learn to create and delete dynamic memory.
- Use dynamic memory in various data structures.
iii. Learn fundamental data structures with their searching, insertion and deletion
capabilities.
- Learn array data structure.
- Learn stack and queue data structure.
- Learn linked list and tree data structure.
- Learn graph data structure.
- Learn hash coding.
- Learn searching, insertion and deletion in the covered data
iv. Learn fundamental sorting algorithms with their complexity analysis.
- Understand the meaning of sorting.
- Learn sorting algorithms (selection sort, bubble sort, quick sort, radix sort).
- Compare the algorithms in terms of their complexity.
v. Create awareness of and experience in algorithm complexity.
- Understand the meaning of algorithm complexity.
- Learn Big-O, Ω, Θ complexity analysis details.
- Perform complexity analysis for various algorithms.
vi. Create awareness of and experience in computational complexity.
- Understand the meaning of computational complexity
- Learn decisison problems, P, NP, NP complete, NP hard problem classes, relation betwwen these classes and problem reduction