Any request for reconsideration of any grading on coursework must be
submitted within one week of when it is returned. Exam
regrading requests must be made in writing. Any coursework submitted
for reconsideration may be regraded in its entirety, which could
result in a lower score if warranted.
Final course grades will be curved as necessary, based on each
student's total numeric score for all coursework at the end of the
semester.
Computing
Resources
Programming projects will be developed on the OIT Linuxlab UNIX Cluster,
linuxlab.umd.edu. You will use your own OIT account to access the
cluster and do coursework, so if you do not have a OIT account,
request one immediately online. Information on the
Linuxlab machines is available
here.
If you have access to another system you are welcome to do your
development there instead, but all project submissions must
work correctly on the Linuxlab cluster, and your projects will be graded
solely based on their results on the cluster.
Because language and
library versions may vary with the installation, in unfortunate
circumstances a program might work perfectly on your system but not
work at all on the cluster. Thus we strongly recommend that if you
develop any project on another system, you should complete it
several days early to have time to address any compatibility
problems.
Office Hours and Web Forum
Office hours for the instructional staff will be posted on the course
web page a few days into the semester.
While we will provide assistance with assignments during office hours,
you are responsible for developing and debugging your own programs. Do
not rely on the instructional staff to make your project
work. Lower-level CMSC courses provide extensive debugging and
development help in office hours, but upper-level CMSC courses expect
students to complete projects with minimal extra help. Therefore in
CMSC 411, we will provide less debugging help than some students may
be used to. If you come in with a question, expect to be pointed in
the right direction, but it will be up to you to finish solving the
problem on your own.
This term we will be using Piazza as the class web forum. The system is
targeted at getting you help fast and efficiently from classmates,
the TA, and myself.
Important announcements will be made in class or in Piazza. Please make it
a habit to check the web page and Piazza daily. You may use Piazza
to ask general questions of interest to the class as a whole, e.g.,
administrative issues or project clarification questions. Please do not
post any information that would violate the university academic integrity
policy.
Find our class Piazza page
here.
You can sign up for this class in Piazza
here.
Exams
The final exam will be comprehensive.
The class includes two midterms and a final exam. Tentative dates
for the exams are posted on the class web site. The exact dates will be
confirmed later, and may vary due to the progress of lecture and other
factors. We will let you know the exact deadlines well in advance.
Homework/Projects
There will be one homework per unit with multiple questions. You will
have to turn in homework for grading on paper in class, but only two
questions will be graded (and you won't know which ones in advance).
No late homework will be accepted.
You are allowed to work with other students ONLY on homework, and
not on the projects.
The programming projects will be graded based on correctness. A memory leak
is incorrect behavior and you will lose points. A program that you spent a
lot of time on and "almost works", but doesn't in fact work on any of the
test cases, won't get you any points.
Submissions of the project will be via email to the instructor. The
projects must be submitted by 6:00PM on the day they are due. No late
projects will be accepted.
Project extensions will not be granted due to system problems, network
problems, power outages, etc., so do not wait to submit a project
until the day it is due.
It is OK to submit the project multiple times; only the last submitted
version of your program will be graded. In fact, multiple submissions
may save you from disaster, since we will be able to recover a submitted
version if you accidentally delete a file.
You may use any computing equipment you wish (such as your home computer)
to develop your programs. However, this is "at your own
risk". Your programming assignment must be electronically submitted
from the account provided to you for this class, and will be graded based
on how it runs on the Linuxlab machines. If you make use of a language
extension supported on your machine but not on Linuxlab, or if your
programming environment doesn't support standard language features
supported under Unix, you will run into problems. No alterations to
conditions of the assignment will be made to accommodate peculiarities of
your other computing resources.
Excused Absences
Besides the policies in this syllabus, the University's policies apply
during the semester. Various policies that may be relevant appear in
the Undergraduate Catalog.
If you experience difficulty during the semester keeping up with the
academic demands of your courses, you may consider contacting the
Learning Assistance Service in 2201 Shoemaker Building at (301)
314-7693. Their educational counselors can help with time management
issues, reading, note-taking, and exam preparation skills.
Missing an exam for reasons such as illness, religious observance,
participation in required university activities, or family or personal
emergency (such as a serious automobile accident or close relative's
funeral) will be an excused absence. However, excused absences must
be requested in writing and must include documentation that the
absence qualifies as excused.
For example, for medical absences, you must furnish documentation from
the health care professional who treated you. The documentation
should include the name and phone number of the health care
professional and should explicitly state the dates and times that you
were incapacitated and therefore unable to attend. The dates
and times must include the date of the missed exam; an illness
preceding an exam does not constitute an excused absence. Also,
simply being seen by a health care professional
does not constitute an excused absence. Furthermore,
self-documentation of illness is not sufficient support to excuse an
absence. Excused absences will not be given unless documentation as
described is provided. If you become ill, keep in mind that the
University Health Center will not provide medical documentation.
It is the University's policy to provide accommodations for students
with religious observances conflicting with exams, but it is the
your responsibility to inform the instructor in advance
of intended religious observances. Written notice must be provided
immediately upon an exam date being announced or confirmed in
order for an absence to be excused. If you have a conflict with one
of the planned exams, you must inform us prior to the end of
the first two weeks of the class.
For missed exams due to excused absences, the instructor will arrange
a makeup exam. However, unless immediate notice is given as
early as possible of the reason for any missed coursework, an excused
absence may not be granted. If you might miss an exam for any other
reason other than those above, you must contact the instructor
in advance to discuss the circumstances. We are not
obligated to offer a substitute assignment or to provide a makeup
exam unless the failure to perform was due to an excused absence.
The policies for excused absences do not apply to homework and
project assignments.
Homework and projects will be assigned with sufficient time to be completed by
students who have a reasonable understanding of the necessary material
and begin promptly. In cases of extremely serious documented
illness of lengthy duration or other protracted, severe
emergency situations, the instructor may consider extensions on homework and
project assignments, depending upon the specific circumstances.
In addition to the above policy, university policy states that any student
who needs to be excused for an absence from a single lecture, recitation,
or lab due to a medically necessitated absence shall:
- Make a reasonable attempt to inform the instructor of his/her illness prior to the class.
- Upon returning to the class, present their instructor with a
self-signed note attesting to the date of their illness. Each note must
contain an acknowledgment by the student that the information provided is
true and correct. Providing false information to University officials is
prohibited under Part 9(i) of the Code of Student Conduct (V-1.00(B)
University of Maryland Code of Student Conduct) and may result in
disciplinary action.
The self-documentation may not be used for the Major Scheduled Grading
Events as defined below and it may only be used for only 1 class meeting
during the semester. Any student who needs to be excused for a prolonged
absence (2 or more consecutive class meetings), or for a Major Scheduled
Grading Event, must provide written documentation of the illness from the
Health Center or from an outside health care provider. The Major Scheduled
Grading Events for this course are the two in-class exams.
Students with Disabilities
Students with disabilities who have been certified by Disability
Support Services as needing any type of special accommodations should
see the instructor as soon as possible, during the schedule adjustment
period.
All arrangements for exam accommodations as a result of disability
must be made and arranged with the instructor at least
three business days prior to the exam date, or accommodations
will not be made.
Academic
Integrity
The Campus Senate has adopted a policy asking students to include the
following statement on each examination or assignment in every course:
"I pledge on my honor that I have not given or received any
unauthorized assistance on this examination (or assignment)."
Consequently, you will be requested to include this pledge on each
exam and project. Please also carefully read the Division of
Information Technology's policy
regarding acceptable use of computer accounts.
Programming projects are to be written individually, therefore
cooperation or use of unauthorized materials on projects is a
violation of the University's Code of Academic Integrity. Any
evidence of this, or of unacceptable use of computer accounts, use
of unauthorized materials or cooperation on exams or quizzes, or other
possible violations of the Honor Code, will be submitted to the
Student Honor Council, which could result in an XF for the course,
suspension, or expulsion.
-
For the homeworks and for learning the course concepts students are welcome
to study and work together. You may discuss with others the project
requirements, the features of the programming languages used, what was
discussed in class and in the class web forum, and general syntax errors.
Examples of questions that would be allowed are "Does a C struct definition
end in a semicolon?" or "What does a 'Bus error (core dumped)' message
mean?", because they convey no information about the contents of a project.
-
When it comes to actually writing a project assignment, other than
help from the instructional staff a project must solely and entirely
be your own work. Working with another student or individual, or
using anyone else's work in any way except as noted in this
paragraph, is a violation of the code of academic integrity and
will be reported to the Honor Council. You may not discuss
design of any part of a project with anyone except the
instructor or teaching assistant. Examples of questions you may
not ask others might be "How did you implement this part of
the project?" or "Please look at my code and help me find my stupid
syntax error!". You may not use any disallowed source of information
in creating either their project design or code. When writing
projects you are free to use ideas or short fragments of code
from published textbooks or publicly available
information, but the specific source must be cited in a comment in the
relevant section of the program.
Violations of the Code of Academic Integrity may include, but are
not limited to:
-
Failing to do all or any of the work on a project by yourself, other
than assistance from the instructional staff.
-
Using any ideas or any part of another person's project, or copying
any other individual's work in any way.
-
Giving any parts or ideas from your project, including test data, to
another student.
-
Allowing any other students access to your program on any computer
system.
-
Transferring any part of a project to or from another student or
individual by any means, electronic or otherwise.
If you have any question about a particular situation or source then
consult with the instructor in advance. Should you have difficulty
with a programming assignment you should see the instructional
staff in office hours, and not solicit help from anyone else in
violation of these rules.
It is the responsibility, under the honor policy, of anyone who
suspects an incident of academic dishonesty has occurred to report it
to their instructor, or directly to the Honor Council.
Every semester the department has discovered a number of students
attempting to cheat on project assignments, in violation of academic
integrity requirements. Students' academic careers have been
significantly affected by a decision to cheat. Think about whether
you want to join them before contemplating cheating, or before helping
a friend to cheat.
You are welcome and encouraged to study and compare or discuss their
implementations of the programming projects with any others after they
are graded, provided that all of the students in question have
received nonzero scores for that project assignment, and if that
project will not be extended upon in a later project assignment.
Course Evaluations
If you have a suggestion for improving this class, don't hesitate to
tell the instructor or TAs dring the semester. At the end of the
semester, please don't forget to provide your feedback using the
campus-wide CourseEvalUM
system. Your comments will help make this class better.
Right to Change Information
Although every effort has been made to be complete and accurate,
unforeseen circumstances arising during the semester could require the
adjustment of any material given here. Consequently, given due notice
to students, the instructors reserve the right to change any
information on this syllabus or in other course materials.
Copyright
All course materials are copyright Dept. of Computer Science,
University of Maryland (Alan Sussman, Pete Keleher,
Chau-Wen Tseng). All rights reserved. Students are permitted to use
course materials for their own personal use only. Course materials may
not be distributed publicly or provided to others (excepting other
students in the course), in any way or format.