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