c m s c 214
f a l l 2 0 0 1
|Sections 01, 02, and 03||Sections 04, 05 and 06|
|Dr. Bunny Tjaden||Charles Lin|
|1109a A. V. Williams||1127 A. V. Williams|
Only call the instructors for administrative matters (e.g., you are sick and can't make the exam). You should not call about project debugging. See TAs for that. Email is generally preferable, instead of calling.
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.
CMSC 114 (Computer Science I), MATH 141
You must be concurrently taking, or have completed CMSC 250, before taking CMSC 214.
Although this is the "required" text, we will use it primarily as a reference.
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.
http://www.cs.umd.edu/class/fall2001/cmsc214/It is your responsibility to read the webpage often.
Various course materials will be made available in the public course posting accounts, to be explained further in discussion section. The posting account for Dr. Tjaden's lecture is bt214001, and Mr. Lin's posting account is ch214001.
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.
|Midterms:||two midterms||25% (12.5% 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||25%|
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 OIT 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.
Instead of dropping a quiz grade, we may average it out of less quizzes. Thus, you may have 10 quiz grades, but we may divide it out of 9 quizzes. At this point, assume no more than one quiz will be "dropped" in this manner.
There should be a quiz worksheet prior to any quiz to help you prepare for the quiz. These may be provided online, but it is expected that you get the worksheet in lab section.
Quizzes will be scored out of 50 points.
Quizzes must be taken in the section you are registered. If you take the quiz in the incorrect section, you will receive a 0. Only those students who have received special permission by the instructor may take quizzes in a different section. Otherwise, you must take quizzes at the discussion section time.
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 11:59 p.m. on the date indicated on each project assignment. There will be a one hour "grace period". Any project that is turned in "late", but within the grace period (turned in after 11:59 PM, but before 12:59 AM) will receive the same penalty as if it were turned in at 11:59 PM.
For the purposes of late projects, "one day" will be defined as 86,400 seconds (this is 24 hours). Two days will be twice this, etc. One day late will be defined as between 0 and 86,400 seconds after the due date. Two days late will be between 86,400 and 172,800 seconds late, etc. One week is defined as seven days.
A working project will be accepted up to three days late with a 15 points deduction in credit for each day late. After three days late, but before one week late, a working project will be worth a maximum of 25 points, provided that it has good style (it may receive less if it has poor style). Any projects submitted seven days late will receive a grade of 0 points.
No project (except project #4) will be accepted after 11:59 PM, seven days after the project is due. Thus, any project (except project #4) not submitted by the seventh day will receive a grade of 0. All projects will be graded out of 100 points. Each project is worth a different percentage to the final grade, as described in a previous section.
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 be considered "not working". You will be unable to submit the project until the project is considered 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 7 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, December 7, 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.
If you submit a working project #4 by the deadline specified above, but turn it after one week late, your project will be worth 10 points.
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.
While your projects are primarily graded on the correctness of the outputs, other criteria are used in grading your projects. In particular, your code will be graded on:
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. We do NOT grade the best submission.
If you have a valid excuse, you should make every effort to contact the instructor for a request for an extension on the due date of the project as soon as possible. Requests made much after the due date may not always be accommodated.
Extensions are not given for observances of holidays or due to events known in advance. It is expected that you will not need the entire time given to complete the project. The time given is to allow you to complete the project, yet manage your time with other classes. We generally expect that a project will take a good programmer the time to complete the project.
Unfortunately, different students work at different paces, and we can't give extensions to students who take longer to complete their projects or have a heavier courseload than others.
Arbitrary extensions will not be given without consultation with the Undergraduate Coordinator. For example, if you request that you be given enough time to complete a project based on an illness that is chronic (e.g., you say "I have headaches all the time, but can't always see a doctor, and I want extensions to whenever I can finish the project"), the instructors will request you discuss the matter with the Undergraduate Coordinator. Also, any illnesses which last longer than a week may require consultation with the Undergraduate Coordinator.
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, October 3
Exam 2: Monday, November 5
Final Exam: Saturday, December 15, 4:00-6:00 pm
Please carefully read and consider the Computer Science Department policy regarding the use of computer systems, and the Office of Information Technology's policy regarding acceptable use of computer accounts provided for instructional use, in the Fall 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:
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.
This list may vary according to the pace of lecture topics.
|1||Introduction, Review, Dynamic memory allocation, linked lists|
|2||Linked lists, templates|
|Project #1 assigned|
|Project #1 due, Project #2 assigned|
|6||Trees (continued), Inheritance|
|Project #2 due, Project #3 assigned|
|10||Inheritance (continued), Graphs|
|Project #3 due, Project #4 assigned|
|11||Graphs (continued), STL|
|12||Graphs and STL (continued), Hashing|
|Project #4 due, Project #5 assigned|
|14||STL (continued), Exceptions|
|15||Exceptions (continued), Other topics|