0% found this document useful (0 votes)
16 views16 pages

Data Structure Notes

The document outlines the course 'Data Structures and Algorithms' (CMPC-203) taught by Dr. Bushra Jamil, detailing the course objectives, learning outcomes, and content structure. It emphasizes the importance of understanding data organization, algorithm analysis, and problem-solving skills using C++. Additionally, it discusses the applications of data structures and algorithms in various fields and provides resources for further learning.

Uploaded by

zubairabd38
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views16 pages

Data Structure Notes

The document outlines the course 'Data Structures and Algorithms' (CMPC-203) taught by Dr. Bushra Jamil, detailing the course objectives, learning outcomes, and content structure. It emphasizes the importance of understanding data organization, algorithm analysis, and problem-solving skills using C++. Additionally, it discusses the applications of data structures and algorithms in various fields and provides resources for further learning.

Uploaded by

zubairabd38
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 16

Lecture 1

Data Structures & Algorithms


Course Overview & Importance
By
Dr. Bushra Jamil
Introduction
• Course outline
• Rules and regulations
• Course contents
• Mode: 2 Lectures per week (1.5 hrs each)
• Assessments: Quizzes, Assignments, Midterm, Final, Project
Course Description
• Title: Data Structures and Algorithms
• Code: CMPC-203
• Credit Hours: 3 (Theory) + 1 (Lab)
• Prerequisite: OOP
• Follow Up: Design and Analysis of Algorithms, Operating Systems
Course Objectives
• Understand how data is organized, stored, and retrieved
• Learn data structures: arrays, lists, stacks, queues, trees, graphs
• Analyze algorithms (time & space complexity)
• Develop problem-solving skills using C++
• Prepare for advanced CS courses
Learning Outcomes
• By the end of this course, students will be able to:
– Select suitable data structures
– Implement structures in C++
– Apply algorithm design techniques
– Evaluate algorithms using Big-O
– Build small DSA-based projects
Contents
• Introduction to Algorithms
• Arrays
• Stacks
• Recursion
• Queues
• Lists and its variations
• Trees
• Hashing
• Searching and sorting Techniques
• Graphs
• Introduction to STL
Data Abstraction and Encapsulation

• Data Encapsulation or Information Hiding is


the concealing of the implementation
details of a data object from the outside
world.
• Data Abstraction is the separation between
the specification of a data object and its
implementation.
• A data type is a collection of objects and a
set of operations that act on those objects.
Data types in C/C++
Datatype Modifiers
Data Types
• Simple (basic)
– char, int, float, double
• Modifiers
– signed, unsigned
• Qualifiers
– static, const
• Structured (derived)
– Arrays, structures, unions, classes
• Advanced (composite)
– List, queues, stacks, trees, graphs
Data Structures
• Goal: organized way to manage and store data
• Criteria: facilitate efficient
– storage of data
– retrieval of data
– manipulation of data
• Process:
– select and design appropriate data types
Algorithms
• Algorithm is a set of instruction written to to solve a problem
• To develop a program of an algorithm, we should select an
appropriate data structure for that algorithm.
• Therefore algorithm and its associated data structures from a
program.
Why Study DSA?
• Efficiency: Faster algorithms, less memory
• Scalability: Handle big datasets
• Industry Relevance: Interviews & real-world use
• Foundation: Supports DB, OS, AI, Compilers
• Improves problem-solving skills
Applications of DSA
• Databases: Indexing, B-trees, Hashing
• OS: Process scheduling, memory management
• Networks: Routing (Dijkstra, Bellman-Ford)
• AI: Graph search, decision trees
• Cybersecurity: Cryptography
Tradeoff
simplicity of data organization simplicity/elegance of algorithms

 Simple (unsophisticated) data strucuture


may require much work for processing data

 More complex data organization


may yield nicer algorithms for the basic operations

Another version of the old time-space tradeoff


Resources
• Textbooks:
– Mark Allen Weiss, DSA in C++
– Sedgewick & Wayne, Algorithms
• Online: GeeksforGeeks, LeetCode, HackerRank
• Tools: VS Code, Code::Blocks, Online GDB

You might also like