cis-305: data structures fall 2008 1. organizational details class meeting: 4 :00-6:45pm, tuesday,...

23
CIS-305: Data Structures Fall 2008 1

Upload: gervais-maxwell

Post on 11-Jan-2016

227 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

CIS-305: Data Structures

Fall 2008

1

Page 2: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Organizational DetailsClass Meeting: 4:00-6:45pm, Tuesday, Room SCIT215

Instructor: Dr. Igor Aizenberg

Office: Science and Technology Building, 115Phone (903 334 6654)e-mail: [email protected]

Office hours:Wednesday, Thursday, Friday 12-30 – 2-00 pmMonday: by appointment

Class Web Page: http://www.eagle.tamut.edu/faculty/igor/CIS-305.htm

2

Page 3: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Dr. Igor Aizenberg: self-introduction

• MS in Mathematics from Uzhgorod National University (Ukraine), 1982

• PhD in Computer Science from the Russian Academy of Sciences, Moscow (Russia), 1986

• Areas of research: Artificial Neural Networks, Image Processing and Pattern Recognition

• About 100 journal and conference proceedings publications and one monograph book

• Job experience: Russian Academy of Sciences (1982-1990); Uzhgorod National University (Ukraine,1990-1996 and 1998-1999); Catholic University of Leuven (Belgium, 1996-1998); Company “Neural Networks Technologies” (Israel, 1999-2002); University of Dortmund (Germany, 2003-2005); National Center of Advanced Industrial Science and Technologies (Japan, 2004); Tampere University of Technology (Finland, 2005-2006); Texas A&M University-Texarkana, from March, 2006

3

Page 4: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Text Book

"Data Structures" by Richard F. Gilberg & Behrouz A. Forouzan, 2nd Edn., Thomson Course Technology, 2006, ISBN 13: 978-0-534-39080-8; ISBN-10: 0-534-39080-3.

4

Page 5: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Control

Exams (open book, open notes):

Midterm 1: October 7, 2007

Midterm 2: November 4, 2007

Final Exam: December 9, 2007

Homework

5

Page 6: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Grading

Grading MethodHomework and preparation: 10%Midterm Exam 1: 25%Midterm Exam 2: 30%Final Exam: 35%

Grading Scale: 90%+ A 80%+ B 70%+ C 60%+ D less than 60% F

6

Page 7: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

What we will study?

• Algorithms and their implementation

• The abstract data type

• Recursion

• Stacks and Queues

• Linear lists

• Trees

• Binary Search Trees

• Heaps 7

Page 8: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

What we have to consider before we will start to study?

• What is the Computer Science?

• Why we need to study data structures?

• A place of data structures within the Computer Science.

8

Page 9: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Computer Science and Data Structures

• Organization of data processing and methods of data processing are a subject of Computer Science.

• A Data Structure is a collection of data organized in some logical pre-defined way.

• Studying Computer Science you will study different methods of data processing.

• Where is the initial point of this branch of science?

9

Page 10: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Historical Overview

“Zero Generation”: Mechanical Computers (1642-1945)

Blez Pascal (1623-1662), 1642, the first mechanical computer for addition and subtraction

10

Page 11: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Historical Overview

“Zero Generation”: Mechanical Computers (1642-1945)

Gottfried Wilhelm von Leibniz (1646-1716), 1672, the first mechanical computer for addition, subtraction, multiplication and division

11

Page 12: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Historical Overview

“Zero Generation”: Mechanical Computers (1642-1945)

Charls Babbige (1792-1871), 1834

Henry Babbige, 1888

“The Analytical Machine” – the first programmable computer

12

Page 13: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Historical Overview“Zero Generation”: Mechanical Computers (1642-1945)

Ada Augusta Lovelase (1815-1852), 1843

The first programmer in the world, developed the first programming language in the world and the first software for the Babbige’s computer

13

Page 14: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Historical Overview

Input and Control Device

512 Bytes Memory

The 1st generation electronic computers (1945-1953)

14

Page 15: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Cybernetics

• Cybernetics is the study of communication and control, typically involving regulatory feedback, in living organisms, in machines and organisations and their combinations, for example, in sociotechnical systems, computer controlled machines such as automata and robots.

15

Page 16: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Cybernetics

Norbert Wiener (1894-1964) is a founder of Cybernetics (1948).

He coined the term "cybernetics" in his book “Cybernetics or Control and Communication in the Animal and the Machine” (MIT Press, 1948), widely recognized as one of the most important books of contemporary scientific thinking.

16

Page 17: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Data processing

• Control and feedback in any computer controlled system (including a computer itself) are reduced to analysis and transmission of different data.

• To analyze the corresponding data, those methods that can be presented in mathematical and logical description are used.

• Organization of data processing and methods of data processing are a subject of Computer Science.

17

Page 18: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Algorithm

• An algorithm is a finite set of well-defined instructions for accomplishing some task which, given an initial state, will terminate in a defined end-state.

• To develop any algorithm, it is necessary to know, how the corresponding task can be solved.

18

Page 19: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Types of Algorithms

• Linear algorithm consists of a sequence of unconditional straightforward steps.

• Loop is a group of steps that are repeated until some condition will not be satisfied.

• Nested Loop is a loop containing another loop (loops).

• Branching algorithm consists of a number of subsequences that can be taken depending on some condition (conditions).

19

Page 20: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Algorithm

• In Computer Science and Engineering flowcharts are often used to graphically represent algorithms.

20

Page 21: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Algorithms and Programming Languages

• To utilize any algorithm using a computer, we have to develop a program using a programming language.

• Low-level language (assembly language) is a language of machine instructions.

• High-level language is a language, which is closer to our natural language.

• A program is implementation of the algorithm in a form acceptable for a computer.

21

Page 22: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Data Structures

• Any computer program serves some kind of data processing.

• Even those programs that do not compute anything (for instance, a program that copying a file from one location to another one) operate with some data.

• To access these data and to collect the resulting data, it is necessary to organize them in some reasonable structures.

22

Page 23: CIS-305: Data Structures Fall 2008 1. Organizational Details Class Meeting: 4 :00-6:45pm, Tuesday, Room SCIT215 Instructor: Dr. Igor Aizenberg Office:

Data Structures

• The simplest data structures are: a simple variable and a constant.

• Other data structures are: arrays, records, lists, trees, stacks, queues, etc..

• Data structures are organized similarly in all the programming languages.

• The latter means that data structures can be studied independently of a particular programming language.

• Knowing data structures, it is easier to learn different programming languages.

23