CMPU-102: Computer Science II

Spring, 1998

Instructors

Section 51 (M,T 4:30-5:45): Chris Welty. Office: OLB 117. VAX Email: CHWELTY. Sun Email: weltyc. Phone: x5992.
Section 52 (T,Th 1:30-2:45): Brad Richards. Office: OLB 124. VAX Email: RICHARDS. Sun Email: richards. Phone: x7497.

Coaching:

The coaching schedule is on-line

Contents

Announcements/Messages
Texts & Resources
Background
Grading
Schedule
Class Notes and Examples

Messages and Announcements

5/12: For your future reference, the complete STL reference manual is now on line. See the Texts & Resources section below.
5/5: Dont miss today's Asprey Lecture in Computer Science.
5/4: There will be a review for the final Monday at 4:30 in the classroom.
4/27: The unix systems in the CS Dept. will be unavailable the mornings of May 6th and 7th (before 9AM).
4/26: The final is Wed. May 12, 5PM. Chris' section: RH 303; Brad's section: RH307.
4/19: The final project and lab #10 have been assigned. See below.
4/15: Graded versions of HW7 Part 1 are available. Stop by.
4/7: Changes were made to the description for Homework 7, and the sample code is available.
4/6: Homework #7 is available below.
3/23: The sixth lab and the sixth homework are available below. Note the addition of a new web resource on list templates below.
2/23: The fifth lab has been assigned.
2/8: The fourth homework and the third lab have been assigned. See below.
2/2: The third homework and the second lab have been assigned. See below.
2/1: The submit102 program is now working for all sections.
1/26: A reference for useful unix commands has been added. See below.
1/26: Note the grading criteria have been slightly altered. See below.
1/26: Make sure you change your password immediately.
1/25: The second homework has been assigned.
1/25: The first homework has been assigned. This assignment should be completed in lab.
1/21: Both books are now in the bookstore.

Texts & other resources

  • Dale, Nell, Weems, Chip, and Headington, Mark. Programming in C++. Jones and Bartlett, 1998. [C++]
    You can order this book directly from Amazon.Com: hardcover.
  • Dale, Nell. C++ Plus Data Structures. Jones and Bartlett, 1999. [DS]
    You can order this book directly from Amazon.Com: hardcover. (Note that we don't need this book until the end of February).
  • A reference for useful Unix commands
  • A description of the C++ STL list template class
  • The complete on-line STL reference.
  • Schedule

    Week of Monday (51)/Tuesday (52) Tuesday (51)/Thursday (52) Assignment Lab
    TopicReading TopicReading
    1/18 Welcome Lab IntroC++ 1 Homework & Lab 1
    1/25 C++ Syntax
    Arithmetic Expressions
    C++ 2-3 Simple I/OC++ 4 Homework 2
    2/1 Flow ControlC++ 5 LoopingC++ 6 Homework 3 Lab 2
    2/8 File I/O
    Functions
    C++ 4,7 Scope
    Flow Control
    C++ 8,9 Homework 4 Lab 3
    2/15 C++ Data TypesC++ 10 C++ ArraysC++ 11 Homework 5 Lab 4
    2/22 C++ StringsC++ 12 Data AbstractionDS 2 Lab 5
    3/1 Midterm ReviewC++ 1-12 Data EncapsulationDS 2 No assignment or lab this week
    3/8 Spring Break
    3/15
    3/22 ListsDS 3 Stacks and QueuesDS 4 Homework 6 Lab 6
    3/29 PointersDS 4 Linked ListsDS 5,6 Lab 7
    4/5 Linked Stacks & QueuesDS 5 Generics and RecursionDS 4,7 Homework 7 Lab 8
    4/12 Iterators Binary TreesDS 8 Lab 9
    4/19 TreesDS 8,9 GraphsDS 9 Final Project Lab 10
    4/26 SortingDS 10 SearchingDS 10
    5/3 Last ClassDS 1-10 Study Break
    5/10 Finals Week

    Grading

    37%: Homework (Programming Assignments)
    13%: Final Project
    5%: Labs
    20%: Midterm Exam
    25%: Final Exam

    Homework and assignments are due at the start of class on the due dates. Late homework will be charged a 10% penalty per day, with a weekend counting as one day.

    Note: In an effort to reduce paper consumption, all assignments and other handouts will be available exclusively on the web page (http://www.cs.vassar.edu/courses/cs102). If you need hardcopy you can print these pages from a web browser. The syllabus is the only handout you will receive for this course. All projects will be submitted on-line.

    Class Notes and Examples

    Many of the examples we work on in class are and will be available via the web. They can be found, for section 51, in the directory ~cs102/public_html/Chris/examples/, and for section 52, in the directory ~cs102/public_html/Brad/Examples/

    Feel free to click on the links above to see a list of all the files, or access it via Unix.

    Background

    This course introduces the data structures and algorithms that are the building blocks of most computer programs. The language used is C++, an imperative programming language (as opposed to the functional language used in CS101). Most of the [C++] text will be covered as an introduction to the language, before moving on to the discussion of data structures and algorithms in the [DS] text.

    All programming will be done on Sun Sparstations, located within the Asprey Lab of the Computer Science Dept. These powerful state-of-the-art workstations run the UNIX Operating System and X-Windows. A formal laboratory session will be held the first week to provide an introduction to this computing environment.

    This course builds progressively on previously covered material. Therefore it is essential to attend all classes and keep up with the reading and the assignments. You are expected to do the assigned reading for a class before that class.

    There will be a number of programming assignments in the course, each involving the design of an algorithm or data-structure, and its implementation in C++. The assignments play a crucial role in understanding the course material, and you are expected to do all of them. Students must work on the assignments individually, though coaches will be available for general consultation and assistance.

    Assignment submission is on-line. You may submit your homeworks as many times as you like, however only the last submission you make will be graded. Any others will be disposed of.

    Collaboration with other students is, in principle, encouraged, however what you submit must be your own work. Copying or sharing code is considered cheating and will result in a zero grade.