Presentation on theme: "Course Overview Analysis of Algorithms and Data Structures Course Overview CSE 680 Prof. Roger Crawfis."— Presentation transcript:
Course Overview Analysis of Algorithms and Data Structures Course Overview CSE 680 Prof. Roger Crawfis
Course Vitals Grading Policy, assignments, schedule, etc. are on the web page and will be updated throughout the quarter. Do not print them out and refer to them. Course Web site: Your Instructor Your Grader
Goals of the Course What is this course about? Algorithms Design - How do you create an algorithm? Analysis – How efficient is it? Correctness – How sure are you that it works for all input? Data Structures Role in efficient algorithms Data structures for common problems
Algorithm Algorithm: any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output. A sequence of computational steps that transform the input into the output. Input Algorithm Output Typically, an algorithm must also halt.
Computational Problem We will look at several recurring problems in a vast set of application domains: networking, AI, data mining, graphics, manufacturing, etc. Sample problems: Sort a sequence of numbers. Given a set of points in the plane, find the closest two. Given a set of locations, find a route that visits each location once. Given a sorted set of numbers, determine whether a given number exists in the set. Given a pattern for a dress, determine the planar layout of the individual pieces on a fabric.
Some Definitions Problem Instance consists of the input (satisfying whatever constraints are imposed in the problem statement) needed to compute a solution to the problem. Correct Algorithm for every input instance it halts with the correct output. A correct algorithm solves the given computational problem. Definitions from the book and:
Group Activity Gather in groups of 4. Come up with two fundamentally different algorithms to sort a deck of cards (15 minutes). Do not try to be fancy or recall algorithms from earlier classes, just ask yourself, what would I do. Taking a card from the bottom versus the top is not fundamentally different. See which group can come up with the most unique algorithm to sort a deck of cards.
Group Activity Share each sorting algorithm Is it an algorithm? How many unique algorithms? How do you verify whether an algorithm is correct? How do we pick one and claim it is the best!