Data Structures (COSC 130)

Fall, 2008

pages.central.edu/emp/fyfes/courses/datastructures/



Course Resources:

Textbook: To be determined

Web Sites:


INSTRUCTOR: Stephen Fyfe OFFICE: VSC 231
BOX # 039 PHONE: 5305
HOME 628-9955
EMAIL: fyfes@central.edu
OFFICE HOURS: MWF: 9:00 - 10:00 TR: 9:30 - 11:00
Other times by appointment, or just stop in

COURSE DESCRIPTION: Studies the implementation of common data structures such as stacks, queues, linked lists, and trees. Intermediate programming topics such as recursion, analysis of algorithms, and other topics will be introduced. Students will spend a significant amount of time out of class designing, writing, collaborating on, and debugging classes and programs.


Course Goals

By completing this course, students will:

  1. Understand the use and implementation of standard data structures: arrays, linked lists, stacks, queues, and trees.
  2. Understand tradeoffs between different data structures and different implementations.
  3. Develop facility in programming.
  4. Develop problem-solving ability.
  5. Be familiar with the concepts of space and time complexity with asymptotic notation.

COURSE PROCEDURES: This course will mainly utilize lecture and in-class hands-on work. A typical topic will begin with some lecture over the material and will include some in-class programming to apply the material being presented. This in-class work may or may not be turned in. Most topics will also generally include some out of class homework assignments. Several larger out of class programming assignments that can be completed in pairs will also be given.

Unless stated otherwise, ALL programming completed for this class should follow these programming guidelines.

Academic Honesty. Collaboration in Computer Science, as in almost any field, is very important. However, it is also important that individual students learn the material. When developing a program it is often beneficial to talk with others to get their input, however you or your group should not be turning in the work of another individual or group. It is acceptable to look at another individuals code if you are assisting them. You should not, however, let someone look at your code in order to show them how you did it, or to give them specific instructions on how they should change their code (other than to find syntactical errors).

Plagiarism and cheating of any form are serious offenses and may result in an F for the assignment, the course, or expulsion from the college. The details of Central's Academic Integrity policy are found in the Student Handbook, on the web. A copy will be sent to you via e-mail during the first week of the semester. It is your responsibility to read and understand the contents of that policy before you submit work to be graded. Questions regarding the policies and enforcement of the policies may be addressed to me during class or during office hours.


GRADING PROCEDURES: Students will be evaluated on their understanding of the concepts being covered in class, and their ability to apply those concepts in homework problems and programming projects.

Many homework assignments and short programming assignments (programs that require 1 to 2 days to complete) will be given. In addition, three group programming projects (programs that will take 2 - 3 weeks to complete) will be assigned. Three tests will be given throughout the semester in addition to the comprehensive final exam.

The final grade will be determined by the following distribution:

Homework and other in-class assignments 20%
Paired Programming Projects 35%
3 tests 30%
Final Exam 15%

and the following TENTATIVE scale will be used to determine the final grade

94 - 100 A 73 - 76 C
90 - 93 A- 70 - 72 C-
87 - 89 B+ 65 - 69 D+
83 - 86 B 60 - 65 D
80 - 82 B- 55 - 59 D-
77 - 79 C+ 00 - 54 F

Written homework and programming assignments will be due by 5:00 pm on the day it is due. Late homework will be accepted, but will lose points at the discretion of the instructor. Work that has been turned in after the assignment or project has been graded and returned will receive a more severe late penalty.

Attendance. While attendance is not directly included in the grading, it has been the experience of the instructor that students who miss more class earn lower grades. Students who miss class regularly will be notified through the Academic alert system.

Mock Trial participants, choir tour participants, athletes, and others who must miss a class for participating in a college sanctioned event are expected to notify me in advance and complete work including tests in advance of the absence. It is the student's responsibility to communicate with me in advance regarding their absences and determine a schedule for make up work.

Disabilities. Central College abides by interpretations of the Americans with Disabilities Act and Section 504 of the Rehabilitation Act of 1973 that stipulates no student shall be denied the benefits of an education "solely by reason of a handicap." Disabilities covered by law include, but are not limited to, learning disabilities, hearing, sight, or mobility impairments, and other health related impairments. If you have a documented disability that may have some impact on your work in this class for which you may require accommodations, please see me and Nancy Kroese, Director of Student Support Services and Disabilities Services Coordinator, (x 5247) during the first two weeks of the semester so that such accommodations may be arranged.


COURSE SCHEDULE: The following is a TENTATIVE list of topics for the course and a schedule for the first few weeks of class. Changes may be made during the semester as needed.

List of topics:

Week Topic Chapter/Assignment Paired Project
1 Python Review
OO Concepts: OOP introduction and Python classes
Data Structures vs. Algorithms
Chapter 8
Review Program
2 Object Oriented Concepts: Building a program with classes
Object Interaction
Chapter 8
Dice/Player program
3 Object Oriented Concepts: GUIs and Events
  • Tkinter Library
Chapter 9 War data classes
4 Object Oriented Concepts: Using libraries - Pygame and Numpy
Basic Data structures and Collections: Two dimensional arrays
Chapter 13 War GUI and Game Logic
Manipulating Sound Arrays
5 Basic Data Structures and collections: Linked Lists and nodes
Analysis: Linked Lists versus arrays
TEST 1
6 Linked Lists implementation Chapter 16 Linked Lists homework
7 Linked Lists
  • testing and using
Analysis: Searching and Sorting a list
Chapter 16
Chapter 11
Collage Paired Project
8 List algorithms: sorting and searching
Analysis: Big O notation
Chapter 11 Searching and Sorting HW
9 Data Structures: Stacks and Queues
10 Data Structures: Stacks and Queues
Algorithms: Recursion
Stack and Queue HW
11 Algorithms: Recursion
TEST 2
12 Data Structures: Dictionaries and Hashes Boggle Project
13 Data Structures: Trees
14 Data Structures: Trees
15 Data Structures: Graphs
Algorithms: Pattern Matching
TEST 3
16 Data Structures: Graphs
Algorithms: Pattern Matching
17 FINAL EXAM