Computer Science and Technology

Design and Analysis of Algorithms

Release Date: 2017-09-22

1. Basic Course Information

Course Code: 110184
Course Name: Design and Analysis of Algorithms
Course Type: Specialty Course
Periods: 64
Credits: 4
Target Students: Underground Majoring in Information Science
Assessment: Examination
Preparatory Courses: Program Design, Data Structure

2. Course Introduction

"Design and Analysis of Algorithms" is a major foundation course in computer science major. This course assumes that students know how to analyze simple algorithms and data structures from having taken the course of "Data Structures". It introduces students to the design of computer algorithms, as well as analysis of sophisticated algorithms.

In this course you will learn several fundamental principles of advanced algorithm design. You'll learn the greedy algorithm design paradigm, with applications to computing good network backbones (i.e., spanning trees) and good codes for data compression. You'll learn the tricky yet widely applicable dynamic programming algorithm design paradigm, with applications to routing in the Internet and sequencing genome fragments.  You’ll learn what NP-completeness and the famous “P vs. NP” problem mean for the algorithm designer.  Finally, we’ll study several strategies for dealing with hard (i.e., NP-complete problems), including the design and analysis of heuristics.