MCS273 Introduction to C++ Programming (January 2013)

Course Description

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 gdb (a debugging tool), and make (for directing compilation of large programs).


MCS-177 or permission of instructor. I assume students have significant knowledge of some other programming language.

Text and Readings

The text for the book is, Cay Horstmann, C++ for Everyone, 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.

Course structure

Each day, you will have assigned reading which must be completed (and digested) by the start of class at 9:00 am. Short quizzes will be posted on Moodle for you to complete before coming to class. The quizzes will close at the beginning of each class and there will be no makeup for them. After addressing questions, I will present a 50 minute lecture highlighting important concepts.

On most days, 10:20-11:20 and 12:30-2:20 will be spent in lab doing programming projects (though on many of the days, the lecture might extend into some of the lab time). 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. I prefer that you finish the check-offs by the end of the 2:20-3:20 lab on the day they are assigned, but I will allow check-offs up until the next day's class (i.e., before 10:30 am).

You should use the remainder of the day to do the reading and complete the assigned quizzes on Moodle 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 take from 2 to 6 days of lab periods.

Class schedule

I 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 I am giving my best approximation of the day-to-day topics, it is possible that I 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 their difficulty

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%.

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, I reserve the right to subjectively adjust your final grade. In particular, I 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, or if you consistently miss classes or labs.


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 I make in grading, and I will gladly fix it. You may also request reconsideration if you feel I have been especially unjust.

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 10:30am the following class day. No assignments will be accepted late without a valid reason (illness, for instance).

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.

Academic Integrity

You are expected to to adhere to the highest standards of academic honesty, to uphold the Gustavus Honor Code and to abide by the Academic Honesty Policy. A copy of the honor code can be found in the Academic Bulletin and a copy of the academic honesty policy can be found in the Academic Polices section of the Gustavus Guide.

On homework, you should make a real effort to solve each problem by yourself, although you can and should discuss problems and their solutions with your classmates after you've made this effort. You should give credit to any people or texts that helped you find solutions. On tests, you are expected to work completely by yourself

You will be expected to sign the honor pledge on every exam.

A first violation of the honor code will result in a grade of 0 on the assignment in question. Any further violations will result in a grade of F for the course. In all cases, I notify the office of the Provost.

Disability Services

Gustavus Adolphus College is committed to ensuring the full participation of all students in its programs. If you have a documented disability (or you think you may have a disability of any nature) and, as a result, need reasonable academic accommodation to participate in class, take tests or benefit from the College's services, then you should speak with the Disability Services Coordinator, for a confidential discussion of your needs and appropriate plans. Course requirements cannot be waived, but reasonable accommodations may be provided based on disability documentation and course outcomes. Accommodations cannot be made retroactively; therefore, to maximize your academic success at Gustavus, please contact Disability Services as early as possible. Disability Services is located in the Advising and Counseling Center.

Disability Services Coordinator Laurie Bickett (6286) can provide further information.

Help for Students Whose First Language is not English

Support for English Language Learners (ELL) and Multilingual students is available via the College's ELL Support staff person, Andrew Grace (7395). He can meet individually with students to consult about academic tasks and to help students seek other means of support. The ELL Support person can also consult with faculty members who have ELL and multilingual students enrolled in their classes. The College's ELL staff person can provide students with a letter to a professor that explains and supports academic accommodations (e.g. additional time on tests, additional revisions for papers). Professors make decisions based on those recommendations at their own discretion. In addition, ELL and multilingual students can seek help from peer tutors in the Writing Center.