C M S C     2 1 4
C o m p u t e r   S c i e n c e   I I
F a l l   2 0 0 4

Prerequisites: CMSC 114 with a grade of C or better; or a score of 4 or 5 on either the A or the AB C++ AP exam; or permission of department based on satisfactory performance on the department placement exam. Co-requisite: CMSC 250. Credit will be granted for only one of the following: CMSC 214 or CMSC 113. Elementary data structures, recursion, and object-oriented programming using C++.

NOTE: It is the student's responsibility to familiarize themselves with the policies outlined on this syllabus. In particular, the policies outlined here might not correspond to those used in prior semesters, future semesters or in any other classes here at the University.

VERY IMPORTANT NOTE:

This is the last time the CMSC department will be offering CMSC 214. Note in particular that any student not passing CMSC 214 with a grade of C- or better may be required to "restart" the introductory CMSC sequence with CMSC 131 or take a winter term course and exam (in Java) to place into any higher level CMSC course. If you have any questions/concerns regarding this matter you should either contact an advisor during any of the posted advising hours:
http://www.cs.umd.edu/Ugrad/Advising/schedule.html
or else the instructor of this course during any of their posted office hours.

Instructor:

Name:     James Maybury
Sections:     010X and 020X
Office:     3223 A.V. Williams
E-mail:     jmaybury@umd5.umd.edu
Phone:     301.405.6713
Office
Hours:
    M 4-5pm by appointment only,
    F 2-4pm (no appointment needed)

Attendance, Classroom Locations and Teaching Assistants:

Students must attend the lab section for which they are registered. Although attendance is not required, it may be taken by the instructional staff to aid them in tracking the progress of students in the course - at no time will it (attendance) factor into the computation of the final grade of any student, however it is the opinion of the instructor of the course that attendance can play a pivotal role in determining any students ability to succeed in a course.

Section # Lecture Time
and Location
Lab Time
and Location
Lab TA

0101 MWF 10-10:50am
in 2117 CSI
MW 2-2:50pm
in 2118 CSI
Konstantin Berlin
0102 MWF 10-10:50am
in 2117 CSI
MW 3-3:50pm
in 2118 CSI
Konstantin Berlin
0201 MWF 11-11:50am
in 2117 CSI
MW 2-2:50pm
in 2107 CSI
Nikolaos Frangiadakis
0202 MWF 11-11:50am
in 2117 CSI
MW 3-3:50pm
in 2107 CSI
Nikolaos Frangiadakis

For more details on all of the teaching assistants please see the main class webpage.

Text Book(s):

required: "Data Structures with C++ using STL", Ford & Topp, Second Edition, Prentice Hall, © 2002.
recommended: any C++ language reference, such as the CMSC 114 textbook or equivalent.

Class Webpage:

The CMSC 214 class webpage will be located at
  http://www.cs.umd.edu/class/fall2004/cmsc214/
It is your responsibility to refer to this webpage on a regular basis. In particular, project descriptions and other information will be provided on the class webpage.

Course Requirements/Grading:

Quizzes (4-8)
Programming Projects (5-6)
Midterm Exams (2)
Final Exam (comprehensive)
10%
40%
25% (12.5% each)
25%

E-mail and Office Hours:

Office hours for all of the instructional staff will be posted on the class webpage and are the primary means for communicating with the staff of this course. Note that the quickest guaranteed way to receive a response to any question is to meet with the staff in person during any of their posted office hours or before or after classes. This includes any and all questions related to programming projects and other assignments (quizzes/exams) for this course.

The email addresses of the instructional staff are provided for emergency situations only. If you do send an email to any of the staff of this course it must contain CMSC 214: at the start of the subject line of the email, along with a brief description of the contents of the email (for example "CMSC 214: computers down? ..."). In addition you must include:

at the bottom of the email. Failure to follow these guidelines may result in your email being unanswered.

More details regarding office hours and their locations will be posted on the class webpage.

Quizzes:

Quizzes will typically be given during Wednesday lab sections and generally will be announced at least one day prior either in the class announcements and/or in class. All quizzes must be taken in the lab section for which the student is officially registered otherwise they will receive a score of 0. Unless otherwise noted, each quiz will be worth the same percentage towards the final grade.

Exams:

Exams will be held on the dates below unless the instructor(s) find it necessary to move them, in which case due notice will be given to the students. The final exam date for this semester has been posted by the University since the first day of registration and therefore excuses for obligations made after registration began, which require a student to miss the final exam might not be accepted. If you have a conflict with the final exam (with another final exam or any other obligation) under University policy it is your responsibility to inform your instructor of that conflict during the first two weeks of class otherwise no allowances may be made.

Exam 1:   Wednesday, October 6th during lab location: TBA
Exam 2:   Wednesday, November 10th during lab location: TBA
Final:   Monday, December 13th from 4:00-6:00pm location: TBA

Project Grading Policy:

All projects are due at 11:00pm on the day indicated on the project assignment (which will be posted on the class webpage) and must be submitted electronically as specified on the project description (using the class account provided to the student at the start of class). Projects turned in in any other form or manner will not be accepted. Any project submitted after the "Official Due Time" (ODT) will be considered late regardless of how close it was to the ODT (which is 11pm on the day indicated on the project assignment).

All programming projects must meet a "Minimal Running Criteria" (MRC) otherwise they will receive a grade of 0. MRC is defined as a program that compiles and runs without noticeable error on the primary input (to be provided with the project assignment) and produces results which match the primary output (again to be provided with each project assignment).

All submitted projects will be compiled and tested using the cxx compiler found on the UNIX class cluster machines unless otherwise specified. In addition the options -w0 and -std strict_ansi will be used when compiling, so at a minimum you must make sure that your program compiles and runs when using this command and these options on the UNIX class cluster as projects will not be tested using any other compiler. It is expected that when compiling warning and information messages will be corrected and failure to do so may result in a loss of points. Further details will be provided on each assignment.

The electronic submission program will allow a project (that meets the MRC) to be submitted up to two (2) days late (and no submissions will be allowed after that unless an extension has been approved in advance). A project submitted up to one day late will receive an automatic 15% deduction, a project submitted up to two days late will receive an automatic 25% deduction. A project that is submitted more than two days late will not be accepted (unless it's project 4), and will receive a grade of 0.

A student may attempt to submit a project as many times as they want, however only the last submission received (up until the end of the 2-day late period) will be kept and used when grading the assignment.

Projects will be graded based on a number of criteria as determined by the instructional staff including, but not limited to:

Unless otherwise specified by the instructional staff, the individual weight of each project towards the final grade will be:

Project 0 1% Project 1 7% Project 2 7%
Project 3 10% Project 4 9% Project 5 6%

Required Project:

Each student is required to successfully submit project #4 to pass the course. If a student is unable to complete project #4 (up to MRC), the student receives an F for the final course grade, regardless of any other grade. Passing project #4 does not guarantee you will pass the course. However, failing to complete project #4 (up to MRC) does guarantee that a student will receive an F.

Due to the importance of completing this assignment a student will be allowed to submit it up until Monday, December 6th at 11pm. Any project #4 submission made after the end of the 2 day late period and up until 11pm on 12/6/2004, that meets the MRC, will receive a score of 10 (out of 100).

Class Computer Accounts:

In this class each student will be given a password protected computer account on a UNIX system (known as the "class cluster"). Each account is provided for the sole use of the student to which it was assigned and is intended to be used for exercises related to this class only. All class accounts will be terminated within 2 weeks after the last day of classes. The University provides WAM accounts for personal use. All questions regarding computer support and University computer resources should be directed to the Office of Information Technology (OIT). OIT's main website is www.oit.umd.edu and a wealth of information and resources can be found there.

For this course there will be a posting account on the UNIX class cluster which may contain files and information that are publicly available to all students in the course. The posting account for this course will be fjm14001 and more details regarding the use of this account will be provided in class.

If a student is found to be abusing their OIT class account privileges, or is suspected of violating the University's Code of Academic Integrity, their class account may be terminated and any files therein confiscated. Details on the University's Guidelines for Acceptable Use of Computer Resources and other information related to class accounts can be found at the following URL:

Guidelines for Acceptable Use of Computing Resources

Late/Excuse Policies:

From time to time something may come up that requires you to miss, or turn in late, a course requirement (quiz, exam or project). If such a time does arise, an excused absence or extension may be granted assuming proper documentation is provided. All valid documentation must be in writing on paper and indicate which days you were unable to attend classes (aka dates of incapacitation) and why. Documentation concerning any medical related condition must be signed by a physician and contain appropriate contact information. Note that "Verification of Visit" forms from the University Health Center are NOT considered valid documentation. ADDITIONALLY NOTE that the University Health Center may choose to decline any request to provide documentation - note that this may be in violation of various laws and it is the understanding of the instructional staff that all individuals do have a right to their medical records and if you met with a physician then there will be a medical record of that meeting to which you should have a right to obtain in writing. Also note that staying at home during an illness, even with documentation from parents (unless they are physicians), does not constitute a valid medical excuse.

All requests for an excused absence or an extension on a project must be made per the policies outlined on the class webpage (under the administrative section) (or via email if you are physically incapable of doing so in person) and they must be accompanied by the "Official Excuse Request Form" (which can be downloaded from the class webpage or you can request a copy of it from any of the instructional staff). If it is known in advance (to yourself) that you will be missing an assignment (due to a job interview, medical surgery, religious obligation, etc.) you must notify the instructor prior to missing the course assignment (and provide written documentation to verify your absence). If you miss an assignment due to an unplanned emergency (car accident, sudden illness, etc.) and are unable to notify the instructor in advance, it is your responsibility to notify them as soon as physically possible (in person or via email) afterwards - failure to do so may result in no excuse/extension being provided (as soon as possible is defined as no more than two class periods from the class period in which you are physically able to resume attending school).

If a quiz is missed due to a valid excuse, its score will be the average of the other non-excused quizzes. If one of the midterm exams is missed due to a valid excuse it will be excused and the other midterm and final exam will be worth 17.5% and 32.5% respectively. If both midterms are missed due to a valid excuse, a comprehensive makeup exam will be given worth 25%. If the final exam is missed due to a valid excuse an alternate final exam will be given in its place at a time deemed appropriate by the instructional staff of the course. Note that the list of "dates of inability to perform class related duties", found on the "Official Excuse Request Form" which is submitted, must include the day of the quiz or the exam in order for it to be considered a valid excuse.

Extensions on projects will only be granted on a case-by-case basis. Requests for extensions on a project must be made in a timely manner and failure to do so will result in no extension being granted. The instructional staff will determine the length and duration of all extensions and no extensions on multiple projects will be allowed without first consulting with the Departmental Undergraduate Program Coordinator. Extensions are generally not granted for events known (to the student) in advance of the due date of the project in question - it is expected that students will not need the entire time given to complete a project and that they will know how to manage their time appropriately and balance the work required for this course with their other courses and all obligations external to school. Additionally, extensions can not be granted for lost/deleted files, personal computer problems, or other items which can not be reasonably expected by the instructional staff as valid excuses.

Regrade Policy:

All requests for regrading of any course assignment must be made in writing and must be accompanied by a copy of the "Official Regrade Request Form" (which can be downloaded from the class webpage or you can request a copy of it from any of the instructional staff). All regrade requests must be submitted per the guidelines found on the class webpage (under the administrative section) and in general must be made no later than 1 week after the material in question was returned to the class.

Note that all graded assignments may be photocopied prior to their being returned in class and that any request to have an assignment regraded may result in the entire assignment in question being regraded, possibly resulting in a loss of points.

Academic Honesty:

In this course you are responsible for both the University's Code of Academic Integrity (http://www.jpo.umd.edu/) and the University of Maryland Guidelines for Acceptable Use of Computing Resources (http://www.umd.edu/aug/). Please carefully read and consider these policies (by going to the respective webpages/links above). 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 tests, quizzes, or projects will be submitted to the Student Honor Council, which could result in an XF for the course, suspension, or expulsion from the University. NOTE SPECIFICALLY: projects are to be done INDIVIDUALLY. Working IN ANY WAY with another student will be considered a violation and WILL BE REPORTED to the Honor Council.

VIOLATIONS OF ACADEMIC HONESTY INCLUDE, BUT ARE NOT LIMITED TO:

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. The prior sentence clearly summarizes the boundaries for which you are obligated on programming assignments and in no way conflicts with the following statements. Should you have difficulty with a programming assignment you should see your instructor or teaching assistants in office hours, NOT solicit help from anyone else in violation of these rules. Students are welcome to study together or solicit help in learning course and C++ language concepts from any others, including tutors, but quizzes, exams, and projects are to be solely and entirely your own work. Only after you have received a numeric grade for a project are you welcome, and encouraged, to compare it with any classmates who have also received a numeric grade for that project assignment.

If you find this policy to be unclear or have any questions/concerns regarding it you are encouraged to discuss those items with the instructional staff of the course.

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 Schedule/Topics:

This list may vary according to the pace of lecture topics. This link to a calendar (on the class webpage) contains a tentative outline of project and exam deadlines.
Week   Topics
1   Introduction, Review
2   Linked lists, templates
3   Templates
4   Recursion, Trees
5   Trees
6   Trees, Inheritance
7   Inheritance
8   Inheritance
9   Inheritance, Graphs
10   Graphs, STL
11   Graphs, STL, Hashing
12   Heaps, AVL Trees
13   STL, Exceptions
14   Exceptions
15   Other Topics

Additional Info:

All material on this syllabus is tentative, and given due notice to the student, the instructors reserve the right to change it at any time.


See above for policies concerning email
Last Modified: Mon Aug 30 08:35:53 EDT 2004
left up down right home