CSCI 220 - Advanced Data and File Structures - Spring 2012

Instructor   Dr. Bonnie McVey

Office: Cofrin 323 Phone: 920.403.3471
Office Hours: M 1:30-3, W 1:30-2:30, ThF 10-11
                         and by appointment
Email: bonnie.mcvey@snc.edu
Course Meetings
Lecture: MWF, 11 - 12:10pm, Cofrin 203 Lab:T, 11 - 1pm, Cofrin 112
Required Text
Data Structures and Algorithms in C++, 3rd edition, Adam Drozdek, Thomson Course Technology, 2005. (Sample source code at: Drozdek)
Course Documents
Check website http://home.snc.edu/bonnie.mcvey/csci220/ often for course news, assignments, hints, corrections, solutions, etc.
Course Description (Catalog)
A continuation of CSCI 205, this lecture and laboratory course focuses on more advanced data structures and on the analysis of their performance. After a review of pointers, linked lists, stacks and recursion, the following topics and their associated algorithms are studied in detail: multi-linked lists, simulating recursion, queues, trees and graphs. Sorting and searching algorithms are also studied and analyzed. Some file structures such as B-trees and hash files are studied. As in CSCI 205, formal closed labs are used for experimentation, to present new algorithms and concepts, to analyze and compare algorithms, and to reinforce lecture material. Homework and lab assignments also have students apply their knowledge to new problems and produce solutions. Students work alone and within teams to develop, enhance and analyze various algorithms. Prerequisite: CSCI 205 and either CSCI 150 or MATH 250.
Grading
Midterm Exams (3) 50% of course grade
Comprehensive Final Exam 15% of course grade
Labs, Programming Assignments, and Homework 35% of course grade
Cutoffs: 93 - A, 90 - AB, 83 - B, 80 - BC, 70 - C, 68 - CD, 60 - D
NOTE: If the average of your four exam scores is below 65, then your Labs, Assignments and Homework will not be used to increase your course grade. Additionally, anyone not taking the final exam will receive an F for the course.

Policies

  1. Attendance is expected. When possible, inform me before class or lab that you will not be there. If you miss a class, you are responsible for all information from the class. You may miss one lab and still hand-in the lab report for credit. If you leave a lab meeting prior to the end of lab time without first completing the lab, you will be considered absent from the lab.
  2. Lab reports will be turned in at the beginning of lab on Tuesday of each week. Homework assignments, most of which will be assigned as part of each lab, are also due at the beginning of lab on Tuesday of each week. You must include the problem statement with its solution. A forgotten assignment (an assignment is not forgotten if you are not in class!) may be handed in within 30 minutes after class to my office.
  3. SNC ACADEMIC HONOR CODE (adapted from dcp) I actively enforce the Academic Honor Code. By your registration in this course, you agree to abide by the Academic Honor Code. All materials handed in for grading are subject to the code. Assignments MUST bear your signature after the label Honor Code Signature. It is understood that your signature means that you followed the SNC Academic Honor Code for that assignment. Any document that does not contain your signature is considered not submitted. Course work must be completed individually; discussion of topics, ideas and solutions is encouraged but be sure to write up your solutions individually. Below are some guidelines for following the honor code:
    1. No outside sources or references are allowed on exams given "in-class."
    2. Research papers, programs, homework, lab reports must fully document another's ideas and works.
    3. Programming and problem solving can be a social activity. Indeed, industry often demands that project teams collaborate. You may share your ideas on assignments, but you may not share program code or solution write-ups. For example, if Slick and Abby work together on part of an assignment, then both must acknowledge this in the assignment. If Abby asks Slick for help and Slick complies, then it is Slick's responsiblity to make sure that Abby understands the problem and its solution. It is Abby's responsibility to acknowledge Slick's assistance in the program documentation. Neither's grade will be affected.
    4. Students must do their own work on their own directory and memory. You are in violation of the Academic Honor Code if you share your own or copy another's assignment or parts of an assignment in any form (printed, screen, file, etc). Never leave your work on the disk drives of lab machines, forget to pick up your printouts, or leave unwanted printouts in public waste areas.
    5. Discussing written assignments with others is often a good experience since there are often many solutions to one problem, but again, the written report is an individual effort. Writing your solutions to the assignment yourself not only helps you more fully understand and but also keeps you from violating the SNC Academic Honor Code.
    6. If in doubt, don't!
  4. The use of cell phones and similar devices during class is prohibited. You may play music while working alone in lab but (1) its volume must be at a level that those around you cannot hear and (2) you must turn it off when I or the TA is talking to the class or speaking individually to you.

Other

In keeping with the St. Norbert College mission to help students develop their full potential, and in compliance with the American Disabilities Act, the College provides supportive services to students with disabilities. For enquiries and further details, please visit the Academic Support Services Office located in Todd Wehr Hall, Room 209, or contact Karen Goode-Bartolomew, Coordinator of Services to Students with Disabilities (Phone: 403-1326), or visit the website http://www.snc.edu/academicsupport/disabilities.html.

Important Dates (Exam dates are approximate.)

January 26 (Thursday) Drop/Add Deadline
February 21 Exam 1 (during lab)
March 12 - 16 Spring Break!
March 27/28 Exam 2
April 5 (Thursday) Last Day for Course Withdrawal
April 6 - 9 Easter Break (No Classes, Friday and Monday)
April 12 & 18 Advisement Days (No Classes, Thursday and Wednesday, resp)
April 24/25 Exam 3
May 6 Last day of class
Tuesday, May 8 Final Exam, 2:15 - 4:15pm

A Note from Me

I LOVE teaching this course! As a graduate student at Purdue, I had not taken a course in Data Structures before enrolling in an Algorithms course. What a mistake! Anyway, in this class we focus on learning new methods for storing data, large amounts of data. (If we only ever stored small amounts, there would be no need for this course!) There is much to learn and to do so we will write proofs, perform analysis, write code and draw lots of pictures!

Read your textbook, take good notes, ask questions in class and in office hours, work hard. I am prepared to help you succeed in this course but the choice to succeed is made by you. I am sincere when I say that I want you to visit me as often as you need to for I truly want to share with you my love for the elegance and power of Data Structures!

B. McVey