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

**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
15
Introduction to Computer Science
31
Introduction to Computer Programming
48
Algorithms and Data Structures
24
Artificial Intelligence
23
Computer Vision
25
Machine Learning
6
Neural Networks
20
Game Development and Multimedia
25
Data Communication and Networks
5
Coding Theory
15
Computer Security
8
Information Security
34
Cryptography
3
Information Theory
18
Computer Organization and Architecture
22
Operating Systems
1
Image Processing
10
Parallel Computing
4
Concurrent Programming
19
Relational Database
3
Document-oriented Database
13
Data Mining
16
Big Data
12
Data Science
23
Digital Libraries
21
Compiler Design and Construction
23
Functional Programming
10
Logic Programming
26
Object Oriented Programming
21
Formal Methods
68
Software Engineering
3
Agile Software Development
6
Information Systems
5
Geographic Information System (GIS)

Mathematics
67
Mathematics
10
Algebra
27
Linear Algebra
3
Number Theory
6
Numerical Methods
2
Precalculus
7
Calculus
5
Category Theory
7
Proofs
18
Discrete Mathematics
24
Theory of Computation
11
Graph Theory
1
Complex Analysis
10
Probability
39
Statistics
4
Game Theory
5
Queueing Theory
12
Operations Research
16
Computer Aided Mathematics

Supporting Fields
18
Web Design and Development
1
Mobile App Design and Development
28
System Administration
2
Cloud Computing
9
Electric Circuits
25
Signal Processing
3
Network Science
2
Project Management

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

Miscellaneous