MCS-273: Introduction to C++ Programming (J-term 2001)
Contact information information
Steve Benzel and Karl Knight 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 http://www.gac.edu/~mc38/2003J/ ,
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 make (for
directing compilation of large programs).
Prerequisites
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,
Cay Horstmann,
Computing Concepts with C++ Essentials, 3rd 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.
Course structure
Each day, you will have assigned reading which must be completed (and
digested) by the start of class at 10:30. 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, 11:30-12:30 and 1:30-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
day's lab.
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
lab periods.
Class schedule
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
the semester.
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
- 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.
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%.
| 93-100% | A
|
| 90-93% | A-
|
| 87-90% | B+
|
| 83-87% | B
|
| 80-83% | B-
|
| 77-80% | C+
|
| 73-77% | C
|
| 70-73% | C-
|
| 67-70% | D+
|
| 60-67% | D
|
| 0-60% | F
|
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, in-class
quizzes, or graded projects
Please see either of us if you have any question about how you
stand.
Tests
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
straightforward.
Grade changes
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:
Steve Benzel usually grades with a red pen.
Karl Knight usually grades with a green pen.
Late assignments
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 10am the following class day. No
assignments will be accepted late without a valid reason (illness, for
instance).
Honor
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
dishonorable.
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
disciplinary action.
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.
Style guidelines
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.
Accessibility
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.