Programming and Data Structures

Building on Computational Thinking, this course develops students' ability to apply Object-Oriented Programming (OOP) principles through problem-solving using common data structures and algorithms. Topics covered include:

  • Principles and application of OOP.
  • Program complexity, recursion, and proofs by induction.
  • Common data structures and algorithms, and their applications.
  • Comparative analysis of data structures and their optimality.

Course Overview

Info not available

Learning Objectives

Info not available

Learning Outcomes

After taking this course, students will have:

  • Knowledge of OOP principles and the use of classes, objects and methods. They will also gain familiarity with programming in C++ by designing and implementing several abstract and concrete data structures that help in the realization of useful algorithms.
  • Analytical skills such as subdividing complex problems into smaller parts, analyse which computational approach works well for what kind of problems, and estimate computational effort required to solve problems. Also, they would know how to apply Big-O asymptotic notation to analyse and select efficient algorithms for solving a given problem with respect to time and memory usage.
  • Comprehension of which data structures and class of algorithms are most suited to a problem or a class of problems. Be able to compare the adequacy, computational efficiency, and generalizability of multiple solutions to problems.
  1. Liang, Y Daniel. Introduction to Programming with C++ (3/e). Harlow: Pearson Education Limited, 2014.
  2. Forouzan, Behrouz A and Richard F Gilberg. C++ Programming: An Object-Oriented Approach (1/e). Noida: McGraw Hill Education (India) Pvt. Ltd., 2022.
  3. Balagrusamy, E Object-Oriented Programming with C++ (8/e). Chennai: McGraw Hill Education (India) Pvt. Ltd., 2021.
  4. Drozdek, Adam. Data Structures and Algorithm in C++ (4/e). New Delhi: Cengage, 2013.
  5. Langsam, Y, Moshe J Augenstein and Aaron M Tenenbaum. Data Structures using C and C++ (2/e). New Delhi: Pearson
  6. Wengrow, J A Common-Sense Guide to Data Structures and Algorithms (2/e). The Pragmatic Programmers LLC (O’Reilly), 2020.

Additional Readings

Info not available