Data Structures (CS2) Syllabus
    Computer Science COMP 116



    [Text] [Pedagogy] [Topics] [Your Grade] [Honor Code] [Tips 4 U]

    Instructor: Mark LeBlanc
    Mark's Web Page -- Email
    Office: Science Center[B103]
    Office Hours:
            Mon 2-4pm
            Tue 8:30-11:30am by appt.
            Fri 10:30-11:30am
    Phone: 286-3970
    Class Meeting Times:
        MWF 9:30-10:20pm, A102
        Tue 3:30-5:20pm, A102

    Texts:
    Data Abstraction and Structures Using C++, by Headington & Riley, DC Heath & Co., 1994.

    Content: This course is the second half of a year-long introduction to computer science for majors and minors. The content includes an introduction to the theoretical and practical aspects of data structures. Emphasis is on abstract data types and the use of the C++ class mechanism to support elementary-level object-oriented implementations. Examples include stacks, queues, linked lists, binary search trees, and general trees and their applications. Pointers, memory management, and recursion are discussed in length and used in some implementations.

    Pedagogy: Whereas the first half of the year emphasized the elements of "fail safe" software including an introduction to numerical methods, this course exposes students to the theory of and techniques for "structuring data." Moving students to a point where they can appreciate object-oriented programming (OOP) is one underlying goal in the course, including of course the reasons for and methods toward encapsulation, information hiding and reuse. Following practice with multiple data structures from a client perspective, students spend the second half of the course "under the hood" as they learn to implement their own classes. A second goal of the course is to continue the emphasis on "program correctness." Significant portions of time are spent on learning how to write specifications and documentation, including assertions, pre- and post-conditions, and loop invariants.


    Your Grade:
    Things to do Grading Percents Frequency
    12 Labs 10% weekly
    5 Programs 40% (see topics)
    8 Quizzes 30% (see topics)
    a few homeworks 05% (see topics)
    Final Exam 15% Tuesday, May 7, 2pm


    Any work (labs or programs) handed in late will not be accepted. All electronic submissions are to be dropped to the appropriate dropbox. In addition, for all programming assignments, a laser-printed, stapled hardcopy of your program must be handed in to the instructor by the morning following the due date. Except for medical/serious cases, there are no make-up's for missed quizzes.




    Topics: (see Day Timer for exact order of topics)
    Difficulty
    Level
    Text
    Topic
    ********* Ch. 1 Control Abstraction
    A good /* comment */ is worth a 1000 lines of code (well maybe not 1000)
    *** Ch. 5 C++ Records (structs)
    Going back to C struct me as funny ...., you?
    **** Ch. 2 Modules and Information Hiding
    Those .h files ain't for nothin'
    ********* Ch. 3 Data Abstraction Through Classes
    I hope you can hide that behavior
    ********** Ch. 4 Intro to Data Structures
    I'd wait in a queue rather than a stack any day
    ************** Ch. 6 Recursion
    Play it again, Sam /it again, Sam/again, Sam/ /Sam /nil
    ************* Ch. 7 Pointers and Dynamic Data
    Giving away your address is serious business
    ******** Ch. 8 Linked Lists
    Did you ever see a parade of elephants, you know, trunks holding tails?
    ********* Ch. 13 Trees
    Seeing the forest and the trees
    Exact pages to be assigned in lecture (see topics).



    Honor Code Revisited: It goes without saying that all submitted work will be the student's own, in keeping with the Wheaton Honor Code. For labs, you may get help from fellow classmates, but remember that all submitted work must be your own. For homework, the programs must be your own from beginning to end. On the quizzes, you may not get help from anyone but the instructor.

    Tips 4 U

    HOMEWORK
    (0)It is expected that you spend at least 2 hours on reading and practice problems for every 50 minutes of lecture. This computes to at least 6 hours of work in the Data Structures text per week. This should be done throughout the semester and not just when studying for quizzes. The material is cumulative in a big way; for example, week 5 depends heavily on weeks 1 through 4.
    (1) I t is expected that you spend at least 6 hours per week on your current programming assignment. WARNING: Programmers typically underestimate the time it takes to complete a software project; 6 hours per week on your programming assignment may be one of those "underestimations."

    LABS
    (0) The labs are a critical part of the course. In almost all cases, the current lab will be preparing you for the current programming assignment. That is, if you complete and understand the lab, you should be well on your way to a solution for the programming assignment.
    (1) In order to best grasp the material in some labs, I strongly suggest that you completely redo any labs that you find difficult. (Read that last sentence again, unless of course you've already reread it once).

    QUIZZES
    Rather than exams spaced evenly over the semester, you will be quizzed on a (near) weekly basis. Each quiz may address material that has been assigned in the text, but not yet presented by the instructor. NOTE: you'll have to have read the material and practice the sample problems BEFORE coming to class to take the quiz. Quizzes start at the beginning of a lecture (see schedule) and last approximately 10-15 minutes. After some quizzes, immediate (peer) grading will be followed by a lecture/discussion which will focus on the concepts in the quiz.

    (0)There will be no makeups, nor will the lowest quiz be dropped. If you are an athlete and/or you have a conflict with a quiz date, please see me within the first week of classes.
    (1)When studying for quizzes, have someone pick problems from the notes and text, mix them up, and present them to you as if you were taking a quiz (not telling you from what section a problem comes). While practicing, do not peek at the textbook or an earlier solution. NOTE: its easy to "read" code; its much more difficulty to "write" code from scratch. Quizzes will sometimes ask you to "write" code from scratch; practice ownership of the concepts!

    HELP
    I have listed my office hours on the syllabus. As you'll soon know, I am often available at other times. Scheduling a "quick" appointment is best handled when you reach me by email or phone: for example, "Professor LeBlanc, I'm really stuck. Can I stop by sometime in the next hour or so?"


    Please don't wait too long before you see me; a quick chat in my office can often clear things up.
    I'm here alot...


        Maintained by: Mark LeBlanc
        Dept of Math & Computer Science
        Wheaton College, Norton, Massachusetts