UNIVERSITY OF BELIZE FACULTY OF SCIENCE & TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY Algorithms (CMPS 314) Course Outline Semester 1 (August –December 2008) Instructor: Course Description: Ms. Freida Palma MSc. This course is designed to teach techniques for the design and analysis of efficient computer algorithms through theoretical backgrounds and examples of advanced methods and data structures. Topics include asymptotic growth analysis of functions, average and worst case analysis, sorting and selection problems, advanced search trees, graph theory and related algorithms, divide and conquer and greedy programming paradigms, hashing, complexity classes of P, NP and NP-complete. Office: Jag- D4 Telephone: 822-3681 ext 303 Pre-requisites Email: palmita@freidapalma.com CMPS255 – Object Oriented Programming MATH333 – Calculus III Objectives Website: At the end of this course students will be able to : Office Hours: Monday 8:00 am -10:00 am Class Hours: Monday 8:00 am - 10:30 am 1. Explain characteristics of algorithms 2. Describe and differentiate between characteristics of algorithms 3. Explain major formal methods for the design, analysis, and implementation of algorithms 4. Assess characteristics of algorithms 5. Utilize efficient algorithms for problems 6. Compare algorithms by their efficiency 7. Apply methods to design algorithms that address practical problems, such as sorting, searching, and string matching effectively and efficiently 8. Implement complex algorithms in a modern computer language, such as C++ Class Room: Textbook: Jag-D4 Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms Page 1 of 5 UNIVERSITY OF BELIZE FACULTY OF SCIENCE & TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY Algorithms (CMPS 314) Course Outline Semester 1 (August –December 2008) Reference: Aho, A.V, Hopcroft, J.E., Ullman, J.D.: The Design and Analysis of Computer Algorithms Course Schedule The following schedule is tentative and may be modified as necessary to accomplish the course objectives: Topics Date Course Outline 25-Aug-2008 Unit #1: Introduction to algorithms and necessary mathematical foundations 01-Sept-2008 Analysis of Algorithms Asymptotic Notation Recurrences: Substitution, Iteration, (Simplified) Master Method. Divide and Conquer: Strassen’s Algorithm, Polynomial Multiplication Introduction to NP-completeness. Submission of Semester Project Progress: Problem Unit #2: Sorting and hashing algorithms 01-Sept-2008 08-Sept-2008 Insertion Sort, Merge Sort 15-Sept-2008 Quicksort, Randomized Algorithms. 22-Sept-2008 Heapsort, Dynamic Sets, Priority Queues. Linear-time Sorting, Lower Bounds, Counting Sort, Radix Sort. Order Statistics, Median. Applications of Median, Bucket Sort. Hashing, Universal Hashing. Hash Functions, Perfect Hashing Page 2 of 5 UNIVERSITY OF BELIZE FACULTY OF SCIENCE & TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY Algorithms (CMPS 314) Course Outline Semester 1 (August –December 2008) Submission of Semester Project Progress: Algorithm Design Test #1 22-Sept-2008 Unit #3: Search trees 06-Oct-2008 29-Sept-2008 Binary Search Trees (BST), Tree Walks. 13-Oct-2008 Red-Black Trees, Rotations, Insertions, Deletions. 20-Oct-2008 Dynamic Programming, Longest Common Subsequence, Optimal BST Test #2 Unit #4: Graph algorithms 27-Oct-2008 03-Nov-2008 Introductory graph theory 10-Nov-2008 Greedy Algorithms 17-Nov-2008 Examples of Greedy Algorithms and Dynamic Programming. Graph representations, Minimum Spanning Trees. Depth-First Search, Edge Classification. Shortest Paths, Dijkstra’s Algorithm, Breadth-First Search. Shortest Paths, Bellman-Ford, Shortest Paths in Directed Acyclic Graphs, Difference Constraints. All-Pairs Shortest Paths, Dynamic Programming, Floyd-Warshall, Johnson’s Algorithm. Test #3 Submission of Semester Project : Program Code and Documentation Semester Project Presentation and Demo Final Exam 17-Nov-2008 24-Nov-2008 24-Nov-2008 01-Dec-2008 Evaluation This course will be evaluated using four evaluation tools: assignments, tests, semester project, final examination. Page 3 of 5 UNIVERSITY OF BELIZE FACULTY OF SCIENCE & TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY Algorithms (CMPS 314) Course Outline Semester 1 (August –December 2008) Several (approximately five) assignments will be given to be completed as homework assignments. These will usually consist of one or more exercises of the following types: solving algorithms related exercises on paper, designing an algorithm for a given problem, implementing a given algorithm in C or C++ language for a given problem. Tests are scheduled to cover portions of the course. This generally means that at the end of each major topic a test is scheduled. The tests will be based on the reading material, assignments and other shared course material. A semester project will be assigned at the beginning of the semester to be completed by the end of the semester. This will consist of designing an algorithm and coding it in C or C++ language for a given problem. The final examination is a comprehensive written exam: all materials shared throughout the semester have a fair chance of showing up on the final exam. Should the course material appear more or less challenging than here determined, the lecturer reserves the right to adjust the course outline accordingly. Evaluation Weight Evaluation Method Weight Assignments(4) 20% Tests(3) 30% Semester Project(1) 10% Final Examination(1) 40% Total 100% Final letter grade is given according to the standard UB grading scale. A = 95-100% A- = 90-94% B+ = 85-89% B = 80-84% C+ = 75-79% C = 70-74% D+ = 65-69% D = 60-64% F = below 59% Page 4 of 5 UNIVERSITY OF BELIZE FACULTY OF SCIENCE & TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY Algorithms (CMPS 314) Course Outline Semester 1 (August –December 2008) Late Penalties Except when a case is documented as a medical emergency, assignments submitted late will be penalized at a rate of 10% per day. Cheating Policy I strongly urge students not to copy the semester report. Copying will result with the students receiving a grade of zero. I encourage students to do individual work, and not share their work with their colleagues but rather assist their fellow colleagues. I also strongly encourage students to avoid plagiarism. Any proof of plagiarism will result in a grade of zero. Miscellaneous: The following will be the rules of conduct to be observed during this course: Since the course will be implemented in a Computer Lab, students are to follow the instructions of the lecturer and to abide by the rules of the Labs. While in class students will not be allowed to check e-mail, browse the Internet, play games or open other applications than instructed; any student found not abiding by this will be requested to leave the class and return the next class period. Neither eating nor drinking is allowed under any circumstances. Cell phones must be turned off (or place on vibrate) upon entering the classroom. Students who fail to comply will be asked to leave the classroom and return the next class period. If a student is inconsiderate and creating a lot of noise; he/she will be asked to leave. If a student is late or absent, it is his/her responsibility to find out what information have missed and what assignments are due. This does not mean coming to the lecturer to find out what you have missed or asking for a recap on what was presented earlier. Class/Academic Policies Refer to the University's Academic Policies in the Student Handbook. ****** Page 5 of 5