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,652

**Type**: N/A

**Publisher**:
n/a

**License**:
n/a

**Post time**: 18 Feb 2007 08: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
45
Introduction to Computer Science
41
Algorithms and Data Structures
23
Object Oriented Programming
21
Theory of Computation
19
Formal Methods
19
Functional Programming
10
Logic Programming
22
Artificial Intelligence
22
Computer Vision
11
Big Data
3
Neural Networks
19
Compiler Design and Construction
1
Computer Security
15
Computer Organization and Architecture
5
Data Science
9
Parallel Computing
3
Concurrent Programming
22
Operating Systems
22
Data Communication and Networks
31
Information Security
6
Information Theory
23
Digital Libraries
13
Information Systems
61
Software Engineering
17
Game Development and Multimedia
10
Data Mining
22
Machine Learning

Mathematics
66
Mathematics
2
Precalculus
9
Algebra
6
Calculus
5
Category Theory
25
Linear Algebra
16
Computer Aided Mathematics
6
Proofs
16
Discrete Mathematics
6
Numerical Methods
3
Number Theory
10
Graph Theory
12
Operations Research
1
Complex Analysis
5
Queueing Theory
32
Statistics
10
Probability

Supporting Fields
9
Electric Circuits
22
Signal Processing
13
Web Design and Development
2
Document-oriented Database
9
Relational Database
1
Cloud Computing
1
Network Science

Operating System
Programming/Scripting
6
Ada
12
Assembly
35
C / C++
8
Common Lisp
2
Forth
34
Java
11
JavaScript
1
Lua
15
Microsoft .NET
1
Rexx
12
Perl
5
PHP
58
Python
1
Rebol
13
Ruby
2
Scheme
3
Tcl/Tk

Miscellaneous