CSE 232

Introduction to Programming II
Fall Semester, 2017


Continuation of object-centered design and implementation in C++. Building programs from modules. Data abstraction and classes to implement abstract data types. Static and dynamic memory allocation. Data structure implementation and algorithm efficiency. Lists, tables, stacks, and queues. Templates and generic programming.


The focus of the coures will be:


Dr. Bill Punch
Office: 3147 Engineering   Office Hours: after class or by appointment
Phone: 517-353-3341   email: punch at msu dot edu
  email is by far the best way to contact me

Course Web Site

Information related to the course is available on the Internet at: http://www.cse.msu.edu/~cse232

Those files are also accessible from the CSE Instructional System under the /user/cse232 directory.

Discussion boards will also be on https://d2l.msu.edu

Course Textbook

book cover image C++ Primer, 5th Ed. by Lippman, Lajoie, Moo. ISBN-13:978-0321714114 . This is an optional book, though very useful as a reference.


Mimir is a required element for the class. Much of your programming work will be turned in via Mimir. Lab 00 sets up for registering for Mimir.

Mimir gives you two weeks grace period before you are required to pay $25 for the semester. Mimir is a required registration for the course.

No Lectures

As of FS 17, CSE 232 has no lectures. Students attend a 1 hour recitation/laboratory session based on their Section number. There are also a set of students who even do the laboratory exercises strictly online.

Laboratory Sessions

The computing laboratory for CSE 232 is located in 3345 Engineering; attendance at scheduled laboratory sessions is mandatory. Missing laboratory sessions will reduce your final grade (see below).

The two-hour scheduled laboratory sessions are coordinated by Teaching Assistants, and are used to complete laboratory exercises and to consult with Teaching Assistants about other aspects of the course, e.g. projects.

The laboratory exercises are designed to be learning tools that complement the lectures and assigned readings. They are designed to be collaborative experiences where students work with each other and the Teaching Assistant to complete the lab exercises. Students who are habitually late will not receive credit when they arrive late to lab.

Course Grades

Each student's course grade will be based on the sum of the points earned in the following categories:

Examinations (50% of total course points)
Computer Projects (45% of total course points)
Exercises (in-class) (5% of total course points)

To be eligible to earn a non-zero grade in the course, a student normally must do ALL the following:

  1. miss no more than two (2) labs,
  2. earn at least 50% of the total points for the computer projects, and
  3. earn at least 50% of the total points for the examinations.

The following table gives the scale for course grades:

4.0 90% of points available
3.5 85% of points available
3.0 80% of points available
2.5 75% of points available
2.0 70% of points available
1.5 65% of points available
1.0 60% of points available

The instructor reserves the right to adjust the scale for course grades, if necessary.

Important: Students who miss more than two (2) laboratory assignments will have their final grade reduced by 0.5 for each laboratory assignment missed: if a student had sufficient points to normally earn a 3.0, but misses four (4) laboratory assignments, that student's grade will be reduced by 2*0.5 to a 2.0 final grade. Contact your instructor, if you have any concerns about your performance in the class.

Important Dates

See: Academic Calendar 2017/18 for complete dates, but note that:

Common Night Exams

Two midterm examinations and a final examination will be conducted during the semester, and will constitute 45% of the total course points. These are a common night exam , see the schedule below. You will be allowed one sheet of notes (8.5x11 inches) both sides, but no electronic devices. Non-native English speakers may bring a paper dictionary.

For on-campus students these exams will be in-class exams held during the regular class times at the assigned lecture hall.

All issues related to the final examination will follow the policies and schedule of the University: MSU Final Exam Schedule.

Pre-lab exercises

Each week there will be one pre-lab exercise to warm you up for the week to come. These are online exercises. These exercises will not be graded, only marked on your reports as

Computer Projects

Eleven computer projects will be assigned, and will constitute 45% of the total course points. The projects will include the design and implementation of solutions using C++. Project solutions are submitted electronically via the Mimir

Computer Projects are to be done individually. Discussing problem-solving strategies with other students is encouraged, but as soon as the discussion turns to a particular implementation that must be done on your own.

Each project solution is electronically compared to all other solutions to identify similar solutions. Individuals that submit solutions that are essentially identical will receive a score of zero for that assignment, and will be reported to their Dean. A student who is involved in a second such incident of academic dishonesty will receive a grade of zero in the course. Since the comparison is done off campus, to protect your privacy do not include your name or PID in your project solution.

Under no circumstances should you share a project solution with another student. Simply showing your solution to another student almost guarantees a zero score: past experience shows that a student who asks to "look at" your solution will copy parts of it or pass it along to someone else who copies it.

Important Project Notes


The instructor reserves the right to modify course policies, the course calendar, and assignment specifications.

Any extenuating circumstances that impact on your participation in the course should be discussed with your lecture instructor as soon as those circumstances are known (such as absences due to illness, religious observances, or other required school activities).

All students are expected to be responsible users of the computer system provided for this course. Account usage guidelines published by the Department of Computer Science and Engineering are posted under: Acceptable Use Policy

Important Course Policies

  1. Make-ups for examinations may be arranged, if your absence is caused by a documented illness or personal emergency. A written explanation (including supporting documentation) must be submitted to your lecture instructor; if the explanation is acceptable, an alternative to the examination will be arranged. When possible, make-up arrangements should be completed in advance.
  2. A student who is unable to complete a computer project by the specified due date because of illness or a personal emergency should contact his or her lecture instructor. If the student's explanation is acceptable, the assignment due date will be extended (or his or her lecture instructor will make other appropriate arrangements).
  3. A student is allowed to miss up to two scheduled laboratory sessions without penalty so illness or personal emergency can be accommodated without needing to notify us. If a long-term illness or personal emergency consumes more than two, the student needs to contact his or her lecture instructor.
  4. To be eligible for credit, each solution to a computer project must fulfill the published requirements, must be submitted by the published due date, and must be your own work.
  5. The Department of Computer Science and Engineering expects all students to adhere to MSU's policy on Integrity of Scholarship and Grades, which includes the statement, ".... all academic work will be done by the student to whom it is assigned, without unauthorized aid of any kind". The complete text of the University policy is posted under: University Policy on the Integrity of Scholarship and Grades . Students who violate this policy may receive a failing grade in the course.
  6. Students requiring accommodation under the Americans with Disabilities Act (ADA) with MSU's Resource Centers for Disabilities (RCPD) should bring their Verified Individualized Services and Accommodations (VISA) form to the instructor as near the beginning of the term as possible.
  7. Extensive Teaching Assistant help is provided for this course,the college of Engineering's CoRe experience coordinate volunteer and paid tutoring assistance available to all students for many common classes, including CSE 232.
  8. Accommodations will be made for religious observances if requests are made well in advance. Since religious observances are usually known at the beginning of class and assignment due dates are in this syllabus, we expect students to request accommodation at the beginning of the semester. See MSU's policy on Religious Observance for more details.