CSIS 430 - Analysis of Algorithms

Course Description

An introduction to the formal design and analysis of algorithms in terms of both time and space complexity. Paradigms covered include divide-and-conquer, greedy, dynamic programming, and heuristic techniques.

Instructor

Dr. David M. Hansen

Texts

Required
  • Mark Allen Weis Data Structures and Algorithm Analysis in Java 3rd Ed. (texbook is shared with CSIS310)
  • Thomas H. Cormen Algorithms Unlocked
Recommended (not available from bookstore - but available online)

Objectives

This course moves beyond the study of data structures to study and analyze efficient algorithms and paradigms for their design.
  • Students will acquire the basic mathematical skills for analyzing algorithms.
  • Students will be able to design efficient algorithms using appropriate paradigms to solve specific problems.
  • Students will experiment with the implementation of various algorithms using varying techniques and will compare experimental results with predicted theoretical results.

Course Organization

This course will emphasize both theory and practice. Algorithms studied through lecture and reading will be implemented in a high-level language. Experimental results will be compared with predicted theoretical results.

Programming assignments will be carried out in a prescribed high-level language. Minimal instruction in the use of this language will be provided, you will be expected to achieve sufficient competence on your own.

The course will include regular homework and programming assignments (please see my comments on collaboration and programming). Assignments are due before 11:59pm on the due date; there will be NO CREDIT given for late assignments (without an excused absence) - turn in as much as you can.

Reading assignments should be completed before the lecture covering the material. Not all reading material will be covered in the lectures, but you will be responsible for the material on homework and exams. Quizzes over the assigned reading may be given at any time.

The Vision Statement of the Computer Science and Information Systems majors states that our students are distinctive by: "Bringing a Christ-centered worldview to our increasingly technological world." As one step towards the fulfillment of this objective, each semester, we will identify an influential Christian writing to be read and reflected upon by students in our classes throughout the term. This will be treated as an official component of every course and will be uniquely integrated and assessed at our discretion, generally as a component of the quiz grade. See the semester's reading schedule. In addition, regular meetings will be scheduled throughout the semester that can be attended for Chapel credit.

It is my hope that students will not view this as one more task to complete, but as a catalyst for continued discussion ultimately leading to a deeper walk with Christ.

The chief end of man is to glorify God, and enjoy Him forever.
(Westminster Confession)

If you have specific physical, psychiatric, or learning disabilities and require accommodations, please contact the Disability Services Office as early as possible so that your learning needs may be appropriately met. You will need to provide current documentation of your disability to the Disability Services Office. For more information, go to ds.georgefox.edu or contact Rick Muthiah, Dean of the Center for Teaching and Learning (ext. 2314)

Grading

Grading Scale

The final grade will be based on:

Tentative Schedule

Week DateTopic Group
Presentation
Reading
Weiss Cormen Foundations of CS
1 1/9 Introduction        
1/11 Review   1.2-1.3, 2.1-2.3, 3 1  
2 1/16 Running Time   2.4 2 3.1-3.8
1/18 Graph Representations   9.1-9.2 5 9.1-9.3
3 1/23 Shortest Paths   9.3 6 9.8-9.9
1/25 Network Flow   9.4    
4 1/30 Minimum Spanning Tree 1 9.5   9.5
2/1 Brute-Force Search   9.6   9.6
5 2/6 Introduction to NP 2 9.7; Genetic TSP 10  
2/8 Greedy Algorithms   10.1 9  
6 2/13 Divide & Conquer; Recurrence Equations and the Master Theorem 3 10.2   3.9-3.12
2/15 Dynamic Programming   10.3    
7 2/20 Edit Distance 4 PDF, 1-3; 5-5.1; skim rest 7  
2/22 Randomized Algorithms   10.4    
8 2/27 Encryption 5 PDF 8  
2/29 Backtracking Algorithms   10.5; PDF    
9 3/5 Sorting Review & Recursion 6 7.6-7.7 3  
3/7 Midterm Exam
10 3/12 Sorting Bounds 7 7.8-7.10 4  
3/14 Radix and External Sorting   7.11-7.12    
11 3/19 Disjoint Set 8 8.1-8.3    
3/21 Union-Find Algorithm   8.4    
12 Spring Break
13 4/2 Union-Find Analysis   8.5-8.7    
4/4 Algorithms        
14 4/9 AVL & Splay Trees   4.3-4.6    
4/11 B-Trees and Treaps   4.7, 12.2-12.3    
15 4/16 Bloom Filters   PDF    
4/18 Algorithms & Review        
This page was last updated .
For questions or comments about this page, please email the webmaster.