MCS-273: Introduction to C++ Programming (J-term 2015)

Topics and objectives

In this course we will cover the fundamentals of the C++ programming language. C++ is a huge language and it is impossible to teach all of it to beginning programmers in one semester. This course (and the textbook) purposefully omits several useful but technically complex C++ topics. We will be covering built-it types, flow control, functions, objects, classes, vectors, and pointers. We will also focus on effective use of a text editor (or IDE) of your choice, and make (for directing compilation of large programs).

Prerequisites

MCS-177 or permission of instructors. We assume students have significant knowledge of one 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:00am. After addressing questions, we will give a short (5 minute) quiz on the reading, and then present a 40 minute lecture highlighting important concepts. If you are not there by the time the quiz is given, you will not be allowed to take it.

On most days, 10:20-11:20 and 12:30-2:20 will be spent in lab doing programming projects. (On some 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. We prefer that you finish the check-offs by the end of the 12:30-2:20 lab on the day they are assigned, but we 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 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

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 our 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 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, or if you consistently miss classes or labs.

Please see me 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.

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.

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 (https://gustavus.edu/advising/disability/) is located in the Academic Support Center.

Help for Students Whose First Language is not English

Support for English Learners and Multilingual students is available through the Academic Support Center and the English Learning Specialist, Laura Lindell (llindell@gustavus.edu or x7197). She can meet individually with students for tutoring in writing, consulting about academic tasks, and helping students connect with the College's support systems. When requested, she can consult with faculty regarding effective classroom strategies for ELs and multilingual students. Laura can provide students with a letter to a professor that explains and supports appropriate academic arrangements (e.g., additional time on tests, additional revisions for papers). Professors make decisions based on those recommendations at their own discretion. In addition, EL and multilingual students can seek help from peer tutors in the Writing Center.