dsa-2012-lect00

97
Welcome Dr.Haitham A. El-Ghareeb Information Systems Department Faculty of Computers and Information Sciences Mansoura University [email protected] September 16, 2012 Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 1 / 47

Upload: faculty-of-comuter-and-information-sciences-mansoura-university

Post on 07-Nov-2014

7.311 views

Category:

Education


0 download

DESCRIPTION

Data Structures and Algorithms - Lecture 0 - First Lecture - Introduction

TRANSCRIPT

Page 1: DSA-2012-Lect00

Welcome

Dr.Haitham A. El-Ghareeb

Information Systems DepartmentFaculty of Computers and Information Sciences

Mansoura University

[email protected]

September 16, 2012

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 1 / 47

Page 2: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Olympic Flame during the OpeningCeremony of the 2004 Summer Olympics,

held in Athens.

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 2 / 47

Page 3: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Olympic Flame during the OpeningCeremony of the 2004 Summer Olympics,

held in Athens.

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 2 / 47

Page 4: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 3 / 47

Page 5: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 4 / 47

Page 6: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

First-ever photograph of the ”unseen side” of Mercury

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 5 / 47

Page 7: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

First-ever photograph of the ”unseen side” of Mercury

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 5 / 47

Page 8: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 6 / 47

Page 9: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 7 / 47

Page 10: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 8 / 47

Page 11: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

http://www.helghareeb.net/publications/journals

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 9 / 47

Page 12: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 10 / 47

Page 13: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 11 / 47

Page 14: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 12 / 47

Page 15: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 13 / 47

Page 16: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 14 / 47

Page 17: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 15 / 47

Page 18: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 16 / 47

Page 19: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

@helghareebhttps://twitter.com/helghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 17 / 47

Page 20: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 18 / 47

Page 21: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

https://plus.google.com/u/0/110986963706567841321

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 19 / 47

Page 22: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 20 / 47

Page 23: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 21 / 47

Page 24: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 22 / 47

Page 25: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 23 / 47

Page 26: DSA-2012-Lect00

Topics Include

Why Data Structures?

Design of Effective and Efficient Data Structures and Algorithms

Advanced Data Structures and Algorithm Design Paradigms

Algorithm Analysis Techniques Intractability

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 24 / 47

Page 27: DSA-2012-Lect00

Topics Include

Why Data Structures?

Design of Effective and Efficient Data Structures and Algorithms

Advanced Data Structures and Algorithm Design Paradigms

Algorithm Analysis Techniques Intractability

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 24 / 47

Page 28: DSA-2012-Lect00

Topics Include

Why Data Structures?

Design of Effective and Efficient Data Structures and Algorithms

Advanced Data Structures and Algorithm Design Paradigms

Algorithm Analysis Techniques Intractability

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 24 / 47

Page 29: DSA-2012-Lect00

Topics Include

Why Data Structures?

Design of Effective and Efficient Data Structures and Algorithms

Advanced Data Structures and Algorithm Design Paradigms

Algorithm Analysis Techniques Intractability

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 24 / 47

Page 30: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 25 / 47

Page 31: DSA-2012-Lect00

Course Importance

Course gives the student greater experience in:

Program design in a language-independent setting

Discusses pragmatic and mathematical aspects of program efficiency

Algorithm Design Examination of data structures, abstract data, andalgorithm design intended to develop knowledge and programmingskills byond an introductory level

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 26 / 47

Page 32: DSA-2012-Lect00

Course Importance

Course gives the student greater experience in:

Program design in a language-independent setting

Discusses pragmatic and mathematical aspects of program efficiency

Algorithm Design Examination of data structures, abstract data, andalgorithm design intended to develop knowledge and programmingskills byond an introductory level

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 26 / 47

Page 33: DSA-2012-Lect00

Course Importance

Course gives the student greater experience in:

Program design in a language-independent setting

Discusses pragmatic and mathematical aspects of program efficiency

Algorithm Design Examination of data structures, abstract data, andalgorithm design intended to develop knowledge and programmingskills byond an introductory level

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 26 / 47

Page 34: DSA-2012-Lect00

Course Importance

Course gives the student greater experience in:

Program design in a language-independent setting

Discusses pragmatic and mathematical aspects of program efficiency

Algorithm Design Examination of data structures, abstract data, andalgorithm design intended to develop knowledge and programmingskills byond an introductory level

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 26 / 47

Page 35: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 27 / 47

Page 36: DSA-2012-Lect00

Topics in Detail:

Algorithm and Data Structure Design

Abstract Data Types

Queues

Stacks

Lists

Trees and Graphs

Sorting and Searching

Motivation and Introduction of Analysis for Algorithm Complexity

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47

Page 37: DSA-2012-Lect00

Topics in Detail:

Algorithm and Data Structure Design

Abstract Data Types

Queues

Stacks

Lists

Trees and Graphs

Sorting and Searching

Motivation and Introduction of Analysis for Algorithm Complexity

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47

Page 38: DSA-2012-Lect00

Topics in Detail:

Algorithm and Data Structure Design

Abstract Data Types

Queues

Stacks

Lists

Trees and Graphs

Sorting and Searching

Motivation and Introduction of Analysis for Algorithm Complexity

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47

Page 39: DSA-2012-Lect00

Topics in Detail:

Algorithm and Data Structure Design

Abstract Data Types

Queues

Stacks

Lists

Trees and Graphs

Sorting and Searching

Motivation and Introduction of Analysis for Algorithm Complexity

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47

Page 40: DSA-2012-Lect00

Topics in Detail:

Algorithm and Data Structure Design

Abstract Data Types

Queues

Stacks

Lists

Trees and Graphs

Sorting and Searching

Motivation and Introduction of Analysis for Algorithm Complexity

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47

Page 41: DSA-2012-Lect00

Topics in Detail:

Algorithm and Data Structure Design

Abstract Data Types

Queues

Stacks

Lists

Trees and Graphs

Sorting and Searching

Motivation and Introduction of Analysis for Algorithm Complexity

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47

Page 42: DSA-2012-Lect00

Topics in Detail:

Algorithm and Data Structure Design

Abstract Data Types

Queues

Stacks

Lists

Trees and Graphs

Sorting and Searching

Motivation and Introduction of Analysis for Algorithm Complexity

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47

Page 43: DSA-2012-Lect00

Topics in Detail:

Algorithm and Data Structure Design

Abstract Data Types

Queues

Stacks

Lists

Trees and Graphs

Sorting and Searching

Motivation and Introduction of Analysis for Algorithm Complexity

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47

Page 44: DSA-2012-Lect00

Topics in Detail:

Algorithm and Data Structure Design

Abstract Data Types

Queues

Stacks

Lists

Trees and Graphs

Sorting and Searching

Motivation and Introduction of Analysis for Algorithm Complexity

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 28 / 47

Page 45: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 29 / 47

Page 46: DSA-2012-Lect00

Grades

100 Marks - Grouped as follows:

Mid-Term Exam: 10 Marks

Labs: 10 Marks

Attendance: 5 Marks

Report: 5 Marks

Oral: 10 Marks

Project (Bonus): 10 Marks

Final Exam: 60 Marks

Total: 100 Marks

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47

Page 47: DSA-2012-Lect00

Grades

100 Marks - Grouped as follows:

Mid-Term Exam: 10 Marks

Labs: 10 Marks

Attendance: 5 Marks

Report: 5 Marks

Oral: 10 Marks

Project (Bonus): 10 Marks

Final Exam: 60 Marks

Total: 100 Marks

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47

Page 48: DSA-2012-Lect00

Grades

100 Marks - Grouped as follows:

Mid-Term Exam: 10 Marks

Labs: 10 Marks

Attendance: 5 Marks

Report: 5 Marks

Oral: 10 Marks

Project (Bonus): 10 Marks

Final Exam: 60 Marks

Total: 100 Marks

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47

Page 49: DSA-2012-Lect00

Grades

100 Marks - Grouped as follows:

Mid-Term Exam: 10 Marks

Labs: 10 Marks

Attendance: 5 Marks

Report: 5 Marks

Oral: 10 Marks

Project (Bonus): 10 Marks

Final Exam: 60 Marks

Total: 100 Marks

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47

Page 50: DSA-2012-Lect00

Grades

100 Marks - Grouped as follows:

Mid-Term Exam: 10 Marks

Labs: 10 Marks

Attendance: 5 Marks

Report: 5 Marks

Oral: 10 Marks

Project (Bonus): 10 Marks

Final Exam: 60 Marks

Total: 100 Marks

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47

Page 51: DSA-2012-Lect00

Grades

100 Marks - Grouped as follows:

Mid-Term Exam: 10 Marks

Labs: 10 Marks

Attendance: 5 Marks

Report: 5 Marks

Oral: 10 Marks

Project (Bonus): 10 Marks

Final Exam: 60 Marks

Total: 100 Marks

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47

Page 52: DSA-2012-Lect00

Grades

100 Marks - Grouped as follows:

Mid-Term Exam: 10 Marks

Labs: 10 Marks

Attendance: 5 Marks

Report: 5 Marks

Oral: 10 Marks

Project (Bonus): 10 Marks

Final Exam: 60 Marks

Total: 100 Marks

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47

Page 53: DSA-2012-Lect00

Grades

100 Marks - Grouped as follows:

Mid-Term Exam: 10 Marks

Labs: 10 Marks

Attendance: 5 Marks

Report: 5 Marks

Oral: 10 Marks

Project (Bonus): 10 Marks

Final Exam: 60 Marks

Total: 100 Marks

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47

Page 54: DSA-2012-Lect00

Grades

100 Marks - Grouped as follows:

Mid-Term Exam: 10 Marks

Labs: 10 Marks

Attendance: 5 Marks

Report: 5 Marks

Oral: 10 Marks

Project (Bonus): 10 Marks

Final Exam: 60 Marks

Total: 100 Marks

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 30 / 47

Page 55: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 31 / 47

Page 56: DSA-2012-Lect00

Report

Write a Report on ”Data Structures and Algorithms” Covering:

Why we need Data Structures

Different Data Structures, Why we need them

Advantages of ”Python / C# / Java” as a Programming Language

How we can use ”Python” ”C#” ”Java” in implementing ”DataStructures and Algorithms”

Limits of Computer Resources

Why Computer Algorithms are Important

Different Programming problems that can be solved by Algorithms

Examples of ”Python / C# / Java based Solutions” for different”Computer Algorithms” challenges

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47

Page 57: DSA-2012-Lect00

Report

Write a Report on ”Data Structures and Algorithms” Covering:

Why we need Data Structures

Different Data Structures, Why we need them

Advantages of ”Python / C# / Java” as a Programming Language

How we can use ”Python” ”C#” ”Java” in implementing ”DataStructures and Algorithms”

Limits of Computer Resources

Why Computer Algorithms are Important

Different Programming problems that can be solved by Algorithms

Examples of ”Python / C# / Java based Solutions” for different”Computer Algorithms” challenges

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47

Page 58: DSA-2012-Lect00

Report

Write a Report on ”Data Structures and Algorithms” Covering:

Why we need Data Structures

Different Data Structures, Why we need them

Advantages of ”Python / C# / Java” as a Programming Language

How we can use ”Python” ”C#” ”Java” in implementing ”DataStructures and Algorithms”

Limits of Computer Resources

Why Computer Algorithms are Important

Different Programming problems that can be solved by Algorithms

Examples of ”Python / C# / Java based Solutions” for different”Computer Algorithms” challenges

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47

Page 59: DSA-2012-Lect00

Report

Write a Report on ”Data Structures and Algorithms” Covering:

Why we need Data Structures

Different Data Structures, Why we need them

Advantages of ”Python / C# / Java” as a Programming Language

How we can use ”Python” ”C#” ”Java” in implementing ”DataStructures and Algorithms”

Limits of Computer Resources

Why Computer Algorithms are Important

Different Programming problems that can be solved by Algorithms

Examples of ”Python / C# / Java based Solutions” for different”Computer Algorithms” challenges

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47

Page 60: DSA-2012-Lect00

Report

Write a Report on ”Data Structures and Algorithms” Covering:

Why we need Data Structures

Different Data Structures, Why we need them

Advantages of ”Python / C# / Java” as a Programming Language

How we can use ”Python” ”C#” ”Java” in implementing ”DataStructures and Algorithms”

Limits of Computer Resources

Why Computer Algorithms are Important

Different Programming problems that can be solved by Algorithms

Examples of ”Python / C# / Java based Solutions” for different”Computer Algorithms” challenges

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47

Page 61: DSA-2012-Lect00

Report

Write a Report on ”Data Structures and Algorithms” Covering:

Why we need Data Structures

Different Data Structures, Why we need them

Advantages of ”Python / C# / Java” as a Programming Language

How we can use ”Python” ”C#” ”Java” in implementing ”DataStructures and Algorithms”

Limits of Computer Resources

Why Computer Algorithms are Important

Different Programming problems that can be solved by Algorithms

Examples of ”Python / C# / Java based Solutions” for different”Computer Algorithms” challenges

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47

Page 62: DSA-2012-Lect00

Report

Write a Report on ”Data Structures and Algorithms” Covering:

Why we need Data Structures

Different Data Structures, Why we need them

Advantages of ”Python / C# / Java” as a Programming Language

How we can use ”Python” ”C#” ”Java” in implementing ”DataStructures and Algorithms”

Limits of Computer Resources

Why Computer Algorithms are Important

Different Programming problems that can be solved by Algorithms

Examples of ”Python / C# / Java based Solutions” for different”Computer Algorithms” challenges

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47

Page 63: DSA-2012-Lect00

Report

Write a Report on ”Data Structures and Algorithms” Covering:

Why we need Data Structures

Different Data Structures, Why we need them

Advantages of ”Python / C# / Java” as a Programming Language

How we can use ”Python” ”C#” ”Java” in implementing ”DataStructures and Algorithms”

Limits of Computer Resources

Why Computer Algorithms are Important

Different Programming problems that can be solved by Algorithms

Examples of ”Python / C# / Java based Solutions” for different”Computer Algorithms” challenges

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47

Page 64: DSA-2012-Lect00

Report

Write a Report on ”Data Structures and Algorithms” Covering:

Why we need Data Structures

Different Data Structures, Why we need them

Advantages of ”Python / C# / Java” as a Programming Language

How we can use ”Python” ”C#” ”Java” in implementing ”DataStructures and Algorithms”

Limits of Computer Resources

Why Computer Algorithms are Important

Different Programming problems that can be solved by Algorithms

Examples of ”Python / C# / Java based Solutions” for different”Computer Algorithms” challenges

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 32 / 47

Page 65: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 33 / 47

Page 66: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 34 / 47

Page 67: DSA-2012-Lect00

Project

Bonus

Working Project must be delivered at the end of the subject. Projectentitles how we used Data Structures and Algorithms to solve one or moreof the challenging problems ”8 Queen Problem, Sorting, etc.”

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 35 / 47

Page 68: DSA-2012-Lect00

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 36 / 47

Page 69: DSA-2012-Lect00

What Programming Language Shall I Learn?

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 37 / 47

Page 70: DSA-2012-Lect00

I don’t like Programming!

Network Engineer

Web Designer ’Front End Engineer’

Graphic Designer ’2D, 3D’

System Administrator

Software Testing

Quality Assurance Team

etc...

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 38 / 47

Page 71: DSA-2012-Lect00

Peter Norvig

1996-1998: Junglee Corp.I Chief Scientist

1994-1996: Harlequin, Inc.I Chief Designer

1991-1994: Sun Microsystems LabsI Senior Scientist

1986-1991: University of California, BerkeleyI Research Faculty Member

1985-1986: University of Southern CaliforniaI Assistant Professor

1978-1980: Higher Order Software, Inc.I Member of Technical Staff

1977-1977: Woods Hole Oceanographic InstituteI Summer Programming Intern

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 39 / 47

Page 72: DSA-2012-Lect00

Teach Yourself Programming in Ten Years

Peter Norvig

2001-now: GoogleI Director of Research (2006-now);I formerly Director of Search Quality (2002-2006)I and Machine Learning (2001)

1998-2001: NASA Ames Research CenterI Division Chief, Computational Sciences

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 40 / 47

Page 73: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.I Include one language that supports class abstractions (like Java or

C++),I one that supports functional abstraction (like Lisp or ML),I one that supports syntactic abstraction (like Lisp),I one that supports declarative specifications (like Prolog or C++

templates),I one that supports coroutines (like Icon or Scheme),I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 74: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.I Include one language that supports class abstractions (like Java or

C++),I one that supports functional abstraction (like Lisp or ML),I one that supports syntactic abstraction (like Lisp),I one that supports declarative specifications (like Prolog or C++

templates),I one that supports coroutines (like Icon or Scheme),I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 75: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.I Include one language that supports class abstractions (like Java or

C++),I one that supports functional abstraction (like Lisp or ML),I one that supports syntactic abstraction (like Lisp),I one that supports declarative specifications (like Prolog or C++

templates),I one that supports coroutines (like Icon or Scheme),I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 76: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.I Include one language that supports class abstractions (like Java or

C++),I one that supports functional abstraction (like Lisp or ML),I one that supports syntactic abstraction (like Lisp),I one that supports declarative specifications (like Prolog or C++

templates),I one that supports coroutines (like Icon or Scheme),I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 77: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.I Include one language that supports class abstractions (like Java or

C++),I one that supports functional abstraction (like Lisp or ML),I one that supports syntactic abstraction (like Lisp),I one that supports declarative specifications (like Prolog or C++

templates),I one that supports coroutines (like Icon or Scheme),I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 78: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.

I Include one language that supports class abstractions (like Java orC++),

I one that supports functional abstraction (like Lisp or ML),I one that supports syntactic abstraction (like Lisp),I one that supports declarative specifications (like Prolog or C++

templates),I one that supports coroutines (like Icon or Scheme),I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 79: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.I Include one language that supports class abstractions (like Java or

C++),

I one that supports functional abstraction (like Lisp or ML),I one that supports syntactic abstraction (like Lisp),I one that supports declarative specifications (like Prolog or C++

templates),I one that supports coroutines (like Icon or Scheme),I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 80: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.I Include one language that supports class abstractions (like Java or

C++),I one that supports functional abstraction (like Lisp or ML),

I one that supports syntactic abstraction (like Lisp),I one that supports declarative specifications (like Prolog or C++

templates),I one that supports coroutines (like Icon or Scheme),I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 81: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.I Include one language that supports class abstractions (like Java or

C++),I one that supports functional abstraction (like Lisp or ML),I one that supports syntactic abstraction (like Lisp),

I one that supports declarative specifications (like Prolog or C++templates),

I one that supports coroutines (like Icon or Scheme),I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 82: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.I Include one language that supports class abstractions (like Java or

C++),I one that supports functional abstraction (like Lisp or ML),I one that supports syntactic abstraction (like Lisp),I one that supports declarative specifications (like Prolog or C++

templates),

I one that supports coroutines (like Icon or Scheme),I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 83: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.I Include one language that supports class abstractions (like Java or

C++),I one that supports functional abstraction (like Lisp or ML),I one that supports syntactic abstraction (like Lisp),I one that supports declarative specifications (like Prolog or C++

templates),I one that supports coroutines (like Icon or Scheme),

I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 84: DSA-2012-Lect00

Recipe

Get interested in programming, and do some because it is fun.

Program. The best kind of learning is learning by doing.

Talk with other programmers; read other programs.

Work on projects with other programmers. Be the best programmeron some projects; be the worst on some others.

Learn at least a half dozen programming languages.I Include one language that supports class abstractions (like Java or

C++),I one that supports functional abstraction (like Lisp or ML),I one that supports syntactic abstraction (like Lisp),I one that supports declarative specifications (like Prolog or C++

templates),I one that supports coroutines (like Icon or Scheme),I and one that supports parallelism (like Sisal).

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 41 / 47

Page 85: DSA-2012-Lect00

Recipe

Remember that there is a ”computer” in ”computer science”.I Know how long it takes your computer to execute an instruction,I fetch a word from memory (with and without a cache miss),I read consecutive words from disk,I and seek to a new location on disk.

Get involved in a language standardization effort. It could be theANSI C++ committee, or it could be deciding if your local codingstyle will have 2 or 4 space indentation levels.

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47

Page 86: DSA-2012-Lect00

Recipe

Remember that there is a ”computer” in ”computer science”.

I Know how long it takes your computer to execute an instruction,I fetch a word from memory (with and without a cache miss),I read consecutive words from disk,I and seek to a new location on disk.

Get involved in a language standardization effort. It could be theANSI C++ committee, or it could be deciding if your local codingstyle will have 2 or 4 space indentation levels.

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47

Page 87: DSA-2012-Lect00

Recipe

Remember that there is a ”computer” in ”computer science”.I Know how long it takes your computer to execute an instruction,

I fetch a word from memory (with and without a cache miss),I read consecutive words from disk,I and seek to a new location on disk.

Get involved in a language standardization effort. It could be theANSI C++ committee, or it could be deciding if your local codingstyle will have 2 or 4 space indentation levels.

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47

Page 88: DSA-2012-Lect00

Recipe

Remember that there is a ”computer” in ”computer science”.I Know how long it takes your computer to execute an instruction,I fetch a word from memory (with and without a cache miss),

I read consecutive words from disk,I and seek to a new location on disk.

Get involved in a language standardization effort. It could be theANSI C++ committee, or it could be deciding if your local codingstyle will have 2 or 4 space indentation levels.

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47

Page 89: DSA-2012-Lect00

Recipe

Remember that there is a ”computer” in ”computer science”.I Know how long it takes your computer to execute an instruction,I fetch a word from memory (with and without a cache miss),I read consecutive words from disk,

I and seek to a new location on disk.

Get involved in a language standardization effort. It could be theANSI C++ committee, or it could be deciding if your local codingstyle will have 2 or 4 space indentation levels.

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47

Page 90: DSA-2012-Lect00

Recipe

Remember that there is a ”computer” in ”computer science”.I Know how long it takes your computer to execute an instruction,I fetch a word from memory (with and without a cache miss),I read consecutive words from disk,I and seek to a new location on disk.

Get involved in a language standardization effort. It could be theANSI C++ committee, or it could be deciding if your local codingstyle will have 2 or 4 space indentation levels.

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47

Page 91: DSA-2012-Lect00

Recipe

Remember that there is a ”computer” in ”computer science”.I Know how long it takes your computer to execute an instruction,I fetch a word from memory (with and without a cache miss),I read consecutive words from disk,I and seek to a new location on disk.

Get involved in a language standardization effort. It could be theANSI C++ committee, or it could be deciding if your local codingstyle will have 2 or 4 space indentation levels.

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 42 / 47

Page 92: DSA-2012-Lect00

Course Resources

Course Page: http://courses.helghareeb.net/2012-2013/dsaI You will find: Updated Slides, Important Announcements, etc.

Course G+ Page:https://plus.google.com/u/1/b/108828963463022379521/108828963463022379521/posts

I You can post questions, start discussions, share material, etc.

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 43 / 47

Page 93: DSA-2012-Lect00

Text Book

Lecture Notes will be available soon inchallah

Related Links and Further Readings are posted on Web site

Fresh items are posted on G+

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 44 / 47

Page 94: DSA-2012-Lect00

Teaching Assistants

Osama Abu Al-Nasr

Mohamed Al-Hossini

Eslam Reda

Shahenda Al-Kholi

Mohamed Abd-Raboh

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 45 / 47

Page 95: DSA-2012-Lect00

Labs

Visual Studio .Net

.Net Framework

C#

Iron Python

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 46 / 47

Page 96: DSA-2012-Lect00

Finally

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 47 / 47

Page 97: DSA-2012-Lect00

Finally

Dr.Haitham A. El-Ghareeb (CIS) Data Structures and Algorithms - 2012 September 16, 2012 48 / 47