80 likes | 199 Views
COP 3530: Computer Science III Summer 2005 Introduction. Instructor : Dr. Mark Llewellyn markl@cs.ucf.edu CSB 242, (407)823-2790 Course Webpage: http://www.cs.ucf.edu/courses/cop3530/sum2005. School of Computer Science University of Central Florida. Asymptotic analysis:
E N D
COP 3530: Computer Science III Summer 2005 Introduction Instructor : Dr.Mark Llewellyn markl@cs.ucf.edu CSB 242, (407)823-2790 Course Webpage: http://www.cs.ucf.edu/courses/cop3530/sum2005 School of Computer Science University of Central Florida
Asymptotic analysis: Big-Oh (upper bound) Big Omega (lower bound) Big Theta (asymptotically equal) Be able to program in Java. Randomization and Probability Distributions. Basic data structures and their implementations: Stacks Queues Lists Trees Graphs What You Should Already Know
You will be exposed to a wide variety of advanced data structures that are based upon the classic data structures with which you are already familiar. Advanced list structures. Skip lists, self-organizing lists, etc. Advanced tree structures. 2-4 trees, red-black trees, splay trees, B-trees, etc. Advanced graph applications and algorithms. Network flow analysis, circuits, paths, etc. You will deal with the design and analysis of algorithms in a more detailed manner than you experienced in CSII. You will be introduced to parallel execution and parallel algorithms. What You Will Learn in CSIII
Link to course webpage and syllabus: http://www.cs.ucf.edu/courses/cop3530/sum2005 Syllabus
What is an algorithm? A step-by-step procedure for performing some task in a finite amount of time. Input: algorithms typically receive input. Output: algorithms typically produce output. Precision: the steps are precisely stated. Determinism: the results of each step are unique and determined only by the input and the results of previous steps. Finiteness: the algorithm terminates after a finite number of steps. Correctness: the algorithm produces the correct results. Generality: algorithms typically apply to a set of possible inputs. What is an Algorithm?
How do we determine what constitutes a good algorithm? Time: how long does it take the algorithm to solve the problem? Space: how much memory is required by the algorithm to solve the problem? How are algorithms and data structures related? What other factors influence algorithm design and execution? Problem size Computing machine Quality of the implementation Others What is a Good Algorithm?
How do we analyze an algorithm’s performance? Experimentally: if the algorithm has been implemented, just execute it and see how long it takes or how much memory it requires. Are the test data sets representative of the actual data? Difficult to compare the efficiency of two algorithms? Requires implementing the algorithm. Analytically: a function f(n) is associated with each algorithm that characterizes the running time of the algorithm in terms of the input size n. does not require implementation of the algorithm. allows easy comparison of algorithms independent of hardware and software environments. is independent of the input. Methodologies for Analyzing Algorithms
Read Chapters 1 and 2 in the textbook. Next topic: Next Class