0% found this document useful (0 votes)
14 views5 pages

Course Outline HCS225

This document outlines a course on design and analysis of algorithms. It provides details on course objectives, prerequisites, grading, textbooks, class policies, and a course outline covering topics like asymptotic notation, algorithm analysis, data structures, greedy algorithms, divide-and-conquer, dynamic programming, and NP-completeness.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views5 pages

Course Outline HCS225

This document outlines a course on design and analysis of algorithms. It provides details on course objectives, prerequisites, grading, textbooks, class policies, and a course outline covering topics like asymptotic notation, algorithm analysis, data structures, greedy algorithms, divide-and-conquer, dynamic programming, and NP-completeness.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Great Zimbabwe University

School of Natural Science


Department of Mathematics and Computer Science
Course Outline:
Department of Mathematics and Computer Science
Subject Area: Computer Science
Course Name: Design and analysis of Algorithms
Course Code: HCS225
Campus: GZU Main Campus
2023

Contact Details for Instructors:


Lecturer: Ms Magoso
Location: Office # 5 Garikai 2
Phone: 0772640652
Email: [email protected]
Office Hours: 0800Hrs – 1600Hrs

Course Description:

This course introduces basic elements of the design and analysis of computer algorithms. Topics
include asymptotic notations and analysis, divide and conquer strategy, greedy methods,
dynamic programming, basic graph algorithms, NP-completeness, and approximation
algorithms. For each topic, beside in-depth coverage, one or more representative problems and
their algorithms shall be discussed.

Course Objectives
Algorithm design and analysis provide the theoretical backbone of computer science and are a
must in the daily work of the successful programmer. The goal of this course is to provide a solid
background in the design and analysis of the major classes of algorithms. At the end of the
course students will be able to develop their own versions for a given computational task and to
compare and contrast their performance.

Prerequisites
Discrete Mathematics or equivalent, and Data Structures or instructor's consent

Grading
Coursework: 40% : Final Exam: 60%

Textbook
1. Lecture Notes. Available on-line.
2. 2. T. H. Cormen, C. E. Leiserson, R. L. Rivest. Introduction to Algorithms The MIT
Press, Cambridge, Massachusetts, 3rd edition. (Recommended not required) Available on
PDFormat on line.

Class Policies
1) Attendance & Absences – Students are expected to attend and sit through the entire class
meetings. In case of an absence, the student is responsible to arrange for notes and missed
announcements. Three (3) or more absences may result in a withdrawal from the class.

2) Assignment Completion & Late Work – Late assignment submission is not allowed, unless
permission is granted by the instructor prior to the deadline. Students should submit a physical to
the instructor by the due date. If the student is to be absent that day, completed assignments
should be submitted via email before class begins.

3) Academic Conduct Code – Cheating and plagiarism will not be tolerated. They will result in
no credit for the assignment or examination and may lead to disciplinary actions. Please take the
time to review the program regulations:

Course Outline:
1. Introduction
o What is an algorithm?
o Notation for programs
o Proof techniques
o Basics review: Sets - Functions - Limits - Simple series
2. Fundamentals
o Instances and problems - Elementary operations.
o Efficiency
o Average and worst-case analysis
o Examples
3. Asymptotic notation
o Introduction
o A notation for "the order of"
o The omega notation
o The theta notation
o The conditional asymptotic notation
4. Analysis of algorithms
o Analyzing control structures
o Using a barometer
o Amortized analysis
o Solving recurrences
5. Data structures
o Arrays, stacks and queues
o Records and pointers
o Lists, graphs, trees and associative tables
o Heaps
o Disjoint set structures
6. Greedy algorithms
o Making change
o General characteristics of Greedy algorithms
o Graphs MST - Kruskal's and Prims's algorithms
o Graphs: shortest paths
o Knapsack problem
o Scheduling
7. Divide - and - Conquer
o Multiplying large integers
o Binary search
o Sorting by: merging and quicksort
o Finding the median
o Matrix multiplication
o Exponentiation
o Quick look at cryptography
8. Dynamic programming
o Making change
o Principles of optimality
o The knapsack problem
o Shortest paths - Floyd's algorithm
o Chained matrix multiplication
9. NP Completeness
o Tractable and Intractable Problems,
o Complexity Classes
o Concept of tractable and intractable problems, Polynomial Time and Super
Polynomial Time complexity.
o P , NP , NP Complete, NP Hard with Examples
o NP Complete Problems
o NP Completeness and Problem Reducibility, Concept of Cooks Theorem(Without
Proof). Proof of NP Completeness( CNF-SAT, Vertex Cover and Subset-Sum
Problem)
o Approximation Algorithms
o Concept and Application, Vertex Cover Problem, Subset Sum Problem
9. Introduction to probabilistic algorithms - Parallel algorithms

10. Introduction to computational complexity

You might also like