CMSC 202, Fall 2001 -- Syllabus
Lecturers
Lecturer: Ms. Bianca Benincasa, sections 0201-0204
Office: ECS 218
Office Hours: TTh 4:00 - 5:15pm
Telephone:
410-455-3094
E-mail: bbenin1@cs.umbc.edu
Lecturer: Mr.
Dennis Frey, sections 0101-0104
Office: ECS 222
Office Hours: MW 2:00 -
2:45pm, TuTh 1:00 - 2:00pm
Telephone: 410-455-3540
E-mail: frey@cs.umbc.edu
Teaching Assistants
Sections 0101-0102: Amit Choudhri
Office Hours: MW 10:45am-12:45pm
Email: amitc1@cs.umbc.edu
Sections 0103-0104: Amit Joshi
Office Hours: M 2:00pm-4:00pm, F 10:30am-12:30pm
Email: amit3@cs.umbc.edu
Sections 0201-0202: Vipul Hingne
Office Hours: TTh 1:00pm-2:00pm, 4:00pm-5:00pm
Email: vipul1@cs.umbc.edu
Sections 0203-0204: Sunder Parameswaran
Office Hours: M Th 10:30am-12:30pm
Email:
sparam1@cs.umbc.edu
All TA office hours are held in room ECS 335A.
Class Times and Locations (by section)
[1596] 0101 TuTh.......2:30pm- 3:45pm (LH2 ...) Frey
Tu 4:00pm- 4:50pm (SS 409) Discussion
[1597] 0102 TuTh.......2:30pm- 3:45pm (LH2 ...) Frey
Th 4:00pm- 4:50pm (SS 204) Discussion
[1598] 0103 TuTh.......2:30pm- 3:45pm (LH2 ...) Frey
Tu 4:00pm- 4:50pm (MP 102) Discussion
[1599] 0104 TuTh.......2:30pm- 3:45pm (LH2 ...) Frey
Th 4:00pm- 4:50pm (SS 409) Discussion
[1600] 0201 TTh........5:30pm- 6:45pm (LH2 ...) Benincasa
Tu 7:00pm- 7:50pm (SS 110) Discussion
[1601] 0202 TTh........5:30pm- 6:45pm (LH2 ...) Benincasa
Th 7:00pm- 7:50pm (ACIV305) Discussion
[1602] 0203 TTh........5:30pm- 6:45pm (LH2 ...) Benincasa
Tu 7:00pm- 7:50pm (MP 012) Discussion
[1603] 0204 TTh........5:30pm- 6:45pm (LH2 ...) Benincasa
Th 7:00pm- 7:50pm (SS 101) Discussion
Textbooks
Required
C++ How To Program, Third Edition by Deitel and Deitel,
Prentice Hall Publishing
Data Structures and Other Objects Using C++ by Main and Savitch,
Addison Wesley Publishing
Suggested References
Effective C++ Second Edition by Scott
Meyers, Addison Wesley Publishing
More Effective C++ by Scott Meyers,
Addison Wesley Publishing
Course Description
This course continues the development of programming
and problem-solving skills, focusing on recursion, pointers, data abstraction,
and procedural abstraction. Topics include: introduction to asymptotic notation;
data structures including lists, stacks, queues, hash tables and elementary
binary search trees; sorting and searching; and an introduction to the C++
language and to object-oriented programming. Programming projects for this
course will use the C++ programming language.
Prerequisites: CMSC 201 and MATH 151.
CMSC Gateway
For students who enrolled in college for the first time in
Summer 1998 or later, you have two choices: pass both of CMSC 201 and CMSC 202
with a grade of B or better or don't graduate as a CMSC major. The
registrar has very specific rules about repeating courses in sequence;
for example, if you
were to have a C in 201 and then take and pass 202 expecting to retake
201, you can't. Since the classes form a sequence, you cannot
retake an earlier class in the sequence once you've passed a later one.
Also, note that all University deadlines (for adding or dropping courses,
changing grading method, etc.) will be strictly enforced.
Objectives
The objectives of this course are:
- To learn and practice problem solving techniques
- To learn to understand algorithm efficiency in terms of asymptotic
analysis
- To master some basic data structures, including: linked lists, stacks,
queues and binary search trees.
- To understand the fundamental programming concepts of abstract data types,
recursion, memory allocation and functional parameters.
- To gain familiarity with basic algorithms for searching and sorting,
including: hashing, binary search, Merge Sort and Quicksort.
- To learn programming in C++ and object-oriented programming.
Lectures and Readings
You are expected to attend all lectures and
discussions for the section in which you are enrolled. Although both classes
will cover the same general topics, you are responsible for the specifics given
during your section. You may attend the other instructor's lectures for
review purposes, but this is not a substitute for attending your section.
You are expected to attend all lectures and your weekly discussion session.
You are responsible for all material covered in the lecture, even if it is
not in the textbook. You are responsible for all material in the readings,
even
if it is not covered during lecture.
Assignments and Grading
Grading Criteria
Your grade in this course is based on projects
(which will include homework assignments) and exams, which are discussed
in more detail below. The grades are broken down as follows:
5 Projects (10% each) = 50%
2 Midterms (15% each) = 30%
1 Final Exam = 20%
Letter grades will be on the standard scale:
0 <= F < 60
60 <= D < 70
70 <= C < 80
80 <= B < 90
90 <= A <= 100
Your grade is based on timely work accomplished during the semester;
incomplete grades will only be given for medical illness or other such dire
circumstances. Final grades will not be curved.
After each grade is returned, there is a grace period of one (1) week during
which you may speak to to your instructor about any problems you have with
your grade. After that time, your grade will stand.
Projects
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 by midnight of the due date. If you fail to turn in a
project on time, a late penalty will be assessed (even if it's only a few
seconds late -- no excuses, no exceptions). Projects are accepted up to
48 hours past the due date; there is a 10% penalty for 24 hours late and a
25% penalty for 48 hours late. After 48 hours, no project submissions
will be accepted -- no exceptions.
Projects will be graded according to
three criteria: correctness of observable behavior, adherence to project
requirements, and (to a lesser degree) adherence to course style/coding
standards. Note: All projects must compile in order to receive any
credit, so make sure to allow ample time for debugging. (Exceptions may
occasionally be made in cases of simple, last-minute compiler errors such
as forgetting to include a semicolon or close a comment; however, you
will be responsible for finding such errors and bringing them to your
instructor's attention.) Further details will be provided
with the first project assignment. Each project will also include a
homework assignment, as described below, to be worth a variable amount of
each project grade.
There will be five graded projects, as discussed above. In addition,
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 5 minutes before your project is due is a recipe for
disaster. In the event of network outages or computer failures that last less
than two weeks, 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.
Exams
There will be three (3) exams -- two midterm exams worth 15% each
and the final exam worth 20%. (Note that the last exam is given during the
scheduled final exam time for the class.) Make-ups for exams are given
under only the most dire circumstances (such as hospitalization). Exams
must be taken with your lecture session.
Midterm exams are not cumulative; the final exam is cumulative.
Note that you may be required to use skills from earlier in the semester
(or even a previous course) while solving problems on an exam, but each
midterm exam will focus on material that has not been tested on previous
exams.
Unless otherwise noted, all exams are closed-book, closed-notes.
Homeworks
Associated with each project will be a homework assignment. The purpose
of the homework is to spend some time thinking about the design of your
project before actually implementing it. Generally, the homework for a
project will be due a week before the project itself. You will be graded
not only on the merits of your design, but on whether or not you actually
follow your design in the implementation of the project. Homeworks will
be submitted electronically just like projects; late homeworks are not
accepted. More details will be provided with the first project
assignment.
Project Policies
All projects must be completed by your own individual effort. You
should never have a copy of someone else's project 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 severely.
If you need help with your project, see your instructor, your TA,
the Computer Science Help
Center, room ECS 332, or tutors provided by the Learning Resource
Center.
Having someone else's project in your possession, even briefly, is
forbidden.
Safeguard your account password; you are responsible for the
actions of anyone else you may allow to log into your account.
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, both you and the other student (if applicable) will receive a
grade of 0
for that project. Furthermore, all parties concerned will have their prior
projects re-checked for cheating. A second incident will result in a
grade
of 'F' for the semester.
Any act of dishonesty may be reported to the University's Academic
Misconduct Committee for further action.
Email Policies
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: