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**: 37,504

**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
Introduction to Computer Science
Introduction to Computer Programming
Algorithms and Data Structures
Artificial Intelligence
Computer Vision
Machine Learning
Neural Networks
Game Development and Multimedia
Data Communication and Networks
Coding Theory
Computer Security
Information Security
Cryptography
Information Theory
Computer Organization and Architecture
Operating Systems
Image Processing
Parallel Computing
Concurrent Programming
Relational Database
Document-oriented Database
Data Mining
Big Data
Data Science
Digital Libraries
Compiler Design and Construction
Functional Programming
Logic Programming
Object Oriented Programming
Formal Methods
Software Engineering
Agile Software Development
Information Systems
Geographic Information System (GIS)

Mathematics
Mathematics
Algebra
Abstract Algebra
Linear Algebra
Number Theory
Numerical Methods
Precalculus
Calculus
Differential Equations
Category Theory
Proofs
Discrete Mathematics
Theory of Computation
Graph Theory
Real Analysis
Complex Analysis
Probability
Statistics
Game Theory
Queueing Theory
Operations Research
Computer Aided Mathematics

Supporting Fields
Web Design and Development
Mobile App Design and Development
System Administration
Cloud Computing
Electric Circuits
Embedded System
Signal Processing
Integration and Automation
Network Science
Project Management

Operating System
Programming/Scripting
Ada
Assembly
C / C++
Common Lisp
Forth
Java
JavaScript
Lua
Microsoft .NET
Rexx
Perl
PHP
Python
R
Rebol
Ruby
Scheme
Tcl/Tk

Miscellaneous