Kishwaukee College Syllabus
CIS 150 - 5002
C++ Programming I
3 Credit Hours, Spring 2017
  1. Course Description
    The first course in the C++ language sequence. It emphasizes a disciplined approach to problem solving and algorithm development. Topics will include: input, output, sequence, selection, repetition, functions, arrays, data abstraction, pointers, text manipulation, records, and files. Program design, style, documentation, and testing will be practiced. Programming assignments will be completed outside of class. Three hours lecture/discussion a week. IAI: CS 911
    Prerequisite: Appropriate Mathematics placement test score or MAT 086 or MAT 098
  2. Meeting Time and Place
    Lecture/Lab:   A-1374    
    Time:6:00 P.M. - 8:45 P.M.Tuesday
    Dates:1/17/17 - 5/19/17 
    Withdrawal date:5/1/17 
    MLK Birthday observed:1/16/17School closed
    Faculty development:4/13/17School closed
    Good Friday:4/14/17School closed
    Spring break:3/13/17 - 3/19/17School closed
    Midterm exam:3/7/17, 4/11/17during class
    Final exam:5/16/176:00 P.M. - 7:50 P.M.
  3. Instructor Information
    Instructor: David G. Klick
    Office:A-1342
    Email:David.Klick@kishwaukeecollege.edu
    Phone:815-825-9337
    Website:kermit.kishwaukeecollege.edu/~dklick/
    Backup website:klickfamily.com/david/school/
    Desire2Learn:https://kish.desire2learn.com/
    Dept. Secretary:815-825-9303 (Shelley Lawson)
    Office hours:M 1:45 P.M. - 2:30 P.M., 5:00 P.M. - 6:00 P.M.
    T 1:45 P.M. - 2:30 P.M., 5:00 P.M. - 6:00 P.M.
    W 10:00 A.M. - 11:00 A.M.
    R 10:45 A.M. - 12:30 P.M.
    other times by appointment
  4. Expected Learner Outcomes
    Upon completion of this course, the student will be able to:
    1. get input from the keyboard and place output on the screen
    2. use control-flow statements in C++ to achieve branching and repetition
    3. define and discuss functions as used in C++
    4. code and run programs using library functions and user-written functions
    5. define and discuss variable scope and class
    6. code and run programs using arrays, pointers and reference variables
    7. compare and contrast the basic data types, structures and classes
    8. code and run programs including structures and classes
    9. code and run programs using data files
  5. Required Text and Materials
    1. Vahid Frank and Roman Lysecky. KISHWAUKEECOLLEGECIS150KlickSpring2017 Programming in C++. Zyante Inc. Copyright 2017. This book is an online, interactive book. Sign up at zyBooks.com, enter zyBook code KISHWAUKEECOLLEGECIS150KlickSpring2017 and click Subscribe
    2. Internet access
    3. A standard modern C++ compiler (available free via the Internet)
  6. Breakdown of Course Requirements
    10 programming projects @ 30 points each300 points
    10 labs @ 10 points each100 points
    11 chapter challenges @ 15 points each165 points
    2 midterm exams @ 75 points150 points
    1 final exam @ 85 points85 points
    --------------------------------------------------------------------
    Total800 points
  7. Final Grade Determination
    A = 90 - 100% 720 points or more
    B = 80 - 89.9%640 - 719 points
    C = 70 - 79.9%560 - 639 points
    D = 60 - 69.9%480 - 559 points
    F = below 60%less than 480 points
    Grade reports will not be mailed out. Please check KishSOS,
    My Student Info, under Academic Profile, Grades, for grade reports.
  8. Course Procedures
    1. Students are expected to attend class sessions on time and prepared (Note: CIS 123 class sessions are optional attendance). Students should bring whatever they need to take notes to every class.
    2. Students are expected to spend time outside of class completing assignments.
    3. Food and beverages are not permitted in the classrooms or labs. See a more detailed policy at http://kermit.kishwaukeecollege.edu/~dklick/foodDrinkPolicy.html
    4. A familiarity with computers and the Windows operating system is expected.
    5. Depending on the assignment, both digital and hardcopy versions of assignments may be required for submission. The procedure for submitting digital copies of assignments will be explained in class. Make sure you always keep a copy of all of your assignments. The instructor is NOT responsible for network failures, server failures, or student mistakes.
    6. The instructor answers many questions via email. Due to the high volume of requests, submissions, and questions received via email, the instructor must prioritize responses. Most questions will be answered (or at least acknowledged) within 48 hours. If you do not get a response when you expect one, please keep in mind that your email may have failed to reach the instructor, or may have automatically been rejected by an email client or server. Please try to contact the instructor again and possibly use the phone or an in-person visit if email is failing.
  9. Make-up Policy
    1. Assignments are to be turned in on time. Assignments which are not turned in on time will not be accepted unless individual arrangements are made in advance with the instructor. In unusual cases where late assignments are accepted, the cost of being late is ten percent of the total possible points for every portion of a day late, up to a maximum of three days late. For example, an assignment received twenty-five hours past its due date will lose twenty percent of its total possible point value (because it is two days late). Assignments which are received more than three days (seventy-two hours) late will not be accepted and are not worth any points. Exceptions may be made to this rule if the student contacts the instructor before the due date and makes special arrangements in advance with the instructor. All late acceptance decisions of this nature are left solely to the discretion of the instructor. This rule does not apply once answers to an assignment have been distributed or posted. Assignments submitted after answers have been released are worth zero points even if the answers are posted one minute past the due date.
    2. Answers to assignments may be posted online, handed out in class, or sent via email by the instructor. Once an answer to an assignment has been released, no further submissions for the assignment will be allowed. This rule supersedes all other rules about when late assignments may be accepted. In general, the instructor will try to wait at least forty-eight hours before posting or distributing solutions, but there is no guarantee, so get your assignments in on time.
    3. Tests are to be taken at the day and time scheduled. Failure to take a test at the scheduled time may result in a grade of 0 for that test. In the case of an excusable absence or a genuine emergency, the instructor must be contacted as soon as possible, preferably before the scheduled test, to reschedule the makeup of that test in the Learning Skills Center on the day the student returns to campus.
  10. Attendance Policy
    Class attendance is strongly encouraged. You are responsible for whatever was covered in class, whether you are there or not. If you must miss a class, it is your responsibility to contact the instructor and make arrangements for notes, handouts, or announcements that were missed. Although attendance is not counted toward the final grade, there may be coursework which is done during class time which may count toward the final grade and may not be able to be taken outside of class time.
Tentative Weekly Schedule

Please note that this schedule and the topics covered are likely to change. Changes will be announced in class. If you are not able to attend class, it is your responsibility to find out what was covered. A more detailed schedule is provided on the course website. Assignment descriptions and due dates will also be posted on the course web site.

Week Date   Topics
1 1/17 Overview of course and introduction to programming (Chapter 1)
  • School closed for MLK birthday observance on 1/16/17
  • syllabus
  • C++ compilers, MSDNAA downloads
  • intro to zybooks.com
  • writing a simple program, using Visual Studio
  • program structure, basic input and output, comments, errors
  • basic programming concepts
2 1/24 Variables, expressions, and assignment statements (Chapters 1 and 2)
  • identifiers, variables, and constants
  • assignment statements and arithmetic expressions
  • data types in C++
  • the binary number system
  • output formatting
  • Chapter 1 challenge activities due
  • Chapter 2 challenge activities due
  • In-class lab: Input, output, expressions, calculations
3 1/31 More variables and basics (Chapter 3)
  • characters and strings
  • overflow
  • number types and unsigned numbers
  • type conversions
  • math functions
  • random numbers
  • debugging
  • style guidelines
  • Chapter 3 challenge activities due
  • Program due: Input, output, calculations
4 2/7 Selection (Chapter 4)
  • the Boolean (bool) data type
  • logical operators
  • relational operators
  • using "if" and "if/else" selection statements
  • using the "switch" selection statement
  • the conditional (?) operator
  • Chapter 4 challenge activities due
  • In-class lab: Selection, calculation, output formatting
5 2/14 Repetition (Chapter 5)
  • using the "while" statement
  • using the "do/while" statement
  • using the "for" statement
  • nested loops
  • increment and decrement operators
  • the "break" and "continue" statements
  • loop counters and sentinel values
  • accumulators
  • Chapter 5 challenge activities due
  • In-class lab: Repetition, input validation
  • Program due: Selection, output formatting
6 2/21 Functions (Chapter 6)
  • breaking a program into simpler, modular pieces
  • creating and using simple functions
  • declaring and defining functions
  • calling functions
  • passing values to functions
  • returning values from functions
  • how functions work
  • In-class lab: Functions, input validation
  • Program due: Repetition
7 2/28 Functions continued (Chapter 6)
  • common errors in functions
  • passing references to functions
  • variable scope and lifetime in functions
  • default parameter values
  • overloading functions
  • unit testing for functions
  • Chapter 6 challenge activities due
  • Program due: Functions, input validation
8 3/7 Application of concepts so far and Midterm exam
  • In-class demonstration of concepts covered so far
  • Midterm exam #1: input, output, variables, calculations, selection, repetition
  • Program due: Functions
  3/14 School closed 3/13/17 - 3/19/17 for Spring Break
9 3/21 File I/O (Chapter 7), Arrays (Chapter 8)
  • declaring arrays
  • initializing arrays
  • array bounds
  • accessing array values
  • processing arrays
  • In-class lab: Sequential (text) file input/output
10 3/28 Arrays (Chapter 8)
  • creating and using arrays of strings
  • passing arrays to functions
  • Chapter 8 challenge activities due
  • In-class lab: Creating and using arrays
  • In-class lab: Pointers and arrays
  • Program due: Sequential (text) file I/O
11 4/4 Searching and sorting arrays (notes on course website)
String and character operations (Chapter 9)
  • char data type operations
  • C++ string access and modification operations
  • C-style strings (char arrays) and associated operations
  • Chapter 9 challenge activities due
  • In-class lab: Sorting
  • Program due: Arrays
12 4/11 Pointers and reference variables (chapter 10)
  • declaring pointer variables
  • initializing pointer variables
  • the address-of operator (&)
  • using pointer variables, de-referencing (*)
  • dynamic memory allocation
  • releasing dynamic memory
  • working with pointers
  • using reference variables instead of pointers
  • types of memory: heap vs. stack
  • memory leaks
  • functions: passing by value vs. passing by reference
  • functions: passing pointers
  • functions: passing reference variables
  • Chapter 10 challenge activities due
  • Midterm exam #2: functions, arrays, sequential (text) file I/O
  • School closed on 4/13/17 for faculty development
  • School closed on 4/14/17 for Good Friday
13 4/18 Enumerations and structured data (Chapter 11)
  • defining and accessing structures
  • passing structures to functions
  • arrays and pointers to structures
  • Chapter 11 challenge activities due
  • Program due: Pointers, arrays, sorting
14 4/25 Advanced file operations (notes on course website)
  • reading and writing binary file data
  • implementing random access files using C++
  • In-class lab: Random access (binary) file input/output
15 5/2 Introduction to classes (Chapter 12)
  • introduction to objects
  • introduction to classes
  • defining class members
  • defining access: private and public
  • the difference between a class and a struct
  • constructors and member initialization
  • overloading
  • destructors
  • accessors
  • mutators
  • Chapter 12 challenge activities due
  • In-class lab: Classes and objects
  • Program due: Random access (binary) file I/O, structs
16 5/9 Exceptions (Chapter 13)
  • exception basics
  • using exceptions with functions
  • multi-file programs
  • separating header and implementation files for classes
  • preprocessor directives: include, define
  • namespaces
  • Program due: Classes, objects
17 5/16 Final exam: 6:00 P.M. - 7:50 P.M., Rm. A-1374
comprehensive with emphasis on classes, objects, random access (binary) file I/O
Kishwaukee College Policies and Resources
  1. Academic Dishonesty
  2. Assistive Resources Center/Disability Services
  3. Attendance Verification Roster
  4. Class Cancellations
  5. Class Withdrawal
  6. Community Resources
  7. Copyright
  8. Emergency Procedures/Safety
  9. Graduation Requirements for
    Transfer Degree Students
  10. Incomplete Grade
  11. Learning Skills Center
  12. Recording of Classes/Presentations
  13. Religious Observances
  14. Student E-mail
  15. Technical Support
Please see the Kishwaukee College Catalog for other policies and resources
  1. In order to evaluate student work, faculty must be able to trust that the work is original with a student and not the work of someone else. Cheating, falsifying information, forgery, plagiarism, and other dishonest actions will not be tolerated. Detailed information can be found by clicking on this link: www.kishwaukeecollege.edu/student-life-essential-student-information/student-code-conduct
  2. Any student with a documented disability or special learning need and wanting to request accommodations, should contact the Assistive Resources Center in A1317 or at (815) 825-2086 ext. 4290, (815) 825-9106 (TTY). More information can be found on the MyKC Portal: https://mykc.kishwaukeecollege.edu/collegeareas/vpss/disabilityservices/Pages/default.aspx
  3. Students who do not attend their class during the refund period will be dropped from the class roster and will be charged for the class. More information can be found on the MyKC Portal: https://mykc.kishwaukeecollege.edu/collegeareas/vpfa/bo/Pages/default.aspx
  4. Class cancellations due to inclement weather will be posted on the College Website: www.kishwaukeecollege.edu or announced by the local radio stations. You may sign up for text alerts at myKC/Student Resources/Text Alert. Students may also call the College at (815) 825-2086. Class cancellations due to instructor absence will be posted on the classroom door. Room changes will be announced in advance whenever possible and posted on the classroom door.
  5. A "W" cannot be given as a final grade. The student is responsible for officially withdrawing from the class according to procedures described in the college catalog. Refer to page 166. Kishwaukee College reserves the right to administratively withdraw students from the Attendance Verification Roster or the Midterm Roster those students who are not actively pursuing course objectives or who are in violation of standards of behavior as outlined in the Student Code of Conduct and Discipline. For a copy of the student conduct policy, contact the Vice President of Student Services Office or refer to the Kishwaukee College catalog.
  6. There are numerous community resources that are available to assist students in addressing a variety of personal needs. Resource contact information can be found on MyKC: https://mykc.kishwaukeecollege.edu/collegeareas/vpss/counseling/Pages/Documents.aspx
  7. As a Kishwaukee College Student, you may have copyrighted materials or software made available to you by the college for course use. Please understand that copyright law may prohibit copying or further distribution of these materials. Full information can be found here: www.kishwaukeecollege.edu/student-life-essential-student-information-students-right-know/copyright-law-notification
  8. Yellow and red Emergency Information flipcharts are located in each classroom. These are quick reference sheets with telephone numbers to reach emergency assistance and a brief description of the correct actions to take in the event of a tornado, fire or other emergency on campus. More information can be found in the college catalog on page 196.
  9. Guidelines and specific requirements can be found here: www.kishwaukeecollege.edu/academics-resources/graduation-requirements
  10. All course requirements must be completed by the end date for the course. In the event that extremely difficult circumstances merit granting a student more time to finish course requirements, an "Incomplete" (I) grade may be given. More information can be found in the college catalog on page 170.
  11. Tutoring, The Writing Center, make-up tests, online tests, and placement tests are available through the Learning Skills Center. For more information, go to https://mykc.kishwaukeecollege.edu/collegeareas/vpi/lsc/Pages/default.aspx
  12. Kishwaukee College prohibits students from electronically recording class lectures and presentations (either by audio, video, picture, or otherwise) unless certain qualifying conditions are met.
    1. The student requires the recording of lectures/presentations as part of his/her accommodations related to a disability that has been adequately documented with the Coordinator of the Assistive Resources Center.
    2. The instructor has given advance written permission to the student that stipulates what may be recorded and by which device(s) the lectures/presentations may be recorded.
    In either of the above cases, the following restrictions shall apply:
    1. Recordings are solely for the use of the student designated either in the disability accommodations or the instructor's written permission to record.
    2. Recordings must not be shared or reproduced for any reason.
    3. Recordings must not be posted on any public or private website or social media service.
    4. Recordings must be destroyed by the student at the end of the semester in which the recording was made.
    A student found to have committed a violation of this procedure shall be subject to one or more sanctions described in the Code of Student Conduct and Discipline. Students seeking to obtain permission to record a class must inquire with the instructor in question and, if the instructor agrees to allow recording, the student and instructor must complete a Permission to Record a Class/Lecture Presentation form.
  13. Students faced with schedule conflicts related to a religious observance should make prior arrangements with the instructor a minimum of seven (7) school days in advance of the examination or other activity involved.
  14. Your Kishwaukee College e-mail account will be the official way to receive notices from the College. If you choose to forward your e-mail to another account, please be advised that all communication from and within the college will use your Kishwaukee student e-mail. When communicating with instructors or employees of the college, you are required to use your Kishwaukee e-mail address.
  15. If you require technical support, please contact the Help Desk:
    1. helpdesk@kishwaukeecollege.edu
    2. (815) 825 2086, ext. 4357 (HELP)
    3. Visit the Helpdesk's office located in Media Services A1252
    4. http://helpdesk.kishwaukeecollege.edu