0% found this document useful (0 votes)
14 views

INF210 Lec1 Data Structures

This document provides an introduction to a course on data structures. It discusses the contents, grading system, objectives and outcomes of the course. It explains why data structures are important and fundamental. It also defines what an algorithm and data structure are, and provides examples of basic and common data structures.

Uploaded by

Nader Yasser
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

INF210 Lec1 Data Structures

This document provides an introduction to a course on data structures. It discusses the contents, grading system, objectives and outcomes of the course. It explains why data structures are important and fundamental. It also defines what an algorithm and data structure are, and provides examples of basic and common data structures.

Uploaded by

Nader Yasser
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

Data Structures

INF 210
Fall 2022-2023
Lecture 1
Introduction

Instructor
Dr/ Ayman Soliman & DR/ OSAMA FAROUK
➢ Contents
1) Course Contents.
2) Grading System & distribution.
3) Course Information.
4) Course Policy.
5) Objectives.
6) Course Outcomes
7) Why we’re studying data structures and algorithms?
❑ How to get the most out of homework
❑ What is an algorithm?
❑ Data Structure

8/10/2022 2
1) Course Contents.
➢ Abstract Data Types (ADT).
➢ Stacks: Definition and operations, implementation of stacks with
array and records, applications of stacks.
➢ Queues: Definitions, implementation of circular queues, applications
of queues.
➢ Linked lists: Singly linked lists, linked stacks, linked queues, and
doubly linked lists, application of linked lists.

➢ Tree structures, binary trees: binary tree traversals, binary tree search.
➢ Searching Definitions, sequential search.
8/10/2022 3
2) Grading System & distribution.

Total score
(100%)
Section & HW Lec. Reports & Projects Midterm exam Final exam
(10%) (10%) (10%) (30%) (10+30%)

8/10/2022 4
3) Course Information.
Lecture: Wednesday (09:00 - 11:25 AM)
Wednesday (11:25 - 13:50 PM)
References:
➢Data Structure and Algorithms in C++, 3rd Edition. Mark Allen Weiss
➢ https://www.geeksforgeeks.org/data-structures/
➢https://www.tutorialspoint.com/data_structures_algorithms/data_structures_basics.htm
➢Lecture Notes.
Instructor:
Dr. Ayman Soliman
[email protected]
TAs:
Eng.

8/10/2022 5
4) Course Policy.
➢ Be on time and cell phones should be silent or off
during the lecture.

➢ Any forms of cheating or plagiarism will result in a


Zero grade for the required task, report or exam (No
discussion nor excuses).

➢ Students are expected to respect Instructors, TAs, and


their colleagues.

➢ Your grades is based on merit only nothing else.

8/10/2022 6
5) Objectives
➢ Students at the end of course should be able to do the following:

1) Understand the concepts and skills of algorithm design

2) To get a good understanding of applications of Data


Structures.

3) Analyze a problem and identify the algorithm appropriate


for its solution;

4) Implement some well-known algorithms

5) Analyze the performance of algorithms

8/10/2022 7
5) Objectives
6) To impart the basic concepts of data structures and
algorithms

7) To Understand basic concepts about stacks, queues, list,


trees and graphs

8) To understand concepts about sorting and searching


techniques

9) To understanding about writing algorithms and step by


step approach in solving problems with the help of
fundamental data structures
8/10/2022 8
6) Course Outcomes (COs)
➢ After the successful completion of the course the student will be able to:

1) Design correct programs to solve problems.

2) Choose efficient data structures and apply them to solve problems.

3) Analyze the efficiency of programs based on time complexity.

4) Prove the correctness of a program using loop invariants, pre-conditions

and post-conditions in programs.

8/10/2022 9
6) Why are you
here?

Data structures are Data structures are


fundamental. useful.

8/10/2022 10
7) Data structures are fundamental.

The
Computational
Operating Systems
Lens Cryptography
Scheduling algorithms Fast number theoretic and
algebraic algorithms

Compilers Shortest Path algorithms


Scheduling algorithms Image Processing & pattern
Networking
Recognition

8/10/2022 11
7) Data structures are useful.

As the need of faster computers,


we need new algorithms

As we get more and more data and


problem sizes get bigger and
bigger, algorithms become more
and more important.
Will help you get a job.
8/10/2022 12
8) Why we’re studying data structures and algorithms?
➢ This course will be a general overview of data structures

❑ won't be confined to one specific language

❑ Will require a basic understanding of computer science

8/10/2022 13
Let’s Paly

8/10/2022 14
9) Everyone can succeed in this class!
❑ Work hard
❑ Work from the first day of the term not before the exam by two days
❑ Ask for help
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard
❑ Work hard

8/10/2022 15
10) What is an algorithm?
❑ An algorithm is a procedure to resolve a problem by means of a finite sequence
of basic atomic steps.
❑ The procedure must be defined in a not ambiguous and accurate way to be
executed automatically

❑ The name comes from a Persian mathematician Abu


Ja'far Muhammad ibn Musa Khwarizmi
➢ Author of the first reference algebraic text

8/10/2022 16
11) Algorithm vs Program
❑ An algorithm describes (at high level) a computation procedure which when
executed produces a result.
❑ A program is the implementation of an algorithm by means of a programming
language

❑ A program can be executed on a computer


(creating a process under execution);
❑ An algorithm can't be executed as is in a
natural form.

8/10/2022 17
12) Data Structure
❑ The title of this course is “Data Structure”

❑ DEFINITION:
➢ A way to store, organize, and manage information (or data) in a way that allows
you the programmer to easily access or modify the values within them

❑ VERY IMPORTANT: no single data structure works well for all purposes, and
so it is important to know the strengths and limitations of several of them

8/10/2022 18
13) What is Data Structure
❑ Definition: a representation and organization of data

❑ Representation:
➢Data can be stored variously according to their type (for example signed,
unsigned, etc.)
➢example: the representation of integers in memory
❑ Organization:
➢The way of storing data changes according to the organization (ordered, not
ordered, list, tree, etc.)
8/10/2022 19
14) Data Structures
❑ Examples of basic data objects:
➢Boolean {false, true}
➢Digit {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
➢Letter {A, B, …, Z, a, b, …, z}
➢Natural Number {0, 1, 2, …}
➢Integer {0, +1, +2, …, -1, -2, …}
➢String {a, b, …, aa, ab, ac, …}

❑ Data structures are composed by basic data objects


❑ Representation of data objects should facilitate an efficient implementation of
the algorithms
8/10/2022 20
15) Why Data Structure
❑ Efficient utilization of memory and disk space The goal of a
data structure
❑ Efficient algorithms for:
➢creation
➢manipulation (e.g., insertion / deletion) Store Access and
Manipulate that
➢data retrieval (e.g., find) Information Information

❑ A well-designed data structure uses less resources


➢computational: execution time
➢spatial: memory space
8/10/2022 21
Introduction - What are Data Structures?
❑ If you have a basic understanding of programming, you probably know about a
few Data Structures already
✓ Arrays and ArrayLists

8/10/2022 22
Introduction - What are Data Structures?
❑ Basic Data Structures
▪ Password Databases
▪ Online Directories

❑ Advanced Data Structures


▪ Undo/Redo Function
▪ Spell Check
▪ Text Searching

8/10/2022 23
Introduction - Course Overview
❑ We’ll Start with efficiency
▪ The metrics used to judge the speed and efficiency of different data
structures

8/10/2022 24
Introduction - Course Overview
❑ The Basics
▪ Arrays and ArrayLists

Arrays ArrayLists

8/10/2022 25
Introduction - Course Overview
❑ Intermediate Data Structures
▪ A little more complicated than the basics
▪ Have special attributes which make them stand out

Queues

Stacks

8/10/2022 26
Introduction - Course Overview
❑ Intermediate Data Structures
▪ A little more complicated than the basics
▪ Have special attributes which make them stand out

Doubly-LinkedLists

LinkedLists

8/10/2022 27
Introduction - Course Overview
❑ Intermediate Data Structures
▪ A little more complicated than the basics
▪ Have special attributes which make them stand out

Dictionaries Hash-Tables

8/10/2022 28
Introduction - Course Overview
❑ Tree-Based Data Structures
▪ Less linear, more abstract

Trees Tries

8/10/2022 29
Introduction - Course Overview
❑ Tree-Based Data Structures
▪ Less linear, more abstract

Graphs

Heaps

8/10/2022 30
Introduction - Course Overview

Arrays Hash-Tables
ArrayLists Trees
Stacks Tries
Queues Heaps
LinkedLists Graphs
Doubly-LinkedLists Searching algorithms
Dictionaries Sequential search

8/10/2022 31
8/10/2022 32

You might also like