CIS 250

Programming Methods II: C++

Course Description


This class focuses on object-oriented programming techniques to design, construct and manage computer robust programs. The class introduces algorithms, control structures, functions, classes, basic data structures, and debugging and testing methods.

Prerequisite

  • CIS 118/119 or equivalent familiarity with Java or C syntax, simple control structures and principles of object-oriented programming.

Instructor

  • Chuck Iverson
  • Office Hours: MESA/Learning Center
  • Office: 18-106
  • Office Phone: (650) 306-3253
  • Email: iverson@smccd.edu
  • Web Page: http://www.civerson.com

Class Location and Meeting Times

  • Building 22, Room 118
  • 2:05-3:15 pm TTh

Materials

  • Starting Out with C++ (7th Edition) by Gaddis (ISBN 978-9-13-607774-9)
  • Access to a computer with a C++ compiler.

Grading

  • Class Exercises (20%)
  • Homework Exercises (40%)
  • Exams (35%)
  • Class Participation (5%)

Program Grading Criteria


Programming exercises will be done in class and will also be assigned as homework. Student programs will often be reviewed in class. Programs are evaluated according to the following considerations:
  • Does the program work (i.e., does it react in a correct or reasonable way to all input, whether that input is reasonable or not)?
  • How well does the program handle boundary conditions?
  • Was the program written with the tools and within the constraints outlined in the assignment?
  • Does it make use of the methods and design guidelines discussed in class?
  • Was reasonable judgement used in tackling any "gray areas?
  • Is the source code clear, readable and well-commented?
  • Could someone understand the program without having read the assignment?
  • Is the code efficient and to the point?
  • Is it portable?
  • Is it original?

Exams


Two midterm exams will be given during the semester. Each midterm exam will cover six chapters. You may have one sheet of notes for each exam. See the tentative schedule below for the dates of the exams. The final exam will cover only the last six chapters.

Sample Student Learning Objectives

  • Analyze a problem by decomposing it into smaller problems, develop algorithms to solve the smaller problems, implement the algorithms in C++, and test the program with input that shows your program produces correct output whether the input is good or not.
  • Read data from a file, process it and write the results back to a file.
  • Design a set of classes to work together to solve a problem.

Expectations


I can help you succeed in this class, but I can't succeed for you. In this class you're expected to be responsible for your own academic success.
  • That means you are expected to attend class and to arrive on time (2 lates equals 1 absence, more than 4 absences leads to a drop).
  • If you're going to miss class, you should notify me ahead of time, either by phone or email.
  • You are expected to contribute to class discussions and to ask questions when something is not clear.
  • You are expected to do your homework assignments before the class when they are due and to seek help from me or your classmates or a tutor if you are having difficulty completing them.
  • You should check the class notes and assignments link (top right of this page) if you miss class. All class assignments, exam solutions, sample problems and special notes will be posted at this web site after class.
  • You are expected to see me during office hours for additional help or to take make-up exams.
  • All program source code is to be submitted to me electronically as a zipped email attachment. You may use any C++ compiler as long as you're using standard libraries.

Class Notes and Assignments


http://www.civerson.com/C250/

Instructor's Spring 2012 Class Schedule


My class schedule, below, shows when and where I'm on campus. The best way to contact me if I'm not on campus is via email. I check my email several times a day. I have my email automatically sorted by the first 4 characters in the subject field. For this class, the subject line of the email should begin with C250.

Spring Schedule


Tentative Topic Schedule


Tuesday Thursday
1/17 - Chapters 1-6 - Introduction to C++ 1/19 - Chapters 1-6 - Developing Algorithms
1/24 - Chapters 1-6 - Developing Algorithms 1/26 - Chapters 1-6 - Developing Algorithms
1/31 - Review 2/02 - Exam on Chapters 1-6
2/07 - Chapter 7 - Structures in C++ 2/09 - Chapter 7 - Structures and Classes in C++
2/14 - Chapter 7 - Classes in C++ 2/16 - Chapters 8 - Arrays in C++
2/21 - Chapter 9 - Array Processing 2/23 - Chapter 9 - Array Processing
2/28 - Chapters 10 - Pointers and Dynamic Memory Allocation 3/01 - Chapters 10 - Pointers and Dynamic Memory Allocation
3/06 - Chapter 11 - Operator Overloading 3/08 - Chapter 11 - Operator Overloading
3/13 - Chapter 12 - String Processing 3/15 - Chapter 12 - String Processing
3/20 - Review 3/22 - Exam on Chapters 7-12
3/27 - Chapter 13 - File Operations 3/29 - Chapter 13 - File Operations
4/03 - Spring Break 4/05 - Spring Break
4/10 - Chapter 14 - Recursion 4/12 - Chapter 14 - Recursionm
4/17 - Chapter 14 - Recursion 4/19 - Chapter 15 - Inheritance and Polymorphism
4/24 - Chapter 15 - Inheritance and Polymorphism 4/26 - Chapter 15 - Inheritance and Polymorphism
5/01 - Chapter 16 - Exceptions, Iterators and Templates 5/03 - Chapter 16 - Exceptions, Iterators and Templates
5/08 - Chapter 17 - Linked Lists 5/10 - Chapter 17 - Linked Lists
5/15 - Chapter 18 - STL Stacks 5/17 - Chapter 18 - STL Stacks
5/22 - 2:10-4:40 Exam on Chapters 13-18


© Cañada College 2012