1/19/05: /cs302 (the directory for the class) is currently only mounted on snoopy. I will have George make the directoy available from the peanuts machines; however, for right now, please log into snoopy to copy class material.
2/6/05: The date of the first midterm has been moved to February 18.
2/20/05: Syllabus has been updated to reflect the current state of the class.
2/25/05: Programming assignment 3 has been posted in draft form. Only the last part has not been finalized. I plan to give you more instructions on how exactly you will gather the data.
4/3/05: PassageProcessor.cpp contained a bug in the retrieval. All one word queries find no relevant documents. The problem is now fixed.
5/8/05: Office Hours during finals: Monday, May 9 from 11 to 2.
Instructor: Dr. Dawn Lawrie
Office: DS 125b
Work Phone: (410)617-2140
Office Hours: M 2-4, W 12-2, or by appointment
e-mail: lawrie<at>cs<dot>loyola<dot>edu
Course Home Page: http://www.cs.loyola.edu/~lawrie/CS302/S05/index.html
Class Meeting: Lecture MWF 9-9:50 in KH 006
Prerequisites: CS 301
Required Text: Sedgewick, Robert Algorithms in C++, Parts 1-5, Addison-Wesley: Boston, MA, 1998.
Supplemental Reference: Kernighan and Ritchie, The C Programming Language, Prentice-Hall, 1988.
Catalog Description:
A continuation of CS301. More advanced data structures are designed, analyzed, and created using an object-oriented language. File structure, access, and processing are studied.* More UNIX-based tools are introduced.
* This is course will spend less time studying file structures then in past versions of this class. (You will not be doing the buffer problem.) Instead we will focus on graphs and their algorithms.
Specific Educational Objectives of the Course:
At the completion of the course, the student will:
Conduct of the Course:
"The Honor Code states that all students of the Loyola Community have been equally entrusted by their peers to conduct themselves honestly on all academic assignments.
The students of this College understand that having collective and individual responsibility for the ethical welfare of their peers exemplifies a commitment to the community. Students who submit materials that are the products of their own minds demonstrate respect for themselves and the community in which they study.
All outside resources or information should be clearly acknowledged. If there is any doubt or question regarding the use and documentation of outside sources for academic assignments, your instructor should be consulted. Any violations of the Honor Code will be handled by the Honor Council."
The Honor Code as is pertains to this class:
In general, any copying of an assignment, whether electronically or by hand is considered plagiarism. Students submitting non-trivial projects with identical structure will be considered to have acted dishonestly. Such students may be referred to the Honor Council for disciplinary action. At the very least, two or more students presenting assignments identical in all important aspects will share the points from a single grade.
Student Athletes:
If you are a student athlete, please provide me with your travel and
game schedule indicating when you will need to miss class to
participate in athletic events. While travel for athletics is an
excused absence, you will need to make up any missed work.
Learning Disabilities:
To request academic accommodations due to a disability, please contact
the Disability Support Services Office at (410)617-2062. If you have
a letter from their office indicating that you have a disability which
requires academic accommodations, please present the letter to me so
we can discuss the accommodations that you might need in this class.
Grading:
Final Grade Distribution:
Final letter grades will be no worse than the following table.
| A | A- | B+ | B | B- | C+ | C | C- | D+ | D |
|---|---|---|---|---|---|---|---|---|---|
| 93% | 90% | 87% | 83% | 80% | 77% | 73% | 70% | 67% | 60% |
| Class No. | Date | Topic | Reading | Assignment Due |
| 1 | 1/19 | Introduction to the course Going back in time: C | Syllabus | |
| 2 | 1/21 | C language: memory allocation | ||
| 3 | 1/24 | C and C++ file processing | ||
| 4 | 1/26 | Binary Files | ||
| 5 | 1/28 | Pointers | ||
| 6 | 1/31 | More Pointers | PA1 due | |
| 7 | 2/2 | Function Pointers | ||
| 8 | 2/4 | Memory Deallocation | ||
| 9 | 2/7 | Templates and Object Pointers | ||
| 10 | 2/9 | Hash Functions | Chapter 14, Section 1 | |
| 11 | 2/11 | Resolving Collisions in Hash Tables | Chapter 14, Sections 2-6 | |
| 12 | 2/14 | Introduction to Graphs | Chapter 17, Sections 1-2 | |
| 13 | 2/16 | Graph Representations | Chapter 17, Sections 3-6 | PA2 due |
| 14 | 2/18 | Exam 1 | ||
| 15 | 2/21 | Introduction to Graph Algorithms | Chapter 17, Sections 7-8 | |
| 16 | 2/23 | Graph ADT | ||
| 17 | 2/25 | Graph ADT (Adjacency Matrix) | ||
| 18 | 2/28 | Graph ADT (Adjacency Lists) | ||
| 19 | 3/2 | Graph Generators | ||
| 20 | 3/4 | Shell Scripts | ||
| 21 | 3/14 | Working with Scripts | ||
| 22 | 3/16 | Non-trivial Graph Algorithms | PA3 due | |
| 23 | 3/18 | Depth First Search | ||
| 24 | 3/21 | DFS Applications | ||
| 25 | 3/23 | DFS Applications and BFS | ||
| 26 | 3/30 | Generalized Search and Graph Analysis | ||
| 27 | 4/1 | Exam 2 | ||
| 28 | 4/4 | Minimum Spanning Trees | Reading: 20-20.1 | |
| 29 | 4/6 | Underlying Principles of MST Algorithms | 20.2-20.3 | PA 4 due |
| 30 | 4/8 | Kruskal's and Boruvka's Algorithms | 20.4-20.5 | |
| 31 | 4/11 | Comparisons | 20.6-20.7 | |
| 32 | 4/13 | Digraphs and Connectivity | 19-19.1 | |
| 33 | 4/15 | DFS in Digraphs | 19.2 | |
| 34 | 4/18 | Reachability and Tranisitive Closure | 19.3 | |
| 35 | 4/20 | DAGS and Topological Sorting | 19.5-19.6 | PA 5 due |
| 36 | 4/22 | Shortest Paths | 21-21.1 | |
| 37 | 4/25 | Dijkstra's Algorithms | 21.2 | |
| 38 | 4/27 | All pairs-shortest path | 21.3 | |
| 39 | 4/30 | B+ Tress | 16-16.3 | |
| 40 | 5/2 | Extendible Hashing | 16.4 |
Exams: Friday, February 18th and Friday, April 1st.
FINAL EXAM: Wednesday, May 11th at 9am Room KH006. *If you want to change the date, all students in the class must sign a paper that includes the new day and time. No requests will be considered after the Easter break.