UMBC CMSC202, Computer Science II, Spring 1998,
Sections 0101, 0102, 0103, 0104 and Honors
- Required textbook: A Book on C, by A. Kelley and I. Pohl,
fourth edition, Addison Wesley. (Note: the fourth edition of this
textbook is new.)
- Optional textbook:Programming Abstractions in C,
by E. Roberts, Addison Wesley.
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, basic pointer
manipulations, using pointers as parameters, file I/O and structures. In
addition, you should understand the following programming concepts:
functional/procedural abstraction, top-down design, separate compilation
and libraries. 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.
The objectives of this course are:
- To learn advanced C programming skills, including: writing
recursive functions and advanced pointer manipulations.
- 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.
Your grade for this course will be based upon 5 projects and 3 exams. Each
project is worth 8 percentage points, each exam 20 percentage points. Note
that the due dates for the projects and the dates of the exams are already
set (q.v. the syllabus and project policy handout). Please plan your
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
You are also expected to attend the recitations. New material will be
covered during recitation for which you are responsible. For example,
discussions about the projects, review for exams and instruction on the use
of the UNIX system will take place during the recitation rather than
Email is great -- much better than voice mail. If you need to contact me
(Prof. Chang) about this class outside of lecture and office hours,
email is much better than the telephone. You should, however, observe the
- Do not include your programs unless I request it. Email is good
for lots of things, but it is horrible for debugging. You should use my
office hours, the TAs' office hours or the Help Center for debugging
- Use your real name. I get a lot of junk email (spam). Email from
"Hot Stuff" gets deleted without being read.
- Include a meaningful subject line, something like "CMSC 202
Project 2 question."
- Send email to the email address, email@example.com, rather than a
slew of other email addresses that I have.
- If you ask a good question by email, I 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. It is quite easy for
someone to send mail to you pretending to be someone else. When I send
important email messages (e.g. class cancellation notices, project
extensions, grade reports), I will sign the message using a digital
signature. You can then use the pgp utility to check that the message
indeed came from me, rather than someone pretending to be me.
Instructions on how to use pgp is available on the course web page.
23 Mar 1998 13:07:51 EST
to Spring 1998 CMSC 202 Section Homepage