CIS 3100: Sample Course Syllabus

Title Object-Oriented Programming I
Description This course emphasizes an object-oriented approach to solving computer programming problems. Using these techniques leads to shorter system development life cycles, increased programmer productivity, code reusability, and reduced system maintenance costs. This course provides a thorough, practical knowledge of object-oriented programming methods. Students learn the principles underlying programming using a language such as C++.
This is the first part of a two-semester sequence. No prior knowledge of computer programming is required.
Prerequisites CIS 2200 or equivalent
Learning Goals Upon successful completion of this course, students will be able to:

  • Describe the form and structure of the C++ programming language.
  • Follow the steps in the program development process.
  • Use common methods and algorithms used in computer problem solving and be able to express those algorithms in the C++ language.
  • Develop solutions to a variety of programming problems using the C++ programming language.
Grades Student grades will be based on the following items:

  • Homework, Exams, and quizzes– 50%
  • Final exam – 35%
  • Programming Assignments – 10%
  • Class participation – 5%
Textbooks and other material

Gaddis, Tony. Starting Out with C++: From Control Structures through Objects, 8th edition. Pearson, 2014.

Available at the bookstore or directly from the publisher: http:// .  Also available – e-text only, with access code for MyProgrammingLab, direct from publisher:

Recommended text:  Hubbard, John R. Schaum’s Outline of Programming with C++.  McGraw Hill, 2000.

Software: Baruch CIS students may download MS Visual Studio (with C++) for free at

  • Course Overview, Introductory Concepts,  Hardware, Software, the Programming Process, Types of programming languages, Integrated Programming environment
  • Introduction to C++ programming:  identifiers, operators, types, cout, writing our first programs, programming style
  • Controlling execution: Expressions. Formatting output. Debugging.
  • Controlling execution: Decisions. Scope.
  • Controlling execution: Loops. Counters. Nested loops. Using files.
  • Reinforce control structures.
  • Program design: what makes a good program? program structures, data structures, stepwise refinement. Possibly start Functions. One to two programs due by this date.
  • Program design: Defining and using Functions
  • Review / Exam #1. One to two programs due by this date.
  • Data design: Using Arrays (1-dimensional)
  • Strings
  • Data design: Structures (records)
  • Data design: File I/O
    Review / Exam #2. One to two programs due by this date.
  • Pulling it all together: Objects and Classes
  • Objects and Classes, continued.
  • Review. One to two programs due by this date.
  • Final Exam (35%)