Gold University of Minnesota M. Skip to main content.University of Minnesota. Home page.
 
 
 

What's inside.

Project 1 Data

Submission Instructions

Syllabus

GRIT

Bulletin Board

ITLABS Submission

 

CSCI4041 Home

 
 

Printer-friendly version

 

CSci 4041: Algorithms and Data Structures
Spring 2007 Course Summary


Instructor:

See me first for general questions about lecture material!

William Schuler (schuler at cs.umn.edu) -- please type '4041' in subject
Office: 5-225F EE/CSci Building, Ph: (612) 626-7502
Office Hours: 12:30-1pm Tues,Thus (after our class) + 2pm-3pm Tues (after the class that's after our class)

Teaching Assistants:

See us first for specific questions about assignments and grading!

Tim Miller (tmill at cs.umn.edu)
Office Hours: Wednesday 2:15 PM - 3:15 PM, Friday 11:00 AM - 12:00 PM EE/CS 2-209

Shaonan Tian (tian at cs.umn.edu)
Office Hours: Wednesday 9:00 AM - 10:00 AM , Friday 10:00 AM - 11:00 AM EE/CS 2-209

Textbook:

"Introduction to Algorithms", Cormen, Leiserson, Rivest, Stein. 2nd Edition, McGraw Hill, 2001

Web site:

http://www-users.itlabs.umn.edu/classes/Spring-2007/csci4041/

Course Time and Location:

  • Lecture : T,Th, 11:15 A.M. - 12:30 P.M. EE/CSci 3-230
  • Discussion (002): W 11:15 A.M. - 12:05 P.M. EE/CSCI 3-115
  • Discussion (003): W 12:20 P.M. - 1:10 P.M. EE/CSCI 3-115
  • Discussion (004): W 1:25 P.M. - 2:15 P.M AmundH 162.

Course Schedule

Wk Tuesday Thursday Friday Reading
1 1/16 Course introduction, Correctness and complexity of iterative algorithms (insertion sort) 1/18 Correctness and complexity of recursive algorithms (merge sort) 1/19 Homework 0 due - Solution Chapters 2,3
2 1/23 Trees, Heaps (heapsort) 1/25 Complexity of tree operations (heapsort), Priority queues   Chapter 6
3 1/30 Average case complexity (quicksort) 2/1 Lower Bounds on Sorting 2/2 Homework 1 due - Homework 1 solutions Chapters 7,8
4 2/6 Linear time sorting algorithms, counting sort, radix sort 2/8 Bucket sort   Chapter 8
5 2/13 Hashing with chaining 2/15 Hashing with open addressing 2/16 Programming project 1 due - Data - Solution Chapter 11
6 2/20 Binary Search Trees (BST insert, delete) 2/22 Binary Search Trees complexity   Chapter 12
7 2/27 Red-Black Trees (RBT insert) 3/1 Red-Black Trees correctness 3/2 Homework 2 due - Solution Chapter 13
8 3/6 Review (study guide) 3/8 Midterm exam    
- 3/13 No class; spring break 3/15 No class; spring break    
9 3/20 Dynamic Programming (fastest way) 3/22 Dynamic Programming: string compare   Chapter 15
10 3/27 Dynamic Programming: tree search given string (matrix chain multiply) 3/29 Limits of Dynamic Programming   Chapter 15
11 4/3 Greedy algorithms 4/5 Greedy algorithms continued 4/6 Programming project 2 due - Sample input - Sample output - Solution Chapter 16
12 4/10 Elementary graph algorithms (BFS, DFS) 4/12 Elementary graph algorithms continued   Chapter 22
13 4/17 Minimum Spanning Trees (Kruskal, Prim) 4/19 Single Source Shortest Paths (Bellman-Ford, DAG, Dijkstra)   Chapters 23, 24
14 4/24 All-Pairs Shortest Paths (slow apsp) 4/26 All-Pairs Shortest Paths (Floyd-Warshall) 4/27 Homework 3 due - Solutions Chapter 25
15 5/1 Other Graph Algos 5/3 Review    
Finals 5/8 Final exam 8:00 A.M. - Study guide      

Course Evaluation:

There will be three (3) homework assignments. Homework solutions will be posted shortly after the due date, so due dates for the homeworks are strict: All homeworks must be received prior to their deadline in order to receive credit. There will be no partial credit for late homeworks.

There are going to be two (2) programming assignments. These assignments can be completed in either C/C++ or Java.

There is going to be one midterm exam. The date of the exam will be announced in class and posted to the announcements page. It will be CLOSED book and CLOSED notes.

There will be one final exam held from 8:00am - 10:00am Tuesday, May 8, in the same room as the lecture. It will be closed book and closed notes.

Grading:

Homeworks 25%
Programming Assignments 25%
Midterm 20%
Final Exam 30%

Incompletes (or make up exams) will in general not be given. These options will be considered only when a provably serious family or personal emergency arises, proof is presented, and the student has already completed all but a small portion of the work.


Scholastic Conduct

You must do your homeworks, programming assignments, and examinations yourself, ON YOUR OWN.

Copying another's work, or allowing (even negligently) others to copy your work, or possession of electronic computing devices in the testing area, is cheating and grounds for penalties according to the IT Bulletin.

 
The University of Minnesota is an equal opportunity educator and employer.
Algorithms and Data Structures