Syllabus
Lecturers
Lecturer: Mr. Dennis Frey
Office: ECS 222
Office Hours: MW 3:00 - 4:00 PM, TuTh 2:00 - 3:00 PM
Telephone: 410-455-3540
E-mail: frey@cs.umbc.edu
Lecturer: Ms. Susan Mitchell
Office: ECS 225 L
Office Hours: Mon 9:30 - 10:30 AM, Tues 10:00 - 11:00 Wed 2:30 - 4:30
Telephone: 410-455-3099
E-mail: smitchel@cs.umbc.edu
Lecture Times and Places
1526] 0101 TuTh.......2:30pm- 3:45pm (LH5 ...) MITCHELL, S
M.........10:00am-10:50am (FA 006) DIS
[1527] 0102 TuTh.......2:30pm- 3:45pm (LH5 ...) MITCHELL, S
W.........10:00am-10:50am (FA 006) DIS
[1528] 0103 TuTh.......2:30pm- 3:45pm (LH5 ...) MITCHELL, S
Tu.........4:30pm- 5:20pm (FA 006) DIS
[1529] 0104 TuTh.......2:30pm- 3:45pm (LH5 ...) MITCHELL, S
Th.........4:30pm- 5:20pm (FA 006) DIS
[1530] 0201 MW.........5:30pm- 6:45pm (LH5 ...) FREY, D
M..........7:00pm- 7:50pm (LH5 ...) DIS
[1531] 0202 MW.........5:30pm- 6:45pm (MP 103) FREY, D
W..........7:00pm- 7:50pm (ACIV305) DIS
[1532] 0203 MW.........5:30pm- 6:45pm (LH5 ...) FREY, D
M..........7:00pm- 7:50pm (SS 409) DIS
[1533] 0204 MW.........5:30pm- 6:45pm (LH5 ...) FREY, D
W..........7:00pm- 7:50pm (SS 409) DIS
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 and C++ programming languages. This is the second course for
students interested in pursuing further study in computer science. 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 and 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.
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 sections.
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 they are
not in the textbook. You are responsible for the material in the readings,
even if they are not covered during lecture.
Assignments and Grading
Grading Criteria
Your grade in this course is based on projects, quizzes, and exams which are discussed
in more detail below. The grades are broken down as follows:
8 Quizzes (drop lowest) = 10%
4 Projects (10% each) = 40%
3 Exams (15/15/20) = 50%
Total = 100%
Letter grades will be on the (fairly) 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, so don't ask.
After each grade is returned, there is a grace period of one (1) week
during which you may come speak to to your instructor about any problems you have with
your grade. After that time, your grade stays where it is.
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 will be graded according to three criteria:
correctness (50 %), design (30 %), CMSC 202 coding standards (20 %)
For details and an Important Warning
, see Project Submission and Grading Policy.
There will be four (4) projects each worth 10% (40% total) of your final grade.
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.
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 (almost never).
Exams must be taken with your lecture session unless prior permission has been given
(almost never).
Exams are not cumulative. Note that you may be required to use skills
from earlier in the semester while solving problems on an exam, but each exam
will focus on material that has not been tested on previous exams.
Unless otherwise noted, all exams are closed-book, closed-notes.
Quizzes
There will be eight (8) equally weighted quizzes. You must take quizzes in your own
discussion section. The purpose of the quizzes is to help you make sure you're getting
the right level of understanding from the required readings. Quizzes will
cover only material from the text. To accomodate students with unforseen, but legitimate,
reason to miss an occassional discussion, the lowest quiz score will be dropped.
Quizzes make up 10% of your total grade.
Email Etiquette:
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:
- Do not include your programs unless requested. 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.
- Use your real name. Email from
"Hot Stuff" gets deleted without being read.
- Include a meaningful subject line, something like "CMSC 202
Project 2 question."
- If you ask a good question by email, we will send your question and
the reply to the entire class as well. If you do not want your question
repeated to the entire class, please state so clearly in your message.
- Know the difference between "reply" and "reply to all".
- Know how to include a plain text file in an email message without
sending it as an attachment. Attachments are really annoying. It is
rare that a plain text file needs to be sent as an attachment.
- You should also know that email is not secure.
Before you send an e-mail to anyone, it is a good idea to ask yourself the following questions.
- Would you say what you have said in the e-mail directly to the person?
- Do you want what you have said in the e-mail permanently recorded and possibly distributed to others?
- Do you want anyone and everyone to read what you have written?
If your answer is "no" to any one of these questions, it is probably best not to send the e-mail.
In addition, due to the volume of student email during each semester, please
note the following:
- Do not expect responses during holidays or weekends or late in the evening.
- Do not expect an immediate response to your mail. As a rule of thumb, expect two business days turnaround time. This means ask your project questions WELL BEFORE the due date, if you expect an answer in time to help you.