Data Structures andAlgorithms
(CC-2042)
Lecture 1
ENGR. DR BILAL ASHFAQ AHMED
SCHOOL OF SYSTEMS AND TECHNOLOGY (SST)
COMPUTER SCIENCE FACULTY
2.
2
About Instructor
Education
Ph.D. (Computer Science)
Universiti Teknologi Malaysia (UTM), Johor, Malaysia.
M.Sc. (Computer Engineering)
University of Engineering & Technology (UET), Lahore, Pakistan.
B.E. (Computer System Engineering)
Balochistan University of Engineering & Technology (UET), Khuzdar, Pakistan.
Professional Experience
Assistant Professor, Sept 2024 to Date
◦ Computer Science Faculty (UMT, Lahore, Pakistan)
Junior Visiting Researcher (Faculty of Computing, Universiti Teknologi Malaysia (UTM), Johor,
Malaysia)
Assistant Professor (Department of Electrical Engineering, The University of Lahore (UOL), Lahore,
Pakistan.)
BSS Engineer (Hyquip Sourcing & Services, Lahore, Pakistan.)
DLD
3.
DLD 3
About Instructor
Research Interests
Software Defined Networks (SDN)
Internet of Things (IoT)
Cloud Computing
Deep Learning
Machine Learning
Optimization Algorithm
Professional Information
Email: bilal.ahmed@umt.edu.pk
Office: SDT Building 402 (Cabin No: 8)
Office Hours: Monday to Thursday (10am-12Pm)
4.
DLD 4
Course Information
This course provides an in-depth understanding of data
structures and algorithms.
Students will learn how to design, implement, and
analyze efficient algorithms using various data structures
like arrays, linked lists, stacks, queues, trees, graphs,
and hash tables.
The course emphasizes the importance of time and space
complexity and aims to enhance problem-solving skills
essential for advanced computing and programming tasks
5.
DLD 5
Course Objectives
Understand the basic concepts of data structures and
algorithms.
Implement various data structures and their associated
algorithms.
Analyze the time and space complexity of algorithms.
Solve real-world computing problems using efficient
algorithms and data structures.
Develop programming skills through hands-on coding
exercises.
6.
DLD 6
Course Outline
Introduction to Data Structures and Algorithms
Arrays and Linked Lists
Stacks and Queues
Recursion and Backtracking
Trees (Introduction and Basic Concepts)
Advanced Trees (AVL Trees, Heaps)
Hashing and Hash Tables
Graphs (Introduction and Basic Concepts)
Advanced Graph Algorithms
Sorting Algorithms
Searching Algorithms
Dynamic Programming and Greedy Algorithms
Complexity Theory and Algorithm Design Techniques
Revision and Advanced Topics (Optional)
7.
DLD 7
Recommended Books
D. S. Malik, Data Structures Using
C++: Course Technology, 2010.
M. A. Weiss, Data Structures &
Algorithm Analysis in C++: 4th
edition: Pearson Education, 2013.
R. Sedgewick, Algorithms in C++:
Addison-Wesley, 1998.
8.
DLD 8
Course GradingPolicy
Final-term Exams [40 %]
There will be a cumulative closed-book final exam covering all topics. Date and time of
the final will be announced at the end of the semester.
Mid-term Exams [25 %]
There will be a cumulative closed-book Mid exam covering topics discussed in class.
Date and time of the Mid will be decided and announced inside the class lecture.
Assignments [10%]
There will be 4 assignments, 2.5% for each assignment.
Quizzes [10%]
There will be 4 quizzes, 2.5% for each quiz.
Project [10%]
Presentation/Class Activities [05%]
DLD 10
Data Structures
These are ways of organizing and
storing data in a computer so
that it can be accessed and
modified efficiently.
Common data structures include
arrays, linked lists, stacks,
queues, trees, graphs, and hash
tables.
11.
DLD 11
Algorithms
Analgorithm is a step-by-step
procedure or set of rules for
solving a problem or performing
a task.
Algorithms are essential for
working with data structures
effectively, and they include
tasks like searching, sorting,
inserting, and deleting data.
12.
Relationship
DLD 12
Data structuresand algorithms go hand-in-hand; a well-chosen data structure
can optimize an algorithm’s performance, and understanding the algorithm can
help determine the most appropriate data structure.