Notes for the Course of Algorithms

Notes for the Course of Algorithms

Deal with how to design good algorithms, which is about the mathematical theory behind the design of good programs.

Publication date: 31 Dec 1998

ISBN-10: n/a

ISBN-13: n/a

Paperback: n/a

Views: 244,322

Type: N/A

Publisher: n/a

License: n/a

Post time: 18 Feb 2007 08:20:34

Notes for the Course of Algorithms

Notes for the Course of Algorithms Deal with how to design good algorithms, which is about the mathematical theory behind the design of good programs.
Tag(s): Algorithms and Data Structures
Publication date: 31 Dec 1998
ISBN-10: n/a
ISBN-13: n/a
Paperback: n/a
Views: 244,322
Document Type: N/A
Publisher: n/a
License: n/a
Post time: 18 Feb 2007 08:20:34
Terms and Conditions:

Dave Mount wrote:Copyright, David M. Mount, 1998, Dept. of Computer Science, University of Maryland, College Park, MD, 20742. These lecture notes were prepared by David Mount for the course CMSC 251, Algorithms, 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.

Document Summary:

What is algorithm design? An algorithm was defined to be any well-defined computational procedure that takes some values as input and produces some values as output. Like a cooking recipe, an algorithm provides a step-by-step method for solving a computational problem.

A good understanding of algorithms is essential for a good understanding of the most basic element of computer science: programming. Unlike a program, an algorithm is a mathematical entity, which is independent of a specific programming language, machine, or compiler. Thus, in some sense, algorithm design is all about the mathematical theory behind the design of good programs.

One of the elements that this course focuses on is to try to study algorithms as pure mathematical objects, and so ignore issues such as programming language, machine, and operating system. This has the advantage of clearing away the messy details that affect implementation. But these details may be very important.

Document Organization:

The notes will consist of three major sections. The first is on the mathematical tools necessary for the analysis of algorithms. This will focus on asymptotics, summations, recurrences. The second element will deal with one particularly important algorithmic problem: sorting a list of numbers. The notes will show a number of different strategies for sorting, and use this problem as a case study in different techniques for designing and analyzing algorithms. The final third of the course will deal with a collection of various algorithmic problems and solution techniques. Finally the notes will close with a very brief introduction to the theory of NP-completeness. NP-complete problem are those for which no efficient algorithms are known, but no one knows for sure whether efficient solutions might exist.




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.

David Mount

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
Sponsors