CSCI 132
    Introduction to Data Structures
    College of the Holy Cross, Spring 2014

    Home | | Syllabus | | Assignments | | Lecture Notes


    Course Web Page
    If you are viewing this on the web, you're here! Otherwise, find this page and other course information at http://mathcs.holycross.edu/~csci132


    Instructor
    Constance Royden
    Office: Haberlin 308
    Extension: 2472
    Email: croyden@holycross.edu
    Office Hours: Tues. 10 a.m. - 11 a.m., Wed. 1 - 4 p.m., or by appointment.


    Lecture and Lab times

    Lectures: Mon, Wed, Fri 11:00 - 11:50 a.m.

    Labs:
    Section 10B: Tues 12:00 - 2:00 p.m.
    Section 10A: Tues 2:00 - 4:00 p.m.


    Course description:
    Now that you know some of the basic tools of computer programming, this course will teach you to use those tools in an effective way. There are four main ideas we will be addressing in this course:
    1. Data Abstraction: In order to build programs that solve complex problems, it is important to specify the properties and behaviors of certain parts of the program independent of the implementation. We will learn about Abstract Data Types to think about specification and manipulation of these components of code.
    2. Modularity: Each piece of a program is much more useful if it can be combined with multiple other program pieces in a modular fashion. We will learn how to build program modules that can be used and re-used in different programs.
    3. Algorithmic complexity: Some solutions to problems are better than others in terms of their efficiency. Some have efficient use of memory space; others run more quickly. We will learn some tools to evaluate the efficiency of different algorithms.
    4. Standard Tools We will learn some of the standard tools that should be a part of every programmer's toolkit. These include Stacks, Queues, Searching & Sorting algorithms, Tables and Trees.


    Prerequisites
    CSCI 131 or permission of the instructor. You should be comfortable with the basics of C++ programming.


    Textbook
    Required: Data Structures and Program Design in C++, by Robert Kruse and Alexander Ryba, Prentice Hall, 1999.


    Course Requirements
    There will be weekly lab assignments to be completed in the 2 hour lab each week. Attendance at the labs is mandatory. There will be weekly or bi-weekly homework assignments, which will require programming in C++. There will be two midterm exams, and a final exam.


    Late Assignment Policy
    All assignments are due in class on the due date. Late assignments will be accepted, with a penalty of 10% off the grade for each day after the due date. Some assignments will have stricter late penalties if they are due close to an examination date, so that solutions may be posted before the exam.


    Collaboration Policy
    Collaboration on assignments is acceptable, although you must write the code for your programs entirely by yourself. You must also acknowledge the people you worked with on an assignment. If your program includes code that you obtained from another source, please acknowledge it. Specifically:

    • You must compose your own solution to each assignment. You may discuss strategies for approaching the programming assignments with your classmates and you may receive general debugging advice from them, but you must write all your own code.
    • You may not write a program together and turn in two copies of the same code.
    • You may not copy another student's code.
    • If you work with another student, you must acknowledge that student on your assignment.
    • You may borrow code from textbooks or from lecture material, as long as you cite your sources.
    • You must turn in a discussion log indicating who you worked with, what you discussed, and when, with every assignment.
    • Please refer to the math and CS department honor code policy


    Exams:
    Midterms:
    There will be two midterm exams held during the lab session on the following dates:

      Exam 1: Tuesday, February 25
      Exam 2: Tuesday, April 8
    Please mark your calendars now.

    Final:
    The final exam will be held at the scheduled time during finals week.

      Final Exam: Monday, May 12, 8:00 - 10:30 a.m.


    Final Grade:
    The final grade will be computed as follows:

      Participation5%
      Labs10%
      Homework25%
      Exam 120%
      Exam 220%
      Final Exam20%

    Home | | Syllabus | | Assignments | | Lecture Notes


    Constance Royden--croyden@mathcs.holycross.edu
    Computer Science 132--Data Structures
    Last Modified: January 20, 2014
    Page Expires: January 14, 2015