Course Outline (CMPS 314)

advertisement
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
Download