instructor information: dr. radwa el shawi room:2.501.29...
TRANSCRIPT
Instructor Information:
Dr. Radwa El ShawiRoom:2.501.29 Email:[email protected]
Week # 1: Overview & Review
Be familiar with problem solving Be familiar with basic techniques of
algorithm analysis. Be familiar with the concept of recursion. Master the implementation of linked data
structures such as linked lists, stacks, and queues.
Be familiar with advanced data structures such as balanced search trees, graphs and hash tables.
Master analyzing problems and writing program solutions to problems using the above techniques
Be able to select appropriate data structures and algorithms for given problems
Introduction to data structures Arrays Recursion Linked Lists Stacks and queues Trees Graphs Hash tables
Textbook: Data Structures & Algorithms in JAVA (6th Edition), by M. Goodrich, R. Tamassia and M. Goldwasser , John Wiley & Sons, inc., 2014.
Lecture hand-outs Lab notes and excersise
Course Assessment Tools Percent
Mid term 1 20%
Mid term 2 15%
Lab assignments, quizzes and participation
10%
Project 15%
Final 40%
Data A collection of facts from which conclusion may be drawn e.g. Data: Temperature 35°C; Conclusion: It is hot.
Types of data Textual: For example, your name (Nourah) Numeric: For example, your ID (090254) Audio: For example, your voice Video: For example, your voice and picture (...)
A particular way of storing and organizing data in a computer so that it can be used efficiently and effectively.
Data structure is the logical or mathematical model of a particular organization of data.
A group of data elements grouped together under one name. For example, an array of integers
There are many, but we named a few. We’ll learn these data structures in details through this term!
Array
Linked List
Tree Queue Stack
Types of data structuresTypes of data structures
Goal: to organize data
Criteria: to facilitate efficient storage of data retrieval of data manipulation of data
Design Issue: select and design appropriate data types
(This is the main motivation to learn and understand data structures)
Traversing Accessing each data element exactly once so that certain items
in the data may be processed Searching
Finding the location of the data element (key) in the structure Insertion
Adding a new data element to the structure
Deletion Removing a data element from the structure
Sorting Arrange the data elements in a logical order
(ascending/descending) Merging
Combining data elements from two or more data structures into one
A finite set of instructions which accomplish a particular task
A method or process to solve a problem Transforms input of a problem to output
Algorithm = Input + Process + Output
Algorithm development is an art – it needs practice, practice and only practice!
It must be correct It must be finite (in terms of time and size) It must terminate It must be unambiguous
Which step is next? It must be space and time efficient
A program is an instance of an algorithm, written in some specific programming language
Problem: Find maximum of a, b, c Algorithm
Input = a, b, c Output = max Process
o Let max = ao If b > max then
max = bo If c > max then
max = co Display max
Order is very important!!!
Clearly identify: what output is required? what is the input? What steps are required to transform input into output
o The most crucial bito Needs problem solving skillso A problem can be solved in many different wayso Which solution, amongst the different possible solutions is optimal?
Example 1: Determining even/odd number A number divisible by 2 is considered an even number, while a
number which is not divisible by 2 is considered an odd number. Write pseudo-code to display first N odd/even numbers.
Example 2: Computing Weekly Wages Gross pay depends on the pay rate and the number of hours
worked per week. However, if you work more than 40 hours, you get paid time-and-a-half for all hours worked over 40. Write the pseudo-code to compute gross pay given pay rate and hours worked
Input rangefor num←0; num<=range; num←num+1 doif num % 2 = 0 then
print num is evenelse
print num is oddendif
endfor
Input hours_worked, pay_rateif hours_worked <= 40 thengross_pay ← pay_rate x hours_worked
elsebasic_pay ← pay_rate x 40
over_time ← hours_worked – 40 over_time_pay ← 1.5 x pay_rate x over_timegross_pay ← basic_pay + over_time_pay
endforprint gross_pay