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
Comments 0
Log in to post a comment