Notes for the Course of Data Structures

Focus on the representation and algorithms, the concrete issues of implementation of data structures. Provide the students with the tools needed to design and implement their own data structures.

**Tag(s):**
Algorithms and Data Structures

**Publication date**: 31 Dec 2001

**ISBN-10**:
n/a

**ISBN-13**:
n/a

**Paperback**:
n/a

**Views**: 36,492

**Type**: N/A

**Publisher**:
n/a

**License**:
n/a

**Post time**: 18 Feb 2007 09:16:03

Notes for the Course of Data Structures

Focus on the representation and algorithms, the concrete issues of implementation of data structures. Provide the students with the tools needed to design and implement their own data structures.

Terms and Conditions:

Excerpts from the Notes:

The study of data structures and the algorithms that manipulate them is among the most fundamental topics in computer science. Most of what computer systems spend their time doing is storing, accessing, and manipulating data in one form or another. Some examples from computer science include networking, information retrieval, compilers and computer graphics.

This course will deal with the first two tasks of storage and access at a very general level. (The last issue of manipulation is further subdivided into two areas, manipulation of numeric or floating point data, which is the subject of numerical analysis, and the manipulation of discrete data, which is the subject of discrete algorithm design.) A good understanding of data structures is fundamental to all of these areas.

Whenever we deal with the representation of real world objects in a computer program we must first consider a number of issues: modeling, operations, representation and algorithms. Note that the first two items are essentially mathematical in nature, and deal with the "what" of a data structure, whereas the last two items involve the implementation issues and the "how" of the data structure. The first two essentially encapsulate the essence of an abstract data type (or ADT). In contrast the second two items, the concrete issues of implementation, will be the focus of this course.

This course will explore a number of different data structures, study their implementations, and analyze their efficiency (both in time and space). One of the goals will be to provide the students with the tools that they will need to design and implement their own data structures to solve their own specific problems in data storage and retrieval.

Course Overview:

This course will consider many different abstract data types, and many different data structures for storing each type. Note that there will generally be many possible data structures for each abstract type, and there will not generally be a "best" one for all circumstances. It will be important for the student as a designer of data structures to understand each structure well enough to know the circumstances where one data structure is to be preferred over another.

Dave Mount wrote:Copyright, David M. Mount, 2001, Dept. of Computer Science, University of Maryland, College Park, MD, 20742. These lecture notes were prepared by David Mount for the course CMSC 420, Data Structures, at the University of Maryland, College Park. Permission to use, copy, modify, and distribute these notes for educational purposes and without fee is hereby granted, provided that this copyright notice appear in all copies.

Excerpts from the Notes:

The study of data structures and the algorithms that manipulate them is among the most fundamental topics in computer science. Most of what computer systems spend their time doing is storing, accessing, and manipulating data in one form or another. Some examples from computer science include networking, information retrieval, compilers and computer graphics.

This course will deal with the first two tasks of storage and access at a very general level. (The last issue of manipulation is further subdivided into two areas, manipulation of numeric or floating point data, which is the subject of numerical analysis, and the manipulation of discrete data, which is the subject of discrete algorithm design.) A good understanding of data structures is fundamental to all of these areas.

Whenever we deal with the representation of real world objects in a computer program we must first consider a number of issues: modeling, operations, representation and algorithms. Note that the first two items are essentially mathematical in nature, and deal with the "what" of a data structure, whereas the last two items involve the implementation issues and the "how" of the data structure. The first two essentially encapsulate the essence of an abstract data type (or ADT). In contrast the second two items, the concrete issues of implementation, will be the focus of this course.

This course will explore a number of different data structures, study their implementations, and analyze their efficiency (both in time and space). One of the goals will be to provide the students with the tools that they will need to design and implement their own data structures to solve their own specific problems in data storage and retrieval.

Course Overview:

This course will consider many different abstract data types, and many different data structures for storing each type. Note that there will generally be many possible data structures for each abstract type, and there will not generally be a "best" one for all circumstances. It will be important for the student as a designer of data structures to understand each structure well enough to know the circumstances where one data structure is to be preferred over another.

Tweet

About The Author(s)

David Mount is a professor in the Department of Computer Science and UMIACS. He is a member of the Algorithms and Theory Group at the University of Maryland. He does research on the design, analysis, and implementation of data structures and algorithms for geometric problems, particularly problems with applications in areas such as image processing, pattern recognition, information retrieval, and computer graphics.

Book Categories

Computer Science
40
Introduction to Computer Science
41
Algorithms and Data Structures
19
Object Oriented Programming
21
Theory of Computation
18
Formal Methods
17
Functional Programming
10
Logic Programming
23
Artificial Intelligence
21
Computer Vision
9
Big Data
3
Neural Networks
18
Compiler Design and Construction
16
Computer Organization and Architecture
9
Parallel Computing
3
Concurrent Programming
22
Operating Systems
21
Data Communication and Networks
28
Information Security
6
Information Theory
23
Digital Libraries
14
Information Systems
61
Software Engineering
17
Game Development and Multimedia
9
Data Mining
20
Machine Learning

Mathematics
65
Mathematics
1
Precalculus
9
Algebra
6
Calculus
5
Category Theory
24
Linear Algebra
16
Computer Aided Mathematics
5
Proofs
15
Discrete Mathematics
6
Numerical Methods
2
Number Theory
10
Graph Theory
12
Operations Research
1
Complex Analysis
1
Queueing Theory
29
Statistics
6
Probability

Supporting Fields
Operating System
Programming/Scripting
6
Ada
12
Assembly
33
C / C++
8
Common Lisp
2
Forth
34
Java
8
JavaScript
1
Lua
14
Microsoft .NET
11
Perl
5
PHP
54
Python
1
Rebol
9
Ruby
1
Scheme
3
Tcl/Tk

Miscellaneous