Course Outline: NC, University of North Carolina at Pembroke

By: Higher Education

Abstract: CS 255: Programming and Algorithms 1

CS 255 -- Programming and Algorithms I

Professor: Dr. James K. Harris
Text: C++ Program Design by James P. Cohoon and Jack W. Davidson
Prerequisite: CS 155 (C)
Office: Rm. 146 Oxendine Science Building
Phone: 521-6798
E-Mail: [email protected]


  • 3 test (12% each) - 36%
  • Quizzes - 20%
  • Assignments - 24%
  • Final exam - 20%

Tests will be administered at approximately 4 week intervals. The material on all tests comes from either material covered in class, homework problems, and/or assigned readings. All tests and the final exam will be comprehensive. All tests are graded on a 100 point scale. ! If a test is missed FOR ANY REASON, the weight of that test will be transferred to the final exam. All quizzes will be graded on a ten point scale. The lowest two quiz scores are dropped. There are no makeup quizzes given for any reason. Late assignments will be penalized one letter grade for each day or part of a day that they are late unless an extension has been given (by me!).

Academic Honesty: Punishment for a first offense of academic dishonesty will result in a zero for that test or final exam. A second offense will result in a grade of "F" for the course. All take home assignments are restricted. This means that each student is to do his or her work without the help of anyone else except the instructor. All questions concerning take home assignments should be directed to the instructor. If it is found that two or more students worked together to complete a take home assignment, all those involved will be subject to the penalties prescribed above for academic dishonesty.

Grading scale for final grades:

    A 90 - 100
    B 80 -  89
    C 70 -  79
    D 60 -  69
    F  0 -  59

All numerical grades will be rounded off to the nearest digit.

Course Goals: The goals are to give an introduction to object oriented programming and problem solving using C++. This course will stress problem definition and solution in an object oriented paradigm through program design and implementation in C++.

Attendance: It is the responsibility of the student to attend all scheduled class meetings. IT IS NOT THE RESPONSIBILITY OF THE INSTRUCTOR TO DROP A STUDENT FROM THIS CLASS.

Courtesy and manners: If a student disrupts class, they will be given a demerit. This will lower their final grade by 1 point for each of the first two demerits given, two points for each of the next two demerits given, and four points for each of the next two demerits given. After six demerits, the student will be automatically dropped from the course. The giving of demerits is at the discretion of the instructor.

CS 255 Tentative Class Schedule
I. C++ Fundamentals (Weeks 1 and 2)

  • A first program
  • Comments
  • Assigning a value
  • Fundamental C++ types
  • Integer, Character and Floating point types
  • Constants
  • String and character constants
  • Integer constants
  • Floating point constants
  • Names
  • Keywords
  • Identifiers
  • Definitions
  • Expressions
  • Simple expressions
  • Arithmetic operators
  • Mixed mode expressions
  • Operator precedence
  • Operator associativity

II. Modifying Objects (Week 3)

  • Assignment operator
  • Assignment conversions
  • Precedence and associativity
  • Compound assignment
  • Const definitions
  • Input statements
  • Increment and Decrement operators
  • Defining simple classes

III. Control Constructs (Week 4)

  • Boolean Algebras
  • Truth tables
  • Logical expressions
  • Boolean types
  • Boolean operators
  • Relational operators
  • Operator precedence
  • Short-circuit evaluation
  • The if statement
  • Syntax
  • Sorting three numbers
  • The switch statement
  • The while statement
  • The do statement

************************* Test #1 *****************************

IV. Functions (Week 5)

  • Function basics
  • Interface specification
  • Function prototyping
  • Flow of control
  • The preprocessor
  • File inclusion directives
  • Macro definitions
  • Conditional compilation
  • Using software libraries
  • The iostream library
  • The fstream library
  • The string library
  • The math library
  • Library ctype

V. Programmer-defined functions (Week 6)

  • Basics
  • Function-definition syntax
  • Flow of control
  • Local scoping
  • Local scoping
  • Name reuse with objects
  • Global scoping
  • Scope rules and name reuse with objects
  • Initialization of global objects
  • Recursive functions

VI. Advanced parameter passing (Week 7)

  • Call by reference vs. call by value
  • Constant parameters
  • Default parameters
  • Casting of parameters
  • Function overloading

VII. The class construct (Week 8)

  • A programmer defined data type
  • Defining a rectangle shape class
  • Constructors and destructors
  • Object oriented analysis and design

VIII. Abstract data types (Week 9)

  • ADT basics
  • Class interface description
  • Access restrictions
  • Constructors
  • Facilitators
  • Inspectors
  • Mutators
  • Data members
  • Overloading operators
  • Implementing some ADT's

************************* Test #2 *****************************
IX. Arrays (Weeks 10 and 11)
  • Named collections
  • One dimensional arrays
  • Array initializations
  • Constant arrays
  • Simple array processing
  • Representing strings as character strings
  • Passing arrays as parameters
  • Sorting and searching using arrays
  • Insertion sort
  • QuickSort
  • Binary search
  • Multidimensional arrays
  • Matrices
  • Some matrix operations

X. Pointer types (Week 12)

  • Lvalues and Rvalues
  • Pointer basics
  • Addressing and indirection
  • Pointers to pointers
  • Pointer as parameters
  • Constant pointers and pointers to constants
  • Arrays and pointers
  • Character string processing
  • Pointers to functions
  • Structures and pointers
  • XI. Dynamic data types (Week 13)
  • Defining objects on the fly
  • Copy constructors
  • Member assignment to THIS

************************* Test #3 *****************************

  • Review (if time permits)

************************ Final Exam ****************************


  • August 19th - Classes begin
  • August 25th - Last day to add a class
  • September 30th - Last day to drop a class with a grade of W
  • October 15th-16th - Mid semester break
  • November 26th-27th - Thanksgiving holiday
  • December 8th - Classes end
  • Final Exam - December 14th from 8AM-10AM in this room

Server Response from: ETNASC03