Computer Science 231:
Algorithms

Fall 2012

Mon/Wed, 11:30 - 12:55 pm, Searles 223

This course will cover algorithm design techniques, analysis of the efficiency of algorithms, and specific types of algorithms. General topics include asymptotic growth, recurrences, greedy algorithms, divide-and-conquer algorithms, dynamic programming, and intractable problems. Specific types of algorithms covered include sorting algorithms, graph algorithms, network algorithms, and text processing algorithms.


ADMINISTRATIVE INFORMATION:

Instructor:
Stephen Majercik, 222 Searles Hall, 725-3106, smajerci@bowdoin.edu
Office Hours:
Mon/Tues, 2:00-3:30 pm, or by appointment
Teaching Assistants and QR Leaders:

Josh Imhoff (QR): Tues, 8:00-10:00 pm
Rob Visentin (TA), Wed, 8:00-10:00 pm
Judy Yang (TA): Thurs, 1:00-3:00 pm
Ellis Ratner (TA): Sun, 3:00-5:00 pm
Lizzie Mamantov (QR): Sun, 8:00-10:00 pm
Class E-mail:
csci231@bowdoin.edu


TEXT (required):

Michael T. Goodrich and Roberto Tamassia
Algorithm Design: Foundations, Analysis, and Internet Examples

John Wiley, 2002

PREREQUISITES:
None.


REQUIREMENTS
:
Problem Sets 25%
3 Exams 75%
Class Participation Tiebreaker

COURSE OUTLINE:
See reverse.












TENTATIVE COURSE OUTLINE:
Dates Topic Readings
Sep 3 Introduction to Algorithms
Sep 5 Simple Sorting and Asymptotic Notation 2.4.2, 1.1, 1.2
Sep 10 Recursive Sorting 4.1, 4.3
Sep 12,17 Recurrences and Induction 5.2.1
Sep 19 Heapsort 2.4.4
Sep 24 Matrix Multiplication 5.2.3
Sep 26, Oct 1 Undirected Graph Algorithms 6.3
Oct 3, 10 Directed Graph Algorithms 6.4
Oct 15 Weighted Graph Shortest Paths 7.1
Oct 17 Weighted Graph Minimum Spanning Trees 7.3
Oct 22 EXAM 1 9/3 through10/10
Oct 24, 29 Network Maximum Flow 8.1, 8.2
Oct 31 String Pattern Matching 9.1
Nov 5 Text Compression 9.3
Nov 7, 12, 14 Dynamic Programming 5.3, 7.2, 9.4
Nov 19 EXAM 2 10/15 through11/5
Nov 26, 28, Dec 3, 5 Complexity 13.1-13.3
Reading Period (Makeup class for 11/21) TBA TBA
Exam Period EXAM 3 11/7 through12/5