CPTR 124
Fundamentals of Programming Winter 2014

Home Code Final Examination Study Guide Labs Practice WebGrades


Rick Halterman

School of Computing
1117E Hickman Hall
Southern Adventist University
Collegedale, TN 37315-0370


Office Hours: http://computing.southern.edu/halterman/General/OfficeHours

Course Venue

HSC 1307    MWF 10:00–10:50 am
HSC 1303    W 1:00–3:30 pm


Halterman, Richard L. Fundamentals of C++ Programming. 2014.


Math ACT ≥ 22 or Math SAT ≥ 520 or MATH 116 College Algebra, or permission of instructor


Catalog description:

CPTR 124. Fundamentals of Programming (G-1) 4 hours
Prerequisite: Math ACT ≥ 22 or Math SAT ≥ 520 or MATH 116 or permission of instructor.
Control structures, data types, data representation, compiling, debugging, modularity, and standard programming algorithms are introduced, using an object oriented language. Three hours of lecture and three hours of laboratory each week.

This course has three objectives:

  1. to develop the ability to correctly analyze a variety of problems and generate appropriate algorithmic solutions
  2. to explore the syntax and usage of the C++ programming language as a means of accomplishing the first objective
  3. to examine the software development environment and associated tools.

Class Requirements and Grading

Class Work. The following class activities, weighted as indicated, determine the student's overall average for the course.







Midterm Examination


Final Examination


Grade Distribution. The overall average determines the course grade according to the following table:

Overall Average


92 ≤ a


90 ≤ a < 92


88 ≤ a < 90


82 ≤ a < 88


80 ≤ a < 82


78 ≤ a < 80


70 ≤ a < 78


60 ≤ a < 70


58 ≤ a < 60


52 ≤ a < 58


50 ≤ a < 52


a < 50


CPTR 124 Fundamentals of Programming is a 4-hour course that includes an integrated laboratory component. As indicated above, the lab assignments contribute to the overall course grade. The lab is not a separate course in the catalog, but for scheduling purposes the University registration system requires a separate 0-hour entry for the lab. The grade for this 0-hour lab entry is Pass/Fail, determined as follows:

Whether P or F, the 0-hour lab entry does not contribute to a student's overall GPA.


Laboratories and assignments. Attendance at laboratory sessions is required as this is a four credit-hour course. All lab assignments are due at the designated time and date. Late assignments will be penalized.

Ethics. It is expected that each student work individually on individual programming assignments.  For team assignments, collaboration is limited to teammates.  Programming problems on tests will be based largely on the experience gained by doing past lab assignments, so it is important that each student develop his/her own programs for adequate preparation for the examinations. In a team programming environment, each team member is expected to understand the workings of the complete program regardless of the division of responsibilities during development. 

The programming assignments are meant to be learning experiences. It is OK to get legitimate help from others. As long as each student develops his or her own logic and code, it is permissible to help each other over occasional rough spots. Legitimate help includes pointing out simple corrections or providing hints about how to structure a solution. Explaining to a classmate how a particular C++ language feature works independent of its use within their program is always permissible and welcome. Helping to extinguish a particularly puzzling compiler error also is acceptable behavior.

INAPPROPRIATE help includes “I do not know what you are doing, but here, look at my code, this is how I did it.” Or, even worse, “I’ll send you my code so you can see how I did it.” Providing clues or hints to nudge in the right direction is much more beneficial to learning.

It obviously is bad if you submit someone else’s work as your own, but, as is common in academic settings, knowingly enabling the opportunity for someone else to copy your work also is bad.

Except among teammates, portions of programs should never be shared. Those involved in allowing their programs, or parts of their programs, to be copied, or copying from other students' programs risk receiving a score of 0 on the assignment and a grade of F in the course.

Please take care as you are providing help to others. It IS OK to help others, and you SHOULD help others as you can, but giving others your code or doing their work for them is not really the help they need.

If you have any questions or concerns about this matter, please do not hesitate to ask the instructor for clarification.

Class study. Appropriate study for the course includes reading the textbook (at least as far as last class's lecture material), experimenting with the programs from the book and programs we develop in class, working through the exercises at the end of each chapter, and completing practice exercises as assigned. Daily quizzes encourage students to remain current in their class preparation. Quiz contents may be based on material covered in the preceding class and/or concepts covered in practice exercises. Usually quizzes will be distributed at the beginning of the class period. Missed quizzes may not be made up; however, the lowest three quiz score will be dropped during the last week of the semester.

Class decorum. Please comply with the standards of classroom attire as specified in the Student Handbook.  Notebook computers are welcome, and the classroom and lab (generally) have an excellent wireless signal.  Those with computers should mute the volume and sit in the rear of the class so as not to distract students behind them.  Electronic devices must be turned off during quizzes and tests.  You are expected to remain in the classroom during quizzes and tests, so be sure to take care of affairs (such as bathroom visits and tissue acquisition) before you sit for the quiz or test.

Examinations The dates for each test is listed in this syllabus. In certain situations, due to unavoidable circumstances, a missed test may be made up. Arrangements for the retake should be made before the time of the originally scheduled test. The make-up test may vary greatly in form from the original test, but its content (topics addressed) will be the same. Because of this difference, any points added (the so called "curve") to tests taken during the regularly scheduled time may not apply to retakes.

Please note the date and time for our final exam listed below. You need to plan to take your final exam at the scheduled time. Please make your work and vacation plans accordingly. Academic Administration will grant approval for variance from the published exam schedule only in cases of verified, serious, illness or a death in the immediate family. Academic Administration may, in case of exceptional and unavoidable circumstances, approve a variance, in consultation with the professor of this course. A $65 processing fee may be assessed.

Extra credit. Since the assigned material and activities are sufficient for most students, no extra credit will be available for additional work. However, well-prepared students wishing to enhance their learning experience beyond the class activities will be directed, upon request, to additional resources. Any such additional work will not influence the grade for this class.  

SAU account.  All students must have an active Southern Adventist University email account. This account is necessary to receive class messages and to be able to use the computers in the programming lab.

It is important that you check your southern.edu email account frequently (at least daily, if possible) so you you do not miss potentially important information about this course. Please use use your southern.edu email account when contacting the instructor; if you use a non-Southern account, your message may not make it through the University's spam filter.

Disability Statement. In keeping with university policy, any student with a disability who needs academic accommodations should call Disability Support Services at 423-236-2574 or Lynn Wood Hall, room 137, to arrange a confidential appointment with the Disability Services Coordinator (DSC) before or during the first week of classes. (Students who request accommodations after the third week of the semester might not complete the process in time to receive accommodations for that semester.) Legally, no retroactive accommodations can be provided. For more details, visit the Disability Support Services website at www.southern.edu/disability support.

Accommodations for disabilities are available only as recommended by Disability Support Services. Students whose accommodations are approved will be provided confidential letters which students should review and discuss with their professors in relation to particular course requirements.


  • Context of software development

  • Tools: preprocessor, compiler, linker, debugger, profiler

  • Creating C++ programs with Visual Studio 2013

  • Program structure: #includes, using statement main function

  • Values, variables, identifiers, assignment, reserved words

  • Console input and output

  • Types: integer types (int, long, unsigned, etc.), floating point types (float, double), characters.
  • Arithmetic: arithmetic operators, expressions, mixed-type expressions, type conversions, operator precedence and associativity

  • Comments

  • Source code formatting

  • Compile-time errors, run-time errors, logic errors, warnings

  • Definition of algorithm

  • Conditional execution: Boolean expressions, relational operators, Boolean expressions, if statement, compound Boolean expressions, if/else, multi-way if/else statements, nested conditionals, switch, conditional expressions, typical errors in conditional statements

  • Iteration: while loops, do/while loops, for loops, nested loops, abnormal termination (with break, continue, and goto), infinite loops, iteration examples

  • Using functions: parameter passing, function prototypes, standard mathematics functions, system time, character routines, pseudorandom numbers

  • Writing functions: defining functions, calling functions, formal vs. actual parameters, call by value, example functions

  • Tracing program execution with a debugger

  • More on functions: global variables, persistent local variables, overloaded functions, recursion, multifile programs, pointers, call by reference (pointers vs. reference parameters)

  • Aggragate data—vectors and arrays: declaring, using, passing to functions, array notation vs. pointer notation, static vs. dynamic arrays, memory management problems, multidimensional vectors and arrays

  • Vector/array algorithms: sorting, linear search, binary search, permutations

  • Standard C++ classes, string objects, file streams

  • Programmer-defined types: Classes, data members, member functions (methods), public vs. private members, constructors, destructors

  • Brief overview of inheritance and polymorphism, protected members, overriding methods

Important Dates

  • Wednesday, January 8: first day of class for CPTR 124
  • Monday, January 20: no class (MLK Jr./Community Service Day)
  • Wednesday, February 19: Midterm exam
  • Friday, February 28–Friday, March 7: no class (midterm break)
  • Tuesday, March 18: Last day to drop a class
  • Monday, April 28 at 10:00 am: final exam

Class Code

Code we develop in class is available here.