CIS-305: Data Structures

blessinghomoeopathAI and Robotics

Nov 30, 2013 (3 years and 11 months ago)

84 views

CIS
-
305: Data Structures



Fall 2008


1

Organizational Details

Class Meeting:


4
:00
-
6:45pm, Tuesday, Room SCIT215




Instructor: Dr. Igor Aizenberg


Office: Science and Technology Building, 115

Phone (903 334 6654)

e
-
mail: igor.aizenberg@tamut.edu


Office hours:

Wednesday, Thursday, Friday 12
-
30


2
-
00 pm

Monday: by appointment


Class Web Page
:

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


2

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

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

Control


Exams (
open book, open notes
):

Midterm 1:

October 7, 2007


Midterm 2:

November 4, 2007


Final Exam:

December 9, 2007



Homework

5

Grading

Grading Method

Homework 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

What we will study?


Algorithms and their implementation


The abstract data type


Recursion


Stacks and Queues


Linear lists


Trees


Binary Search Trees


Heaps


7

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

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

Historical Overview

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

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

10

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

Historical Overview

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

Charls Babbige
(1792
-
1871), 1834

Henry Babbige
, 1888


The Analytical Machine




the first programmable
computer

12

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

Historical Overview

Input and Control
Device

512 Bytes Memory

The 1
st

generation electronic computers (1945
-
1953)

14

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

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

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

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

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

Algorithm


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

20

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

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

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