Basics of Data Structures using C and C++

Understand arrays, stacks, queues, and linked lists using C/C++ basics.

Basics of Data Structures using C and C++ showcase image
Track
Software Development
Level
Foundation
Language
English
Duration
60 hours
Learning Mode
Learn at ALC or at Home

Introduction

  • To introduce students to fundamental concepts of data structures and their importance in problem-solving.
  • To equip students with the ability to implement data structures like arrays, stacks, queues, linked lists, and trees using C and C++.
  • To develop analytical skills for designing algorithms and understanding their computational complexity.
  • To familiarize students with advanced programming techniques, including recursion, backtracking, and dynamic memory management.
  • To prepare students to apply data structures in real-world scenarios and optimize software performance.

What you'll learn ?

  • Understand and explain the role of data structures in efficient algorithm design.
  • Implement a variety of data structures and algorithms in C and C++.
  • Analyze the time and space complexity of algorithms.
  • Solve real-world problems using appropriate data structures and programming techniques.
  • Demonstrate proficiency in handling complex programming challenges using recursion, backtracking, and object-oriented programming.
  • Develop robust and efficient solutions to computational problems.
  • Course Introduction:
  • The KLiC Certificate in Data Structures using C & C++ is designed to provide students with a foundational and practical understanding of data structures and their applications in programming. With a focus on C and C++, the course equips learners to design efficient algorithms, implement complex data structures, and solve computational problems effectively. Covering topics from basic building blocks to advanced data structures like trees and queues, the course emphasizes both theoretical concepts and hands-on programming skills.

Syllabus

Introduction and Environment Setup
  • Introduction to Data Structures
  • Mathematical Notations
  • Contradiction
  • Mathematical Induction
  • Mathematical Prerequisites
  • Introduction to Algorithm
  • Asymptotic Notations
  • Variables and Datatypes
  • Decisions
  • Switch Case
  • Array
  • Functions
  • Pointers
  • Object Oriented Programming
  • Data Types
  • Union
  • Miscellaneous Problems and Solutions
  • Recursion
  • Backtracking
  • Recursion and Backtracking: Problems
  • Introduction to Array
  • Array Operations
  • Introduction
  • Two Dimensional Array Operations
  • Array of Pointer
  • String Introduction
  • Programming String Operations
  • Array of String
  • Pointers and Strings
  • Pattern Matching
  • String Matching
  • Linked List
  • Programming Linked List
  • Circular Linked List Introduction
  • Programming Circular Linked List
  • Doubly Linked List
  • Programming Doubly Linked List
  • Comparison of Array and Linked List
  • Recursive Display of Linked List
  • Circular Linked problems and other concepts
  • Matrix Introduction
  • Lower Triangular Matrix
  • Upper Triangular Matrix
  • Symmetric Matrix
  • Tri-Diagonal and Tri-band Matrix
  • Toeplitz Matrix
  • Menu Driven Program for Matrices
  • Sparse Matrix
  • Operations on Sparse Matrices
  • Introduction to Stacks
  • Stack using Array
  • Stack using Linked List
  • Parentheses Matching
  • Operators
  • Infix to Prefix Conversion
  • Postfix to Prefix Conversion
  • Postfix to Infix Conversation
  • Infix to postfix conversion
  • Evaluation of Postfix Expression
  • Stack: Problem and Solution
  • Introduction to Queue
  • Queue as an array
  • Queue as a linked list
  • Queue: Problems and Solutions
  • Introduction to Double ended Queue
  • Programming Deque
  • Priority Queue
  • Circular Queue
  • Introduction to Trees
  • Strict and Complete Binary Tree comparison
  • Tree: Problems and Solutions
  • Binary Tree
  • Traversal of a Binary Tree
  • Binary Tree: Problems and Solutions

Work-Centric Approach

The academic approach of the course focuses on ‘work-centric’ education. With this hands-on approach, derive knowledge from and while working to make it more wholesome, delightful and useful. The ultimate objective is to empower learners to also engage in socially useful and productive work. It aims at bringing learners closer to their rewarding careers as well as to the development of the community.

  • Step 1: Learners are given an overview of the course and its connection to life and work
  • Step 2: Learners are exposed to the specific tool(s) used in the course through the various real-life applications of the tool(s).
  • Step 3: Learners are acquainted with the careers and the hierarchy of roles they can perform at workplaces after attaining increasing levels of mastery over the tool(s).
  • Step 4: Learners are acquainted with the architecture of the tool or tool map so as to appreciate various parts of the tool, their functions, utility and inter-relations.
  • Step 5: Learners are exposed to simple application development methodology by using the tool at the beginner’s level.
  • Step 6: Learners perform the differential skills related to the use of the tool to improve the given ready-made industry-standard outputs.
  • Step 7: Learners are engaged in appreciation of real-life case studies developed by the experts.
  • Step 8: Learners are encouraged to proceed from appreciation to imitation of the experts.
  • Step 9: After the imitation experience, they are required to improve the expert’s outputs so that they proceed from mere imitation to emulation.
  • Step 10: Emulation is taken a level further from working with differential skills towards the visualization and creation of a complete output according to the requirements provided. (Long Assignments)
  • Step 11: Understanding the requirements, communicating one’s own thoughts and presenting are important skills required in facing an interview for securing a work order/job. For instilling these skills, learners are presented with various subject-specific technical as well as HR-oriented questions and encouraged to answer them.
  • Step 12: Finally, they develop the integral skills involving optimal methods and best practices to produce useful outputs right from scratch, publish them in their ePortfolio and thereby proceed from emulation to self-expression, from self-expression to self-confidence and from self-confidence to self-reliance and self-esteem!