Data Structures and Algorithm

This course introduces fundamental data structures and their applications in computer science. It covers abstract data types, linear and non-linear data structures, and their implementations. Learners develop problem-solving skills through understanding efficient data organization and access.

No Certificate / Course on Audit Track

About Course

This course provides a strong foundation in Data Structures and Algorithms, focusing on how data is organized, stored, and accessed efficiently to solve computational problems. Learners begin with core concepts of abstract data types and fundamental data structures, progressing from linear to non-linear structures using C and C++. The course then advances to complex data structures and techniques, emphasizing performance, optimization, and real-world problem solving. By the end, students develop the analytical skills required to design efficient algorithms and implement scalable solutions in computer science applications.

Authorship and Attribution

This course has been curated by Riphah International University faculty and staff using publicly available third-party content and Open Educational Resources (OER) for self-paced learning. Learners will engage with curated open-access materials to achieve the course learning outcomes. All third-party content is used under open-access or fair-use policies, while any original materials are developed specifically for this learning experience.

Source and Credits:

  • Instructors: YK Sugishita (CS Dojo)
  • Provider: YouTube (@CSDojo)
  • License: Standard YouTube license

What You'll Learn

By completing this course, you will be able to:

  • Explain fundamental data structure concepts, including abstract data types and their importance in problem solving.
  • Analyze and implement linear data structures such as arrays, linked lists, stacks, and queues.
  • Apply stack- and queue-based techniques to solve computational problems including expression evaluation and syntax checking.
  • Design and implement non-linear data structures such as trees and graphs for efficient data organization.
  • Evaluate hashing techniques and select appropriate data structures based on performance and application requirements.

Prerequisites

To be successful in this course, you should have a basic understanding of:

  • Basic understanding of programming concepts

  • Knowledge of variables and data types

  • Familiarity with control structures

  • Understanding of functions

  • Experience with simple input/output operations

  • Prior exposure to a high-level programming language (C, C++, Java, or Python)

Who Can Take This Course?

This course is designed for:

  • Students building a strong foundation in data structures
  • Learners aiming to enhance problem-solving skills

Course Outline

Introduction to Data Structures

Data Structures (Video)

Classes and objects

Introduction to Classes and objects (Video)

Arrays and memory

Dynamic and Static Arrays (Video)

Introduction to Linked Lists

Linked List (Video)

Introduction to Recursion

Recursion (Data Structures & Algorithms 6) (Video)

Introduction to Big O Notation and Time Complexity

Big O (Video)

Trees Data Structure

Introduction to Trees (Video)

Introduction to Hash Tables and Dictionaries

Hash Table and dictionaries (Video)

Introduction to Stacks and Queues

S & Qs (Video)

Skills You Will Gain

Data Organization Algorithm Design Problem Solving Complexity Analysis Logical Thinking Efficient Coding Memory Management Performance Optimization

Course Information

Duration

Approximately 3 Hours

Course Information

Difficulty Level

Intermediate

Learning Mode

Fully Online (Asynchronous)

Learning Type

Self Paced

Language

English Only

Instructor/Curator

Course Instructor