DOC PREVIEW
UMD CMSC 420 - Lecture 1: Course Introduction and Background

This preview shows page 1-2-3-4-5-6-7-8-57-58-59-60-61-62-63-64-65-116-117-118-119-120-121-122-123 out of 123 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 123 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Lecture Notes CMSC 420CMSC 420: Data Structures1Spring 2001Dave MountLecture 1: Course Introduction and Background(Tuesday, Jan 30, 2001)Algorithms and Data Structures: The study of data structures and the algorithms that ma-nipulate them is among the most fundamental topics in computer science. Most of whatcomputer systems spend their time doing is storing, accessing, and manipulating data in oneform or another. Some examples from computer science include:Networking: Suppose you need to multicast a message from one source node to many othermachines on the network. Along what paths should the message be sent, and how canthis set of paths be determined from the network’s structure?Information Retrieval: How does a search engine like Google store the contents of the Webso that the few pages that are most relevant to a given query can be extracted quickly?Compilers: You need to store a set of variable names along with their associated types.Given an assignment between two variables we need to look them up in a symbol table,determine their types, and determine whether it is possible to cast from one type to theother (say because one is a subtype of the other).Computer Graphics: You are designing a virtual reality system for an architectural buildingwalk-through. Given the location of the viewer, what portions of the architectural designare visible to the viewer?In many areas of computer science, much of the content deals with the questions of how tostore, access, and manipulate the data of importance for that area. In this course we willdeal with the first two tasks of storage and access at a very general level. (The last issue ofmanipulation is further subdivided into two areas, manipulation of numeric or floating pointdata, which is the subject of numerical analysis, and the manipulation of discrete data, whichis the subject of discrete algorithm design.) An good understanding of data structures isfundamental to all of these areas.What is a data structure? Whenever we deal with the representation of real world objects ina computer program we must first consider a number of issues:Modeling: the manner in which objects in the real world are modeled as abstract mathemat-ical entities and basic data types,Operations: the operations that are used to store, access, and manipulate these entities andthe formal meaning of these operations,Representation: the manner in which these entities are represented concretely in a com-puter’s memory, andAlgorithms: the algorithms that are used to perform these operations.1Copyright, 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 ofMaryland, College Park. Permission to use, copy, modify, and distribute these notes for educational purposes andwithout fee is hereby granted, provided that this copyright notice appear in all copies.1Lecture Notes CMSC 420Note that the first two items above are essentially mathematical in nature, and deal with the“what” of a data structure, whereas the last two items involve the implementation issues andthe “how” of the data structure. The first two essentially encapsulate the essence of an abstractdata type (or ADT). In contrast the second two items, the concrete issues of implementation,will be the focus of this course.For example, you are all familiar with the concept of a stack from basic programming classes.This a sequence of objects (of unspecified type). Objects can be inserted into the stack bypushing and removed from the stack by popping. The pop operation removes the last unremovedobject that was pushed. Stacks may be implemented in many ways, for example using arraysor using linked lists. Which representation is the fastest? Which is the most space efficient?Which is the most flexible? What are the tradeoffs involved with the use of one representationover another? In the case of a stack, the answers are all rather mundane. However, as datastructures grow in complexity and sophistication, the answers are far from obvious.In this course we will explore a number of different data structures, study their implementa-tions, and analyze their efficiency (both in time and space). One of our goals will be to provideyou with the tools that you will need to design and implement your own data structures tosolve your own specific problems in data storage and retrieval.Course Overview: In this course we will consider many different abstract data types, and we willconsider many different data structures for storing each type. Note that there will generallybe 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 you as a designer of data structuresto understand each structure well enough to know the circumstances where one data structureis to be preferred over another.How important is the choice of a data structure? There are numerous examples from all areasof computer science where a relatively simple application of good data structure techniquesresulted in massive savings in computation time and, hence, money.Perhaps a more important aspect of this course is a sense of how to design new data structures.The data structures we will cover in this course have grown out of the standard applications ofcomputer science. But new applications will demand the creation of new domains of objects(which we cannot foresee at this time) and this will demand the creation of new data structures.It will fall on the students of today to create these data structures of the future. We will seethat there are a few important elements which are shared by all good data structures. We willalso discuss how one can apply simple mathematics and common sense to quickly ascertainthe weaknesses or strengths of one data structure relative to another.Algorithmics: It is easy to see that the topics of algorithms and data structures cannot be separatedsince the two are inextricably intertwined. So before we begin talking about data structures, wemust begin with a quick review of the basics of algorithms, and in particular, how to measurethe relative efficiency of algorithms. The main issue in studying the efficiency of algorithms isthe amount of resources they use, usually measured in either the space or time used. Thereare usually two ways of measuring these quantities. One is a mathematical


View Full Document

UMD CMSC 420 - Lecture 1: Course Introduction and Background

Download Lecture 1: Course Introduction and Background
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture 1: Course Introduction and Background and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture 1: Course Introduction and Background 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?