90 likes | 108 Views
Explore essential algorithm topics from greedy to network flow for problem solving. Emphasizing theory and practice, assignments include programming tasks.
E N D
COT 5405: Design and Analysis of AlgorithmsCliff ZouSpring 2015
Course Information • Teacher: Cliff Zou • Office: HEC243 407-823-5015 • Email: czou@cs.ucf.edu • Office hour: TuTh 9:00am-10:30am • Course lecture time: TuTh 12:00pm – 1:15am (NSC-116) • Course Main Webpage: • http://www.cs.ucf.edu/~czou/COT5405-15 • Use the UCF WebCourse for homework submissions, discussion, and grading feedback • TA: Frank Plochan frank.plochan@knights.ucf.edu • TA office hour: TBD
Textbook “Algorithm Design”, by Jon Kleinberg and Éva Tardos, 2005, Addison-Wesley.
Assignments • Tentative Plan: • 3 written homework: 30% • 2 programming assignments: 25% • Mid-term exam: 20% • Final exam: 25% • Assignments should submit through WebCourse.
Definition of Algorithm • An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate input in a finite amount of time. • Its operations must all be sufficiently basic that they can in principle be done exactly and in a finite length of time by someone using pencil and paper. -- Knuth
Prerequisites • COP 3503 and COT 3100 • Have sound programming skill • We will probably have two programming assignments • Language is in your choice • Knowledge on Basic data structure, algorithm • Assuming that you have learned data structure in undergraduate program • Knoweledge of: Stacks and queues, Sorting, Searching, Graph algorithms, String processing
This Class • Design and analysis of algorithms. • Greedy. • Divide-and-conquer. • Dynamic programming. • Network flow. • Randomized algorithms. • Intractability. • Approximation. • Emphasizes critical thinking, problem-solving, and rigorous analysis.
Why Study Algorithms? • Wide range of applications. • Caching. • Compilers. • Databases. • Scheduling. • Networking. • Data analysis and data mining. • Signal processing. • Computer graphics. • Scientific computing. • Operations research. • Artificial intelligence. • Computational biology. • . . . • Focus on algorithms/techniques that are useful in practice.