Instructor: | Tom Bennet | ||
Office: | 302 MCC | ||
Phone: | 925-3815 | ||
Email: | bennet@mc.edu | ||
Text: | Fundamentals of Data Structures in Pascal, by Horowitz and Sahni | ||
Web Page: | The 402 home page will contain practice problems, examples, assignments, and information about the course. | ||
Prerequisite: CS 216
A study of data structures and algorithms designed for their implementation. Lists, arrays, stacks, deques, queues, graphs, trees, tree structures, and various search and sorting techniques will be covered.
Data structures and the algorithms which use and manipulate them are at the heart of Computer Science. This course continues the study of this received wisdom of computing begun in CS 216. In this course, we consider additional data structures and algorithms, as well as improvements to some of those studied in CS 216.
Grading
Points in this course will be assigned as follows:
Activity | Points | ||
---|---|---|---|
Quizzes (8 @ 10) | 80 | ||
Programming Projects | 400 | ||
Regular exams (2 @ 100) | 200 | ||
Comprehensive Final | 200 | ||
TOTAL | 880 | ||
There will be four to six programming assignments of varying difficulty, one regular exam, a comprehensive final exam, and eight ten-point quizzes. The regular exam will be near the middle of October. The final will be on December 14 at 8:00 AM. The last day to drop this course is October 29.
Graduate students must complete an additional special project approved by the instructor. This project will study some additional data structure(s), and can take the form of a program, a theoretical analysis, or a research paper. Graduate students should meet with the instructor and choose a project during the first two weeks of the semester. The project will be worth 100 points, giving graduate students a total of 980 points possible.
Final grades will be assigned based on the percentage of points earned:
Undergraduates:
Points | Percent | Grade | |||
---|---|---|---|---|---|
792880 | 90100% | A | |||
704791 | 8089% | B | |||
616703 | 7079% | C | |||
484615 | 55-69% | D | |||
0483 | 0-54% | F | |||
Graduates:
Points | Percent | Grade | |||
---|---|---|---|---|---|
882980 | 90100% | A | |||
784881 | 8089% | B | |||
686783 | 7079% | C | |||
539685 | 55-69% | D | |||
0538 | 0-54% | F | |||
The semester point total may vary due to unforeseen circumstances. Any variance will be small. Final grades will be based on these same percentages of the actual total.
Projects
There is no formal lab section for this course; students are expected to complete programming projects outside of class. Students may program in Pascal, C, C++, Java, or, with the instructor's approval, any other programming language.
Projects should be handed in on time, and late projects are charged 10 points for each day late. However, each student has five free late days which may be spent on any programming project in any combination. Free late days are not transferable, and expire at start of the final exam.
Topics
Intro, Review of Data Structures | |||
Graphs. | Ch. 6 | ||
Sorting. | Ch. 7 | ||
Hashing. | Ch. 8 | ||
Heaps. | Ch. 9 | ||
Binary Search Trees and Balanced Trees. | Sec. 5.5, Sec. 10.110.6 | ||
Skip Lists. | Readings. | ||
Other Tree-Based Structures. | Sec. 5.8, 5.9, 5.10, 9.1, 9.2, 10.7, 10.8 | ||
Mississippi College class attendance policies as described on page 43 of the college catalog will be enforced. Absences may be excused for illness or other appropriate cause. Exams missed due to circumstances beyond the student's control may be made up at a mutually agreeable time and place. Adequate documentation of the cause of an absence may be required.
Academic Honesty
Mississippi College policies regarding the integrity of academic work described on page 46 of the college catalog will be enforced. Students are expected to do their own work. Penalties for violation range from low grades to dismissal. On programming assignments, this rule does not forbid a general discussion of approaches to be taken, or helping another student search for the cause of a specific bug. Broader assistance will generally be in violation of policy. If you have a question about applying this rule to your situation, simply ask your instructor. Real situations please; no hypotheticals.