CMSC 214 Computer Science II Spring 2001

Instructors


Sections 030X, 040X Sections 010X, 020X, and 060X
Charles Lin Nelson Padua-Perez
1127 A. V. Williams 1129 A. V. Williams
301-405-2709 301-405-3355
clin@umd5.umd.edu nelsonp@wam.umd.edu

Description

Design and analysis of object-oriented programs. Implementation of structured programs using abstract data types, templates, and inheritance. Concrete data structures include dynamic arrays, linked lists, and binary trees.

Prerequisites

CMSC 114 (Computer Science I) Corequisite: CMSC 250

Texts


Text:
Data Structures and Other Objects Using C++, Main & Savitch, Second Edition, Addison Wesley.

Strongly recommended text:
any C++ language reference, such as the CMSC 114 textbook or equivalent.

Office Hours

The instructors' and TAs' office hours will be provided in lecture and available in the class posting accounts (see below).

Our email addresses are supplied so you can contact us when necessary in emergency situations, but we regret that we have insufficient resources to debug students' projects via email. We strive to answer email in as timely a fashion as possible but cannot always guarantee how quickly that may be. We will generally be unable to answer any substantive questions on course material via email; these are more appropriate for class discussion or office hours. Office hours or personal communication during, before, or after class are the preferred means for asking us questions about the course material, and the quickest way to receive a reply.

Posting Accounts

Various course materials will be made available in the public course posting accounts, to be explained further in discussion section. The posting account for Mr. Lin's lecture is ch214001, and Mr. Padua-Perez's posting account is np214001. Project assignments and important announcements will be made available electronically through these accounts; students are responsible for reading these messages and knowing their contents. Directions for obtaining course materials in the posting accounts and reading the announcements will be provided in class. Projects will be submitted electronically and instructions will be provided separately and will appear on the assignments as well.

Course Requirements and Grading Policy

Midterms: three midterms 30% (10% of the total course grade each)
Programming projects: five coding assignments 40%
  Project #1 - 7% (of the total course grade)
  Project #2 - 7%
  Project #3 - 10%
  Project #4 - 10%
  Project #5 - 6%
Final exam: will be comprehensive 30%


The final course grades may be curved, if necessary, based on each student's total numeric score for all coursework at the end of the semester.

Any request for reconsideration of the grading on any exam must be submitted in written form, during the lab session following the one where the exam was returned. The instructors reserve the right to regrade the entirety of any exam submitted for regrading, which could result in a lower score.

Practice exercises and solutions will be made available in the course posting accounts; these will not be collected or graded, but serve for you to test your knowledge of the material, and as preparation for projects and exams.

Under no circumstances will any emailed project, or a project submitted by any means other than that specified on the assignment be considered.

If you have access to another computer with a C++ compiler, such as a personal computer at home or another computer system at your job, you may work on your programming projects there. However, all project submissions must be made from your class account on the aITs UNIX Class Cluster and must run and work correctly using the C++ compiler available there (cxx, with the -w0 option). The instructional staff only has access to your class account in office hours, and cannot help debug any program written on any other computer except from a printout. It is your responsibility to find out how to transfer a program to your class account for submission; the instructional staff cannot help with this (see the Information Technology Library in 1400 CSS for information on transferring files between computers). It is also your responsibility to insure your program works correctly on your class account with the compiler and option specified above. If you want to develop your project on another system you are strongly recommended to complete it several days early, so you have time to test your project in the class cluster, in case any problems arise.

Project Grading Policy

Read this section carefully. The project grading policy of cmsc 214 is different from the one used in cmsc 114. In cmsc 214 all working projects will be due at 4:00 p.m. on the date indicated on each project assignment. A working project will be accepted up to three days late with a 15% deduction in credit for each day. No project (except project #4) will be accepted after 4 PM, three days after the project is due. Thus, any project (except project #4) not submitted by the third day will receive a grade of 0. All projects will be graded out of 100 points, but each can contribute a different percentage to the final grade, as described previously.

For this course, a ``working project'' is defined as a project that ``generates correct results'' when a project is run on a primary input data set, so that it produces results which match the corresponding primary output. Both the primary input data set and the primary output will be provided for each project. In order for a project to be considered running successfully on the primary input, its output must match the posted primary output as defined by the execution of a comparison command to be described in class. If any differences are reported by the comparison command, a program will not be counted as working.

In order to submit a project you will use a submission command to be described in lecture. Only those projects that generate results matching the expected primary output as described above will be accepted when using the submission command. Any project that for any reason (e.g., compilation problems, core dump conditions, etc.) doesn't produce the expected primary output will be rejected by the submission command. If a project is not successfully submitted within 3 days of the due date (except project #4), the project grade will be a 0.

IMPORTANT: In order to pass this course a student must submit a working project #4. A working project is one generating the primary output as specified above. The deadline for submitting a working project #4 is Friday, May 11, 2001 at 4:00 pm. A student will automatically fail the course (i.e., letter grade of F) if a working project #4 is not submitted by the specified deadline. We want to clarify that project #4 is the only project a student needs to provide a working version of in order not to fail the course; students with non-working projects #1, #2, #3, or #5 will not automatically fail the course. If you have any doubts about this policy, ask us.

In addition to the primary input and output each project will be graded using additional grading input data sets (secondary inputs). A program may be tested on, and will be expected to correctly handle, any cases allowed by the BNF description of the program input appearing on each project assignment. Beyond the credit assigned for producing the correct output from the input files, credit will be assigned for issues of efficiency, coding style, and program documentation. The point deductions assigned to various mistakes and problems in connection with these issues may differ from project to project.

If more than one submission has been made by a student for any project assignment (for example, both an on-time submission as well as a two-day late submission) only the last submission will be graded.

Late Policies

There will be no make-ups for missed hourly exams. In the case of a documented medical excuse or documented family or personal emergency a missed exam grade will be calculated by averaging a student's scores for the other midterms and the final exam. An illness is considered severe enough to warrant an excused absence only if a medical doctor states that you were incapacitated by it. Excused absences for exams will be approved only with proper documentation. You must provide the documentation within one week of the exam, otherwise it will not be considered. If you have a valid reason for missing an exam it is your responsibility to have the proper verification. A medical excuse consists of written verification from the Health Center, or a letter from your personal physician stating that you were incapacitated and listing exact dates of incapacitation. This written verification must include the telephone number of a contact person. If you have a ``Verification of Visit'' form from the Health Center, you must request that the health provider specifically write on it your dates of incapacitation, otherwise the excuse will not be accepted. You may have to sign a release at the Health Center in order to permit your dates of incapacitation to be listed.

Tentative Exam Dates

Exams will be held on the dates below unless a change is necessary to accommodate lecture topics. In that case, the revised date will be announced in lecture and posted in the public class accounts. The final exam date, however, is fixed. If you have a conflict with another final, it is your obligation to inform your instructor during the first two weeks of class, otherwise no allowances can be made. The midterm exams will be held in the discussion section times, but in a different location, to be announced in lecture and posted in the public class accounts.


Exam 1: Wednesday, March 7

Exam 2: Wednesday, April 4

Exam 3: Wednesday, May 2

Final Exam: Thursday, May 17, 4:00-6:00 pm

Academic Honesty Statement

Please carefully read and consider the Computer Science Department policy regarding the use of computer systems, and the Academic Instructional Technology Services' policy regarding acceptable use of computer accounts provided for instructional use, in the Spring 2001 issue of the departmental newsletter, CS Tid-Bits, handed out with this syllabus. Note in particular the penalties for impermissible cooperation on programming projects, which is a violation of the University's Code of Academic Integrity. Any evidence of unacceptable use of computer accounts or unauthorized cooperation on exams or projects will be submitted to the appropriate authorities or to the Student Honor Council, which could result in an XF for the course, suspension, or expulsion from the University.

NOTE SPECIFICALLY that projects are to be done INDIVIDUALLY. For academic honesty purposes, projects are to be considered comparable to an extended take-home exam. That is, any cooperation or exchange of ideas which would be prohibited on an exam is also prohibited on a project assignment. Working IN ANY WAY with another student will be considered a violation and WILL BE REPORTED to the Honor Council. Students may not discuss pseudocode, design of a program or of individual functions, coding of individual functions, or any high-level code with anyone except the instructors and teaching assistants. Should you have difficulty with a programming assignment you should see your instructor or the teaching assistants in office hours, NOT solicit help from anyone else in violation of these rules. Students are welcome to study together or to receive help in learning the course concepts from any others, but exams and projects are to be solely and entirely each student's own work.


VIOLATIONS OF ACADEMIC HONESTY INCLUDE:

  1. failing to do all or any of the work on a project by yourself, other than assistance from the instructional staff.
  2. using any ideas or any part of another student's project, or copying any other individual's work in any way.
  3. giving any parts or ideas from your project, including test data, to another student.
  4. having programs on an open account or on a PC that other students can access.
  5. transferring any part of a project to or from another student or individual by any means, electronic or otherwise.


IT IS THE RESPONSIBILITY, UNDER THE UNIVERSITY'S HONOR POLICY, OF ANY STUDENT WHO LEARNS OF AN INCIDENT OF ACADEMIC DISHONESTY TO REPORT IT TO THEIR INSTRUCTOR.

Course Topics (SUBJECT TO CHANGE)

This list may vary according to the pace of lecture topics.


Week Topics
January 29 Introduction, Review, Dynamic memory allocation, linked lists
February 5 Linked lists, templates
  Project #1 assigned
February 12 Templates (continued)
February 19 Recursion, Trees
  Project #1 due, Project #2 assigned
February 26 Trees (continued)
March 5 Trees (continued), Inheritance
  Project #2 due, Project #3 assigned
  Exam #1
March 12 Inheritance (continued)
March 19 Spring Break
March 26 Inheritance (continued)
April 2 Inheritance (continued), Graphs
  Project #3 due, Project #4 assigned
  Exam #2
April 9 Graphs (continued), STL
April 16 Graphs and STL (continued), Hashing
  Project #4 due, Project #5 assigned
April 23 Heaps (continued)
April 30 STL (continued), Exceptions
  Exam #3
May 7 Exceptions (continued), Other topics
May 14 Other topics

Web Accessibility