SlideShare a Scribd company logo
Algorithm and Data Structures
as the basic of IT Problem Solving
Christian A – Mei 2014
Training Material
• Information Technology Overview
– Theoretical
– Engineering
– Management
• Programming Principles
• Algorithm
• Data Structures
• Programming Concepts
Topics
• Discrete Mathematics
– Number Theory
– Set Theory, Relation, Function
– Combinatorics, Probability
– Graph
– Logic, Proof Theory
• Formal Foundation:
– Automata
– Turing Machine (model of computation: 1970 – now)
• Computer Architecture
– Von Neumann Architecture:
stored program architecture
• Computer Science (birth of : 1937-1970)
– Theory of Computation
– Branches:
• Automata Theory
• Computability Theory
• Computational Complexity Theory
Information Technology - Theoretical
• Programming
• Software Engineering:
– Requirement, Analysis, Design, Implementation
• Database
• Computer Networks
• Computer Security
Information Technology - Engineering
• Project Management
• Enterprise IT Architecture
• IT Governance
• IT Strategic Planning
• R
Information Technology - Management
“Algorithm + Data Structures = Program”
– Nicklaus Wirth (Father of Computer Science),
Creator of Pascal Language
“Program Cost: Time vs Space”
CPU Time vs Memory
“Program: Input – Process - Output”
Programming Principles
• Dynamic aspect of a program
• Sequence of steps to solve a problem
– Have a problem definition
– Have specific input
– Operate on specific data
structure (problem model)
– Produces output
• Popular algorithm maybe named for
easy communication
• Example:
• Problem: sorting
– Input: array
– Data structure: array
– Output: array
– Algorithm: Bubble Sort, Quick
Sort, Merge Sort, etc
Algorithm and Data Structure
• Static aspect of a program
• Representation of a problem (model)
• The structure / shape of the data (to
be processed)
• Is subject to be processed by an
algorithm
• Common data structures is named
• Example:
• Array
• List
• Map
• Stack
• Queue
• Matrix
• Graph
• etc
ALGORITHM DATA STRUCTURE
Algorithm and Data Structure - Example
• Problem: Find shortest path between a
source vertex and destination vertex
• Input:
– Source vertex
– Destination vertex
– Weighted graph
• Output:
– Shortest Path
• Algorithm: Dijkstra Algorithm
• Pseudocode: a pseudo programming language to describe algorithm that
will be understandable by a human reader, facilitates communication
• Programming: activity that translates the algorithm in the mind of the
programmer into specific Computer Language
• Program Source Code: for Computer or Human ?
• Human:
– Readibility
– Understandibility
– Clarity
– Structure
– Focus on the semantic (meaning)
• Computer:
– Executes binary instructions (bits)
– Source code is translated into binary instructions (machine language)
– Translation: Focus on the syntactic (what is written)
Pseudocode
• Variable
• Data Type
• Operators
• Control Structures
• Subprogram
• Abstract Data Type
Programming Concepts - Basic
• A location in memory to store a value
while a program is in execution
• Variable has:
– Name (label)
– Type (allowed values)
– Value
• Operation:
– Declaration
– Initialization
– Assignment (Write)
– Read
Variable
• Classify/restrict possible values that can be given to a data (domain values)
• Have a specific operations
• Have a name
• Primitive/Basic Data Types:
– Numeric:
• Integer: byte, short, int, long
• Real/Float: float, double
– Boolean
– Character
• Composite Data Type
– Derived from multiple primitive data types
– Combines into data structures
– Example:
• String
• Collection: Array of T, List of T, Map of <T1,T2>, Set of T
• Struct / Record { T1 f1, T2 f2, …}
• Class
Data Type
• Specific operations on a data type
• Arithmetic : Numeric, Numeric -> Numeric
• Ex: addition, subtraction, multiplication, division, modulo
• Relational: Numeric, Numeric -> Boolean
• Ex: less than, less than or equal, greater than, greater than or equal, equal,
not equal
• Logic : Boolean, Boolean -> Boolean
• Ex: not, and, or
• String operations:
• Ex: concat, substring, index of, length, …
Operators
• Literal
– Written text that represents a value that have a type
– Integer literal: 1, 1000, -1
– Float literal: 1.001, -0.2, -2E-03
– Boolean literal: true, false
– String literal: “hello”, “Jakarta”, “”
• Expression
– Combination of values that evaluates to a value
– 2+3
– sin(pi)
– x
– x+3
• Statement
– A single program action
• Block
– Combination of several statement considered as a single statement (block statement)
• Recursion
– A subprogram activity that calls itself
Programming Concepts
• Mechanism to controls the flow of the program
• Sequence
• Conditional
• Loop
Control Structures
• Basic sequential actions flow
statement 1;
statement 2;
statement 3;
…
Control Structures - Sequence
• Conditional / choice / selection of actions based on a boolean condition
IF
If condition then
statement;
IF-ELSE
if condition then
statement 1;
else
statement 2;
Control Structures - Conditional
• if-else-if-else …. visually forms a decision tree
• Make sure all possibilities have been covered !
Control Structures – Decision Tree
• Conditional loop
– while-do
– do-while / repeat-until
• Iteration
– Using a counter variable
– Over a collection (foreach)
• Loop control statement:
– Break statement
– Continue statement
Control Structures – Loop
• while-do
– Checks condition at top
– Loop Statement may /may not execute
• do-while
– Checks condition at bottom
– Loop Statement executed at least once
Control Structures – Conditional Loop
• for: index style
– Using integer index for loop condition
– While-do in compact form
• for-collection iteration
– Iterates over each element in collection
– No need for index
Control Structures – Iteration
• Break
– Used to exit loop immediately
– Application: searching
• Continue
– Used to skip next process and proceed
to next iteration
– Application: filtering
Control Structures – Loop - Break/Continue
• A program may divided into subprograms, or use existing subprograms
• Each subprogram perform specific tasks
• A program /sub program may call another sub program
– A call to a subprogram may pass data to that subprogram (parameter, argument)
– A call to a subprogram may return an output
• Main Program: program that initiates the main flow of control
• Subprogram types:
– Procedure: performs tasks, do not return an output
– Function: perform tasks and returns an output
• Parameter/argument types:
– Formal parameter: parameter that’s declared for the subprogram
– Actual parameter: actual value that’s passed to the subprogram
• Signature:
– Combination of input parameter types and output/return types
• double sin(double x) : double -> double
• int add(int x, int y) : int, int -> int
• void hello () : () -> void
Subprogram
Data Structures
Engineering Structures
Data Structures
Structure:
• Something arranged in a definite
pattern of organization
• Organization of parts as dominated by
the general character of the whole
• Compound Data type that contains multiple data each with the same type
• Array of T:
– Fixed size/length at allocation
– Static: May not grow
– Access: by index (direct access)
• List of T:
– Zero size at allocation
– Dynamic: may grow (add, remove)
– Access: by index (involves loop)
• Map of <T1,T2>:
– Map from an KEY type to VALUE type
– Example: to associate a Student with his Student Number
– Dynamic/may grow: put, remove
– Access: by key (direct access)
• Set of T:
– Dynamic collection of elements from type T
– Order is not guaranteed
– Each element must be unique in the set
Data Structures - Collection
• Data structures that represents an abstract concept
– Provide abstraction to a concept
– Provide encapsulation (hide internal implementation details)
– Provide specific operations
• Example:
– Stack: a concept that can be “created” from a array or list (the internal
implementation)
– Stack operations:
• void push (Stack s, T elem)
• T pop (Stack s)
• boolean isEmpty(Stack s)
• T getTop(Stack s)
Data Structures – Abstract Data Type
Tanya Jawab
Christian A
Email: coolpie at gmail.com
Q & A
Ad

Recommended

Symmetric ciphermodel
Symmetric ciphermodel
priyapavi96
 
Ppt bubble sort
Ppt bubble sort
prabhakar jalasutram
 
Array data structure
Array data structure
maamir farooq
 
Instruction Set Architecture (ISA)
Instruction Set Architecture (ISA)
Gaditek
 
Merge Sort
Merge Sort
Nikhil Sonkamble
 
Approximation Algorithms
Approximation Algorithms
Nicolas Bettenburg
 
Sorting Algorithms
Sorting Algorithms
Mohammed Hussein
 
asymptotic notation
asymptotic notation
SangeethaSasi1
 
Binary Search - Design & Analysis of Algorithms
Binary Search - Design & Analysis of Algorithms
Drishti Bhalla
 
1 Introduction to C Programming.pptx
1 Introduction to C Programming.pptx
aarockiaabinsAPIICSE
 
THREADED BINARY TREE AND BINARY SEARCH TREE
THREADED BINARY TREE AND BINARY SEARCH TREE
Siddhi Shrivas
 
Binary tree
Binary tree
Vanitha Chandru
 
Mathematical Analysis of Recursive Algorithm.
Mathematical Analysis of Recursive Algorithm.
mohanrathod18
 
Matrix chain multiplication
Matrix chain multiplication
Kiran K
 
Sum of subsets problem by backtracking 
Sum of subsets problem by backtracking 
Hasanain Alshadoodee
 
Design and Analysis of algorithms
Design and Analysis of algorithms
Dr. Rupa Ch
 
Exhaustive Search
Exhaustive Search
Kasun Ranga Wijeweera
 
Top down parsing
Top down parsing
LakshmiSamivel
 
Bfs and Dfs
Bfs and Dfs
Masud Parvaze
 
Apriori Algorithm
Apriori Algorithm
International School of Engineering
 
Greedy Algorithm
Greedy Algorithm
Waqar Akram
 
Stressen's matrix multiplication
Stressen's matrix multiplication
Kumar
 
Algorithms Lecture 1: Introduction to Algorithms
Algorithms Lecture 1: Introduction to Algorithms
Mohamed Loey
 
Dijkstra's algorithm presentation
Dijkstra's algorithm presentation
Subid Biswas
 
Binary tree
Binary tree
Rajendran
 
Divide and Conquer - Part 1
Divide and Conquer - Part 1
Amrinder Arora
 
Graph data structure
Graph data structure
Tech_MX
 
Matlab Script - Loop Control
Matlab Script - Loop Control
Shameer Ahmed Koya
 
2. basic data structures(1)
2. basic data structures(1)
Hongjun Jang
 
Unit2 algorithmic problem_solving
Unit2 algorithmic problem_solving
Capuchino HuiNing
 

More Related Content

What's hot (20)

Binary Search - Design & Analysis of Algorithms
Binary Search - Design & Analysis of Algorithms
Drishti Bhalla
 
1 Introduction to C Programming.pptx
1 Introduction to C Programming.pptx
aarockiaabinsAPIICSE
 
THREADED BINARY TREE AND BINARY SEARCH TREE
THREADED BINARY TREE AND BINARY SEARCH TREE
Siddhi Shrivas
 
Binary tree
Binary tree
Vanitha Chandru
 
Mathematical Analysis of Recursive Algorithm.
Mathematical Analysis of Recursive Algorithm.
mohanrathod18
 
Matrix chain multiplication
Matrix chain multiplication
Kiran K
 
Sum of subsets problem by backtracking 
Sum of subsets problem by backtracking 
Hasanain Alshadoodee
 
Design and Analysis of algorithms
Design and Analysis of algorithms
Dr. Rupa Ch
 
Exhaustive Search
Exhaustive Search
Kasun Ranga Wijeweera
 
Top down parsing
Top down parsing
LakshmiSamivel
 
Bfs and Dfs
Bfs and Dfs
Masud Parvaze
 
Apriori Algorithm
Apriori Algorithm
International School of Engineering
 
Greedy Algorithm
Greedy Algorithm
Waqar Akram
 
Stressen's matrix multiplication
Stressen's matrix multiplication
Kumar
 
Algorithms Lecture 1: Introduction to Algorithms
Algorithms Lecture 1: Introduction to Algorithms
Mohamed Loey
 
Dijkstra's algorithm presentation
Dijkstra's algorithm presentation
Subid Biswas
 
Binary tree
Binary tree
Rajendran
 
Divide and Conquer - Part 1
Divide and Conquer - Part 1
Amrinder Arora
 
Graph data structure
Graph data structure
Tech_MX
 
Matlab Script - Loop Control
Matlab Script - Loop Control
Shameer Ahmed Koya
 
Binary Search - Design & Analysis of Algorithms
Binary Search - Design & Analysis of Algorithms
Drishti Bhalla
 
1 Introduction to C Programming.pptx
1 Introduction to C Programming.pptx
aarockiaabinsAPIICSE
 
THREADED BINARY TREE AND BINARY SEARCH TREE
THREADED BINARY TREE AND BINARY SEARCH TREE
Siddhi Shrivas
 
Mathematical Analysis of Recursive Algorithm.
Mathematical Analysis of Recursive Algorithm.
mohanrathod18
 
Matrix chain multiplication
Matrix chain multiplication
Kiran K
 
Sum of subsets problem by backtracking 
Sum of subsets problem by backtracking 
Hasanain Alshadoodee
 
Design and Analysis of algorithms
Design and Analysis of algorithms
Dr. Rupa Ch
 
Greedy Algorithm
Greedy Algorithm
Waqar Akram
 
Stressen's matrix multiplication
Stressen's matrix multiplication
Kumar
 
Algorithms Lecture 1: Introduction to Algorithms
Algorithms Lecture 1: Introduction to Algorithms
Mohamed Loey
 
Dijkstra's algorithm presentation
Dijkstra's algorithm presentation
Subid Biswas
 
Divide and Conquer - Part 1
Divide and Conquer - Part 1
Amrinder Arora
 
Graph data structure
Graph data structure
Tech_MX
 

Viewers also liked (11)

2. basic data structures(1)
2. basic data structures(1)
Hongjun Jang
 
Unit2 algorithmic problem_solving
Unit2 algorithmic problem_solving
Capuchino HuiNing
 
Introduction to Genetic Algorithms
Introduction to Genetic Algorithms
Ahmed Othman
 
Algorithm and pseudo codes
Algorithm and pseudo codes
hermiraguilar
 
Iterative deepening search
Iterative deepening search
Ashis Kumar Chanda
 
Algorithmsandflowcharts1
Algorithmsandflowcharts1
luhkahreth
 
Intro to-iterative-deepening
Intro to-iterative-deepening
Adel Totott
 
Algorithm Designs - Control Structures
Algorithm Designs - Control Structures
hatredai
 
Algorithms and Flowcharts
Algorithms and Flowcharts
Deva Singh
 
Mobile-First SEO - The Marketers Edition #3XEDigital
Mobile-First SEO - The Marketers Edition #3XEDigital
Aleyda Solís
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
 
2. basic data structures(1)
2. basic data structures(1)
Hongjun Jang
 
Unit2 algorithmic problem_solving
Unit2 algorithmic problem_solving
Capuchino HuiNing
 
Introduction to Genetic Algorithms
Introduction to Genetic Algorithms
Ahmed Othman
 
Algorithm and pseudo codes
Algorithm and pseudo codes
hermiraguilar
 
Algorithmsandflowcharts1
Algorithmsandflowcharts1
luhkahreth
 
Intro to-iterative-deepening
Intro to-iterative-deepening
Adel Totott
 
Algorithm Designs - Control Structures
Algorithm Designs - Control Structures
hatredai
 
Algorithms and Flowcharts
Algorithms and Flowcharts
Deva Singh
 
Mobile-First SEO - The Marketers Edition #3XEDigital
Mobile-First SEO - The Marketers Edition #3XEDigital
Aleyda Solís
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
 
Ad

Similar to Algorithm and Data Structures - Basic of IT Problem Solving (20)

ds 1 Introduction to Data Structures.ppt
ds 1 Introduction to Data Structures.ppt
AlliVinay1
 
Intro_2.ppt
Intro_2.ppt
MumitAhmed1
 
Intro.ppt
Intro.ppt
SharabiNaif
 
Intro.ppt
Intro.ppt
Anonymous9etQKwW
 
1.1 introduction to Data Structures.ppt
1.1 introduction to Data Structures.ppt
Ashok280385
 
Unit I- Data structures Introduction, Evaluation of Algorithms, Arrays, Spars...
Unit I- Data structures Introduction, Evaluation of Algorithms, Arrays, Spars...
DrkhanchanaR
 
Advanced Data Analytics with R Programming.ppt
Advanced Data Analytics with R Programming.ppt
Anshika865276
 
Data structures and algorithms Module-1.pdf
Data structures and algorithms Module-1.pdf
DukeCalvin
 
Algorithms and Data Structures
Algorithms and Data Structures
sonykhan3
 
lecture1-2202211144eeeee24444444413.pptx
lecture1-2202211144eeeee24444444413.pptx
smartashammari
 
lecture1-220221114413Algorithims and data structures.pptx
lecture1-220221114413Algorithims and data structures.pptx
smartashammari
 
Lecture 1 (bce-7)
Lecture 1 (bce-7)
farazahmad005
 
Data structure Unit-I Part A
Data structure Unit-I Part A
SSN College of Engineering, Kalavakkam
 
Introduction to datastructures presentation
Introduction to datastructures presentation
krishkiran2408
 
AN introduction to Software Engineering and Data.pptx
AN introduction to Software Engineering and Data.pptx
Patrick460353
 
Data structure and algorithm using java
Data structure and algorithm using java
Narayan Sau
 
Algorithmic techniques-for-big-data-analysis
Algorithmic techniques-for-big-data-analysis
Atner Yegorov
 
Algorithmic techniques-for-big-data-analysis
Algorithmic techniques-for-big-data-analysis
Hiye Biniam
 
Chapter 1 _edited.pptx.software engineering
Chapter 1 _edited.pptx.software engineering
kuruabeje7
 
Introduction to DS.pptx
Introduction to DS.pptx
OnkarModhave
 
ds 1 Introduction to Data Structures.ppt
ds 1 Introduction to Data Structures.ppt
AlliVinay1
 
1.1 introduction to Data Structures.ppt
1.1 introduction to Data Structures.ppt
Ashok280385
 
Unit I- Data structures Introduction, Evaluation of Algorithms, Arrays, Spars...
Unit I- Data structures Introduction, Evaluation of Algorithms, Arrays, Spars...
DrkhanchanaR
 
Advanced Data Analytics with R Programming.ppt
Advanced Data Analytics with R Programming.ppt
Anshika865276
 
Data structures and algorithms Module-1.pdf
Data structures and algorithms Module-1.pdf
DukeCalvin
 
Algorithms and Data Structures
Algorithms and Data Structures
sonykhan3
 
lecture1-2202211144eeeee24444444413.pptx
lecture1-2202211144eeeee24444444413.pptx
smartashammari
 
lecture1-220221114413Algorithims and data structures.pptx
lecture1-220221114413Algorithims and data structures.pptx
smartashammari
 
Introduction to datastructures presentation
Introduction to datastructures presentation
krishkiran2408
 
AN introduction to Software Engineering and Data.pptx
AN introduction to Software Engineering and Data.pptx
Patrick460353
 
Data structure and algorithm using java
Data structure and algorithm using java
Narayan Sau
 
Algorithmic techniques-for-big-data-analysis
Algorithmic techniques-for-big-data-analysis
Atner Yegorov
 
Algorithmic techniques-for-big-data-analysis
Algorithmic techniques-for-big-data-analysis
Hiye Biniam
 
Chapter 1 _edited.pptx.software engineering
Chapter 1 _edited.pptx.software engineering
kuruabeje7
 
Introduction to DS.pptx
Introduction to DS.pptx
OnkarModhave
 
Ad

Recently uploaded (20)

Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Quantum AI Discoveries: Fractal Patterns Consciousness and Cyclical Universes
Saikat Basu
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 

Algorithm and Data Structures - Basic of IT Problem Solving

  • 1. Algorithm and Data Structures as the basic of IT Problem Solving Christian A – Mei 2014 Training Material
  • 2. • Information Technology Overview – Theoretical – Engineering – Management • Programming Principles • Algorithm • Data Structures • Programming Concepts Topics
  • 3. • Discrete Mathematics – Number Theory – Set Theory, Relation, Function – Combinatorics, Probability – Graph – Logic, Proof Theory • Formal Foundation: – Automata – Turing Machine (model of computation: 1970 – now) • Computer Architecture – Von Neumann Architecture: stored program architecture • Computer Science (birth of : 1937-1970) – Theory of Computation – Branches: • Automata Theory • Computability Theory • Computational Complexity Theory Information Technology - Theoretical
  • 4. • Programming • Software Engineering: – Requirement, Analysis, Design, Implementation • Database • Computer Networks • Computer Security Information Technology - Engineering
  • 5. • Project Management • Enterprise IT Architecture • IT Governance • IT Strategic Planning • R Information Technology - Management
  • 6. “Algorithm + Data Structures = Program” – Nicklaus Wirth (Father of Computer Science), Creator of Pascal Language “Program Cost: Time vs Space” CPU Time vs Memory “Program: Input – Process - Output” Programming Principles
  • 7. • Dynamic aspect of a program • Sequence of steps to solve a problem – Have a problem definition – Have specific input – Operate on specific data structure (problem model) – Produces output • Popular algorithm maybe named for easy communication • Example: • Problem: sorting – Input: array – Data structure: array – Output: array – Algorithm: Bubble Sort, Quick Sort, Merge Sort, etc Algorithm and Data Structure • Static aspect of a program • Representation of a problem (model) • The structure / shape of the data (to be processed) • Is subject to be processed by an algorithm • Common data structures is named • Example: • Array • List • Map • Stack • Queue • Matrix • Graph • etc ALGORITHM DATA STRUCTURE
  • 8. Algorithm and Data Structure - Example • Problem: Find shortest path between a source vertex and destination vertex • Input: – Source vertex – Destination vertex – Weighted graph • Output: – Shortest Path • Algorithm: Dijkstra Algorithm
  • 9. • Pseudocode: a pseudo programming language to describe algorithm that will be understandable by a human reader, facilitates communication • Programming: activity that translates the algorithm in the mind of the programmer into specific Computer Language • Program Source Code: for Computer or Human ? • Human: – Readibility – Understandibility – Clarity – Structure – Focus on the semantic (meaning) • Computer: – Executes binary instructions (bits) – Source code is translated into binary instructions (machine language) – Translation: Focus on the syntactic (what is written) Pseudocode
  • 10. • Variable • Data Type • Operators • Control Structures • Subprogram • Abstract Data Type Programming Concepts - Basic
  • 11. • A location in memory to store a value while a program is in execution • Variable has: – Name (label) – Type (allowed values) – Value • Operation: – Declaration – Initialization – Assignment (Write) – Read Variable
  • 12. • Classify/restrict possible values that can be given to a data (domain values) • Have a specific operations • Have a name • Primitive/Basic Data Types: – Numeric: • Integer: byte, short, int, long • Real/Float: float, double – Boolean – Character • Composite Data Type – Derived from multiple primitive data types – Combines into data structures – Example: • String • Collection: Array of T, List of T, Map of <T1,T2>, Set of T • Struct / Record { T1 f1, T2 f2, …} • Class Data Type
  • 13. • Specific operations on a data type • Arithmetic : Numeric, Numeric -> Numeric • Ex: addition, subtraction, multiplication, division, modulo • Relational: Numeric, Numeric -> Boolean • Ex: less than, less than or equal, greater than, greater than or equal, equal, not equal • Logic : Boolean, Boolean -> Boolean • Ex: not, and, or • String operations: • Ex: concat, substring, index of, length, … Operators
  • 14. • Literal – Written text that represents a value that have a type – Integer literal: 1, 1000, -1 – Float literal: 1.001, -0.2, -2E-03 – Boolean literal: true, false – String literal: “hello”, “Jakarta”, “” • Expression – Combination of values that evaluates to a value – 2+3 – sin(pi) – x – x+3 • Statement – A single program action • Block – Combination of several statement considered as a single statement (block statement) • Recursion – A subprogram activity that calls itself Programming Concepts
  • 15. • Mechanism to controls the flow of the program • Sequence • Conditional • Loop Control Structures
  • 16. • Basic sequential actions flow statement 1; statement 2; statement 3; … Control Structures - Sequence
  • 17. • Conditional / choice / selection of actions based on a boolean condition IF If condition then statement; IF-ELSE if condition then statement 1; else statement 2; Control Structures - Conditional
  • 18. • if-else-if-else …. visually forms a decision tree • Make sure all possibilities have been covered ! Control Structures – Decision Tree
  • 19. • Conditional loop – while-do – do-while / repeat-until • Iteration – Using a counter variable – Over a collection (foreach) • Loop control statement: – Break statement – Continue statement Control Structures – Loop
  • 20. • while-do – Checks condition at top – Loop Statement may /may not execute • do-while – Checks condition at bottom – Loop Statement executed at least once Control Structures – Conditional Loop
  • 21. • for: index style – Using integer index for loop condition – While-do in compact form • for-collection iteration – Iterates over each element in collection – No need for index Control Structures – Iteration
  • 22. • Break – Used to exit loop immediately – Application: searching • Continue – Used to skip next process and proceed to next iteration – Application: filtering Control Structures – Loop - Break/Continue
  • 23. • A program may divided into subprograms, or use existing subprograms • Each subprogram perform specific tasks • A program /sub program may call another sub program – A call to a subprogram may pass data to that subprogram (parameter, argument) – A call to a subprogram may return an output • Main Program: program that initiates the main flow of control • Subprogram types: – Procedure: performs tasks, do not return an output – Function: perform tasks and returns an output • Parameter/argument types: – Formal parameter: parameter that’s declared for the subprogram – Actual parameter: actual value that’s passed to the subprogram • Signature: – Combination of input parameter types and output/return types • double sin(double x) : double -> double • int add(int x, int y) : int, int -> int • void hello () : () -> void Subprogram
  • 24. Data Structures Engineering Structures Data Structures Structure: • Something arranged in a definite pattern of organization • Organization of parts as dominated by the general character of the whole
  • 25. • Compound Data type that contains multiple data each with the same type • Array of T: – Fixed size/length at allocation – Static: May not grow – Access: by index (direct access) • List of T: – Zero size at allocation – Dynamic: may grow (add, remove) – Access: by index (involves loop) • Map of <T1,T2>: – Map from an KEY type to VALUE type – Example: to associate a Student with his Student Number – Dynamic/may grow: put, remove – Access: by key (direct access) • Set of T: – Dynamic collection of elements from type T – Order is not guaranteed – Each element must be unique in the set Data Structures - Collection
  • 26. • Data structures that represents an abstract concept – Provide abstraction to a concept – Provide encapsulation (hide internal implementation details) – Provide specific operations • Example: – Stack: a concept that can be “created” from a array or list (the internal implementation) – Stack operations: • void push (Stack s, T elem) • T pop (Stack s) • boolean isEmpty(Stack s) • T getTop(Stack s) Data Structures – Abstract Data Type
  • 27. Tanya Jawab Christian A Email: coolpie at gmail.com Q & A