UMBC, CMSC202 Computer Science II, Spring 2007
This course continues the development of programming and problem-solving
skills, focusing on the C++ programming language, object-oriented
programming and design (OOP/OOD), and improved programming practices.
Topics include: Abstract Data Types (ADTs), an introduction to the
C++ programming language including string and vectors, encapsulation
and information hiding, inheritance and polymorphism and templates.
Other good C++ books are listed under Resources.
- Required: Absolute C++, Second Edition, Walter Savitch,
Addison-Wesley, 2006. (ISBN: 0-321-33023-4)
- Recommended: C++ Primer, Third Edition, by Stanely B. Lippman and Josee Lajoie,
Addison-Wesley, 1998. (ISBN 0-201-82470-1)
- Recommended: C++ FAQs, Second Edition, Marshall Cline, Greg Lomow and Mike Girou,
Addison-Wesley, 1999. (ISBN 0-201-30983-1)
The formal prerequisites for this course are CMSC 201 Computer
Science I and MATH 151 Calculus I (or their equivalents). From
CMSC 201 you should have mastered the concepts and skills in
the following table. If you are unfamiliar with a significant
number of these skills and/or concepts, you should take CMSC 201.
|| Skills |
| top-down design
|| using header files
||character and string handling
||basic pointer manipulations
|abstract data types
||pointers as parameters
|dynamic memory allocation
||writing recursive functions
|searching and sorting
||linked lists, stacks and queues
Your grade for this course will be based on 5 programming projects,
2 midterm exams, the final exam and on grades from the discussion
sections (see below). The weighting of these scores are:
| Discussion: || 1 point || x 12 = || 12 points |
| Projects: || 7 points || x 5 = || 35 points |
| Midterm Exams: || 15 points || x 2 = || 30 points |
| Final Exam: || 23 points || x 1 = || 23 points |
Your final letter grade is based on the standard formula:
0 ≤ F < 60,
60 ≤ D < 70,
70 ≤ C < 80,
80 ≤ B < 90,
90 ≤ A ≤ 100.
Your grade might be curved upward, but under no circumstance will your
grade be curved downward. Your grade is given for timely work done during
the semester; incomplete grades will only be given for medical illness or
other such dire circumstances.
Discussion Section Grades
Attendance and participation in the discussion section is required.
After each meeting, each student will be assigned a grade by the
teaching assistant. This grade will be on a 10-point scale reflecting the
student's attendance, participation in the discussion and completion of the
lab exercise. Since 14 meetings of the discussion sections have been
scheduled (see list of lab exercises), it is
possible to earn 2 points of extra credit from the discussions.
However, if one or two discussion sections are canceled due to
inclement weather, those points will not be made up. (I.e., you cannot
earn extra credit from snow days.)
Lectures and Readings
You are expected to attend all lectures for this course. Although
both instructors will cover the same general topics, you are
responsible for the specifics given in your lecture section.
You are expected to attend all discussion sessions, and you are
responsible for all material presented there.
You are responsible
for all material covered in class, even if it is not in the textbook.
You are responsible for all material in the textbook readings, even if it
is not covered during class. If you should happen to miss a lecture
or a lab, you are responsible for getting any missed notes or
announcements from a classmate.
Programming Project Policies
The critical programming skills cannot be learned simply by attending the
lectures. You should budget enough time to work on the projects as well.
Projects are due before midnight of the due date.
Projects that are up to 24 hrs late will receive a 25% penalty.
Projects more than 1 day late will receive a zero.
In addition to the 5 graded projects, Project 0 is a mandatory
ungraded project. The purpose of Project 0 is NOT to make
sure you know how to use the submission system, but rather to make
sure that the submission system is prepared to accept projects from
your account. If you fail to submit Project 0, no future project
submissions will be possible and your grade for those projects
(which are graded) will suffer.
Network and computer failures at UMBC are a fact of life. They are
out of your control and out of our control. However, they are not
an excuse for a project to be submitted late, nor are they a reason
for project deadlines to be extended, even if the outage occurs on
the due date. Plan accordingly. Waiting to submit your project until
5 minutes before your project is due is a recipe for disaster. In
the event of network outages or computer failures you are still
responsible for submitting your projects on time. There are labs
on campus even if your dialup or ResNet connections are down. Also,
it is your responsibility to take care of any problems with your
account, such as quota overages, which interfere with your ability
to complete and submit projects for the course. Project extensions
will not be given for such problems.
A Standard C++ Compiler
Despite the ANSI C++ standard, there are differences among these
many C++ compilers available. We will use the g++ compiler
in /usr/local/bin/ directory of the GL systems using the
compiler switches -ansi -Wall. Thus, you should compile
your programs using an instruction like:
/usr/local/bin/g++ -ansi -Wall project1.cpp
To save yourself typing "/usr/local/bin/g++ -ansi -Wall" you should
use a Unix alias and/or a makefile to compile your projects.
There are two kinds of regrade requests for programming projects.
The first kind is a grade correction and you must claim that the
grader has made a factual error in the grading of your programming
project. Requests for a grade correction must be discussed in
person with the teaching assistant of your discussion section within
one week of receiving your project grade.
The second kind is a resubmission request. In this case you are
claiming that a very small error in your programming project has
caused you to lose a large number of points. As a rule of thumb,
you must be able to correct your program by changing fewer than 5
lines of code. You must discuss the resubmission request in person
with your TA who has the discretion to grant or deny your resubmission
request. You must make your request within one week of
receiving your project grade. If your resubmission request is
granted, your project will be regraded with a 10-point penalty.
Thus resubmission requests will only be considered in cases where
you could improve your project grade by more than 10 points.
Projects and Academic Conduct
In this class, all programming projects must be completed by your
own individual effort. You should never have a copy of someone
else's project (in part or in whole) either on paper or electronically
under any circumstance. Also, you should never
give a copy of your project, either on paper or electronically, to
another student. This also means that you cannot "work" on the
project together. Cases of academic dishonesty will be dealt with
Thus, you should:
- Understand that having someone else's project (even a
small part) in your possession, even briefly, is considered
- Safeguard your account password; you are responsible for
the actions of anyone else you may allow to log into your account.
- Safeguard hard copies of your programs; excuses such as
"I must have left a copy of my code in the lab where someone
else must have found it" will not be accepted.
If you need help with your project, see your instructor, your TA,
the Computer Science Help
Center (room ITE 201E), or tutors provided by the Learning
Resource Center. We also encourage you to consult your textbook
and the course web pages.
Your project will be checked for similarities with all other student
projects. If your project is found to be "substantially similar"
to that of another student, or if it is determined that someone
else wrote your project for you, then at a minimum you and
the other student (if applicable) will receive a grade of zero
for that project and a 10 point deduction in your semester
average. Furthermore, all parties concerned will have their
prior projects re-checked for cheating. Any second incident
will result in a grade of 'F' for the semester. Also,
checking for cheating may occur at any time during the semester.
Therefore, if you cheated on Project 1, you may be confronted
about that at any time; receiving a grade for a project does not
mean you are "in the clear".
All incidents of academic misconduct will be reported to the
University's Academic Conduct Committee for further action, which
may include, but is not limited to, academic suspension or dismissal
from the university.
The full text of the Student Academic Conduct Policy is available
from the Provost's Office:
Computer Science Gateway
All computer science majors and some computer engineering majors
are required by the Gateway to earn a grade of at least "B" in
CMSC 201 and CMSC 202 in order to stay in their major.
If you fall under this gateway requirement and you received a grade
of "C" or lower in CMSC 201, then you must retake
CMSC 201 prior to completing CMSC 202. This is
because the Registrar's Office considers (correctly) CMSC 201
and CMSC 202 as a sequence and will not allow you to retake
CMSC 201 after you have completed CMSC 202.
From the "Academic Requirements and Regulations" section of the
Undergraduate Catalog, under "Repeating Courses":
... students may not repeat a course for a higher grade
once they have completed any subsequent course of a higher
level in an academic sequence (for example, students may
not retake FREN 101 after successfully completing
This same section of the catalog also states that
"students may not register for a course more than
Email is great --- much better than voice mail. If you need to contact
your instructor about this class outside of lecture and office
hours, email is much better than the telephone. You should, however,
observe the following etiquette:
- Email is good for lots of things, but it is horrible for
debugging. You should use your instructor's office hours, the
TAs' office hours or the Help Center for debugging help.
- When you send email to your instructor, your instructor
will reply to the address from which the email was sent.
- When your instructor wishes to initiate email to you, it
will be sent to your UMBC GL account. Therefore, you should check
your email at that account on a regular basis, as it will be used
when necessary to communicate with the class outside of normal
lecture time. You may also choose to forward your UMBC mail to
an outside account.
- Use your real name. Email from "Hot Stuff" gets deleted without being
- Use only the email addresses listed under "Staff Contact
Information". Mail sent to any other addresses may not
- Include your name and section number in all email correspondence
with course staff.
- Include a meaningful subject line, something like "CMSC
202 Project 2 question". Your instructor teaches more than one
course, so don't just refer to a project number.
- Send email in text format only (no HTML, MS Word attachments, etc.). Mail
with suspicious attachments will not be read.
- If you ask a good question, the answer (along with your question) might
be copied to all the students in CMSC 202. If you do not want this possibility,
clearly indicate so in your message.
In addition, due to the volume of student email during each semester,
please note the following:
- Do not expect responses during holidays or weekends, late in the
evening, or on the evening a project is due. If you do not receive a
response within several business days, feel free to email them again, your
original email may have been lost or spam-filtered.
- Do not expect an immediate response to your mail. This means
your should ask your project questions WELL BEFORE the due date,
if you expect an answer in time to help you.
- Do not wait to submit a project because you are waiting for a response
to your email. Once you receive a response, you can resubmit an updated
version of your project if you so choose (subject to the late penalties and
policies outlined above).
[Spring '07 CMSC202]
26 Jan 2007 03:47:30 EST