CMPS 314 Course Outline

advertisement
UNIVERSITY OF BELIZE
FACULTY OF SCIENCE & TECHNOLOGY
DEPARTMENT OF INFORMATION TECHNOLOGY
Algorithms (CMPS 314)
Course Outline
Semester II
Course description:
Instructor
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.
Ms. Freida Palma,
MSc.
Office
Jag-D4
Prerequisites:
CMPS255 – Object Oriented Programming
MATH333 – Calculus III
Telephone
822-3680/81
Ext. 305
Course
Course Objectives:
At the end of this course, students will be able to:
Email
Cmps314@freidapalma.com
Class Hours/Room
Tuesday/Thursday
2:00pm-3:15pm
Bachelors Lab
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++
Textbook:
Office Hours
Tuesday/Thursday
3:30-5:00 pm
Introduction to the Design and Analysis of Algorithms, 2/E
Anany V. Levitin, Villanova University
Recommended reading:
Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to
Algorithms
CMPS 314
Pg 1 of 5
Department of Information Technology
Course Topics
1. Introduction
1.1 What is an Algorithm?
1.2 Fundamentals of Algorithmic Problem Solving
1.3 Important Problem Types
1.4 Fundamental Data Structures
2. Fundamentals of the Analysis of Algorithm Efficiency
2.1 Analysis Framework
2.2 Asymptotic Notations and Basic Efficiency Classes
2.3 Mathematical Analysis of Nonrecursive Algorithms
2.4 Mathematical Analysis of Recursive Algorithms
2.5 Example: Fibonacci Numbers
2.6 Empirical Analysis of Algorithms
2.7 Algorithm Visualization
3. Brute Force
3.1 Selection Sort and Bubble Sort
3.2 Sequential Search and Brute-Force String Matching
3.3 Closest-Pair and Convex-Hull Problems by Brute Force
3.4 Exhaustive Search
4. Divide-and-Conquer
4.1 Mergesort
4.2 Quicksort
4.3 Binary Search
4.4 Binary Tree Traversals and Related Properties
4.5 Multiplication of Large Integers and Strassen’s Matrix Multiplication
4.6 Closest-Pair and Convex-Hull Problems by Divide-and-Conquer
5. Decrease-and-Conquer
5.1 Insertion Sort
5.2 Depth-First Search and Breadth-First Search
5.3 Topological Sorting
5.4 Algorithms for Generating Combinatorial Objects
5.5 Decrease-by-a-Constant-Factor Algorithms
5.6 Variable-Size-Decrease Algorithms
6. Transform-and-Conquer
6.1 Presorting
6.2 Gaussian Elimination
CMPS 314
Pg 2 of 5
Department of Information Technology
6.3 Balanced Search Trees
6.4 Heaps and Heapsort
6.5 Horner’s Rule and Binary Exponentiation
6.6 Problem Reduction
7. Space and Time Tradeoffs
7.1 Sorting by Counting
7.2 Input Enhancement in String Matching
7.3 Hashing
7.4 B-Trees
8. Dynamic Programming
8.1 Computing a Binomial Coefficient
8.2 Warshall’s and Floyd’s Algorithms
8.3 Optimal Binary Search Trees
8.4 The Knapsack Problem and Memory Functions
9. Greedy Technique
9.1 Prim’s Algorithm
9.2 Kruskal’s Algorithm
9.3 Dijkstra’s Algorithm
9.4 Huffman Trees
10. Iterative Improvement
10.1 The Simplex Method
10.2 The Maximum-Flow Problem
10.3 Maximum Matching in Bipartite Graphs
10.4 The Stable Marriage Problem
11. Limitations of Algorithm Power (If time permits)
11.1 Lower-Bound Arguments
11.2 Decision Trees
11.3 P, NP, and NP-complete Problems
11.4 Challenges of Numerical Algorithms 4
12. Coping with the Limitations of Algorithm Power (If time permits)
12.1 Backtracking
12.2 Branch-and-Bound
12.3 Approximation Algorithms for NP-hard Problems
12.4 Algorithms for Solving Nonlinear Equations
CMPS 314
Pg 3 of 5
Department of Information Technology
Exam:
In accordance with the University Exam Schedule
Evaluation
This course will be evaluated using three evaluation tools: assignments, tests and a final
examination.
Presentation(1) topic will be given with a guide as to what students are expected to cover during
presentation.
Assignments (6) will be given throughout the semester based on materials cover during class
lecture.
Tests are scheduled to cover small portions of the course. This generally means that at the end of
several major topics a test is scheduled. The tests will be based on the lectures, assignments and
other shared course material.
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.
Late penalties
Except when a case is documented as a medical emergency, assignments submitted late will be
penalized at a rate of 20% per day, leaving students with a maximum of five days before
obtaining a zero.
Evaluation Weight
The final grade will be assigned to each student based on the following:
Evaluation Method
Presentation(1)
6%
Assignments(6)
24%
Tests(4)
40%
Final Examination(1)
30%
Total
CMPS 314
Weight
100%
Pg 4 of 5
Department of Information Technology
Final grade letter 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%
Class, Academic and Cheating Policies
Students have been provided with the Student Handbook as well as IT Department-Specific
Policies. All academic policies contained therein apply to this course. Kindly consult the
handbook and the department policies.
Program Standards




Programs have to be submitted electronically.
Every program must contain, in the first few lines, a comment indicating the name(s) of
the student(s) working on it and which assignment it is. Programs not containing this
information, clearly visible, will get a zero.
Programs which don't compile will not be considered.
Every program must be accompanied by test cases demonstrating how the program
works. Programs with inadequate or poorly-chosen test cases will lose points.
Classroom Rules of Conduct





Once inside the computer lab, neither eating nor drinking are allowed under any
circumstances. If, however, you must eat or drink, quietly excuse yourself from class and
return when you have finished.
Cell phones should be switched off or set to vibrate mode. Once a call comes in, you
have the option of answering it, but must do so outside of the classroom and far enough
to prevent distraction of other students. During tests all cell phones should be switch off.
There is no penalty for coming to class late. However, you must not disturb or distract the
class while entering. If you are late or absent, it is your responsibility to find out (from
your class mates, not the lecturer) what information you have missed and what
assignments are due.
Once a test has been returned to you, you have exactly one week from the date received
to make queries or raise any concerns regarding your grade etc. Any concerns voiced
after the specified period will not be valid or taken into consideration.
Each student must take all tests. A makeup for a missed test will only be given when the
student has made arrangements for such prior to the time the test is given to the class.
Final Note:
The lecturer reserves the right to propose changes to this course outline as necessary to ensure
that the objectives of the course are accomplished. Students will be made aware of any changes
as soon as such changes are made.
*****
CMPS 314
Pg 5 of 5
Department of Information Technology
Download