MCS-273: Introduction to C++ Programming (J-term 2001)
Contact information information
Amos Ong and David Wolfe will be teaching this course. Following is
information about how you can contact us:
We are available by appointment or when our doors are open.
World Wide Web
We will maintain a course homepage that will contain links to all
course handouts and some supplementary materials such as code to use
as a starting point in assignments. The URL for this course is
which you may want to save as a bookmark in your web browser.
Topics and objectives
In this course we will cover the fundamentals of the C++ programming
language. As Cay Horstmann points out, ``It is impossible to teach
all of C++ to beginning programmers in one semester. This book [and
course] purposefully omits several useful but technically complex C++
topics...'' We'll be covering built-it types, flow control,
functions, objects, classes, vectors, and pointers. We'll also focus
on effective use of
emacs (an editor),
gdb (a debugging tool), and
directing compilation of large programs).
Permission of instructor; MCS-177 is usually sufficient. We assume
students have significant knowledge of some other programming language.
Text and readings
The text for the book is,
Computing Concepts with C++ Essentials, 2nd edition.
The book assumes the reader has had no programming experience, so
most students in the course should be able to read through it rather
quickly. For the beginning of the course, we'll be covering about a
chapter a day.
Each day, you will have assigned reading which must be completed (and
digested) by the start of class at 9:00. After addressing questions,
we will give a short (5 minute) quiz on the reading, and then present
a 40 minute lecture highlighting important concepts.
On most days, 10:30-12:00 and 1:00-2:30 will be spent in lab doing
programming projects. Most of the lab activities will be completed in
lab, and you'll receive 2-4 check-off points per day as you
complete these activities.
You should use the remainder of the day to do the reading and the
recommended homework problems designed to prepare you for the next
A few lab assignments will be done in teams and will be graded (as
opposed to being checked-off). These will usually take 1 or 2 days of
We will maintain an on-line version of the schedule of classes and
labs, which also contains any due dates for the course. Please note
that although we are giving my best approximation of the day-to-day
topics, it is possible that we will need to revise the schedule during
Determination of course grade
Although each check-off lab and quiz will be graded leniently, you
will not pass the course unless you successfully complete the vast
majority of all assignments. Your course grade is computed by using
the following formula: c/3 + q/3 + p/3, where
To convert your percentage to your letter grade, use the following
conversion table. To convert your graded project grade to a numerical
grade, use the middle value in the range specified by the table. (So
a B on your project counts as 85%, whereas a B- on your
project counts as 81.5%.) Two exceptions: (i) an F counts as
55%; (ii) if you don't do an assignment, it counts as 0%.
- c is the percentage of check-off lab points you received
- q is the percentage of quiz-points you received
- p is the average of your graded projects, weighted
according to the number of days we expect them to take.
However, we reserve the right to subjectively adjust your final grade.
In particular, we intend to dock you additional points if you
fail to complete a significant number of the check-off labs and/or
Please see either of us if you have any question about how you
There will be no tests in this course with the exception of the
in-class quizzes based on the reading. If you've read the reading
with care, done the suggested review exercises, and gone over the
other review exercises in the book, these problems should be
Please point out any arithmetic or clerical error we make in grading,
and we will gladly fix it. You may also request reconsideration if you
feel we have been especially unjust. We recommend you speak with the
person who graded your assignment:
David Wolfe usually grades with a green pen.
Amos Ong usually grades with a black pen.
All assignments should be completed on time. Once in a while, you
might not be able to finish a lab during the lab periods. In this
case, be sure to get checked off by 9am the following class day. No
assignments will be accepted late without a valid excuse (illness, for
Students are encouraged to discuss the course, including issues raised
by the assignments. However, the solutions to assignments should be
individual original work unless otherwise specified. If an assignment
makes you realize you don't understand the material, ask a fellow
student a question designed to improve your understanding, not one
designed to get the assignment done. To do otherwise is to cheat
yourself out of understanding, as well as to be intolerably
Any substantive contribution to your solution by another person or
taken from a publication should be properly acknowledged in
writing. Failure to do so is plagiarism and will necessitate
The same standards regarding plagiarism apply to team projects as
to the work of individuals, except that the author is now the entire
team rather than an individual. Anything taken from a source outside
the team should be be properly cited.
One additional issue that arises from the team authorship of
project reports is that all team members must stand behind all reports
bearing their names. All team members have quality assurance
responsibility for the entire project. If there is irreconcilable
disagreement within the team it is necessary to indicate as much in
the reports; this can be in the form of a "minority opinion" or
"dissenting opinion" section where appropriate.
All programming assignments, including lab assignments, should conform
to the standards set forth in the text, with a few changes
highlighted in our local copy of the style guide.
Please contact either of us immediately if you have special physical
circumstances, e.g. impaired vision, which may affect the
accessibility of any course components. We will do our best to
facilitate necessary arrangements or resources.