UMBC CMSC 202, Computer Science II, Fall 1999
Course Description
Textbook:
C++ with Object-Oriented Programming by Paul S. Wang, PWS Publishing.
You may also want to consult these books:
- Learning C++: A Hands-On Approach by Eric Nagler, West Publishing
Company. This is my favorite reference for C++. It is short on narrative
text, but rich with examples. You must study the examples carefully to
benefit from this book, so many students don't like it.
- C++ How to Program by Deitel & Deitel, Prentice Hall. This is a
good book with nice sections on common programming errors, good programming
practices, performance tips, and software engineering observations.
- C++ Primer by Stanley Lippman & Josee Lajoie, Addison Wesley.
This is another good C++ textbook that has been around for a while and is now
in its third edition.
- C++ for C Programmers by Ira Pohl, Benjamin Cummins. A short book
aimed at students already proficient in the C programming language.
- The C++ Programming Language by Bjarne Stroustrup, Addison Wesley.
This is not easy reading, but it is the definitive C++ reference, authored by
the creator of the language.
- Effective C++ by Scott Meyers, Addison Wesley. An advanced book
that will help you fine-tune your C++ programming skills.
- Advanced C++: Programming Styles and Idioms by James Coplien. Another
advanced book to help C++ programmers improve their expertise. Not for
beginners!
Prerequisites:
The course prerequisites for CMSC 202 are CMSC 201 (Computer
Science I) and MATH 151 (Calculus I), or their equivalents. We will assume
that you have mastered the following programming skills in C: writing
functions, using header files, character handling, string handling,
advanced pointer manipulations, using pointers as parameters, file I/O and
structures, linked lists, stacks and queues. In addition, you should
understand the following programming concepts: functional/procedural
abstraction, top-down design, separate compilation, libraries and memory
allocation. If you are unfamiliar with a significant number of these skills
and/or concepts, you should take CMSC 201. This course will not review
material that has been covered in CMSC 201.
Objectives:
The objectives of this course are:
- To learn programming in C++ and object-oriented programming.
- 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.
Grading:
Your grade for this course will be based upon 4 projects, 2 short exams
(45 minutes), a midterm exam (75 minutes), and a final exam (2 hours).
These grades will be given weights as follows:
- Projects = 40%
- Exams = 60%
- Short exams, 10% each
- Midterm, 15%
- Final, 25%
Note that
the due dates for the projects and the dates of the exams are already set
on the syllabus. Please plan your schedules
accordingly.
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.
Attendance and Readings:
You are expected to attend all lectures. You are responsible for all
material covered in the lecture, even if they are not in the textbook. You
should keep up with the assigned readings during the semester. Some reading
material will distributed through the course web page. You are responsible
for the material in the readings, even if they are not covered during
lecture.
You are also expected to attend the discussion sections. New material will
be covered during discussion for which you are responsible. The short exams
will be given during the discussion sections.
Email Etiquette:
Email is great -- much better than voice mail. If you need to contact the
instructor about this class outside of lecture and office hours,
email is much better than the telephone. You should, however, observe the
following etiquette:
- Include a meaningful subject line, something like "CMSC 202
Project 2 question."
- Send email only to the email address indicated on the Contacts page.
- Know the difference between "reply" and "reply to all".
- Know how to use attachments. Occasionally I may ask you to send
me something as an email attachment.