Home Skills Resume Portfolio Contact
 

 

 

HUMBER SCHOOL OF INFORMATION TECHNOLOGY

COURSE OUTLINE

ACADEMIC YEAR FALL '02 TO SUMMER '03

 

COURSE NUMBER

CPAN 420

 

 

COURSE NAME

C ++

 

 

CREDITS

4

 

 

PRE-REQUISITES

CPAN 221 Object Orineted Programming Using Java 

  (formerly Intermediate Java)

 

TEXT REQUIRED

Object Oriented Programming in C++

 

4th edition, Robert Lafore

 

Sams Publishing

 

 

ISBN

0-672-32308-7

 

 

 

 

 

ORIGINATED BY:

Rick Faseruk

DATE: May 2001

 

 

 

REVISED BY:

Rick Faseruk

DATE: May 2002

 

 

 

 

 

COURSE DESCRIPTION

This course begins by presenting the C++ commands and operators needed to code basic C++ programs. Due to the similarities between C++ and Java, portions of the initial material are considered to be a review of some of the topics covered in the prerequisite Java courses. Structured programming techniques will initially be applied to solving programming problems. Object oriented programming features will then be discussed and applied to the solutions for additional programming problems.

LEARNING OUTCOMES

Upon completion of this course, the successful student will be able to:

1

Write C++ programs using all of the basic data types and data type modifiers.

2

Define user-defined functions.

3

Call user-defined functions and library functions.

4

Write C++ programs applying the principles of structured programming.

5

Write C++ programs using arithmetic operators and the library math functions.

6

Make decisions using the "if", "if…else" and "switch" statements.

7

Set up loops using the "while", "do…while" and "for" statements.

8

Write C++ programs applying the relation, logical and increment/decrement operators.

9

Explain the scope of variables and use the scope resolution operator.

10

Write C++ programs using strings and the string functions.

11

Write C++ programs using arrays and structures.

12

Pass arguments by value and by reference.

13

Code recursive functions.

14

Write C++ programs using pointers, an array of pointers and function pointers.

15

Differentiate between inline and non-inline functions.

16

Sort data using the qsort() function.

17

Perform searches using the bsearch() functions.

18

Differentiate between static and dynamic memory allocation.

19

Allocate memory dynamically.

20

Write C++ programs using the stream I/O commands.

21

Define classes and declare objects.

22

Code constructors and destructors.

23

Initialize data members using an initialization list.

24

Write C++ programs using the "exception handling" feature.

25

Define classes using single inheritance.

26

Write C++ programs using function templates and class templates.

27

Differentiate between static and dynamic binding.

28

Implement polymorphism by using virtual functions.

 

.

 

 

GENERIC SKILLS

The following generic skills will be acquired and/or enhanced:

COMMUNICATION

  • Interpret a broad range of technical instructions (program specifications)
  • Write clear, concise sentences and paragraphs in program documentation, projects and tests.
  • Communicate in written, oral and diagrammatic form using appropriate formal and information vocabulary and format.
  • Respond to oral and written instruction.
  • Read and comprehend reference materials, diagrams and reports.
  • Read and interpret policy and procedure.

MATHEMATICS

  • Apply the fundamentals of mathematics to the solution of programming problems.
  • Apply appropriate formulae to solve common business problems.
  • Define precision and accuracy in mathematical calculations and use the rules for significant figures.

INTERPERSONAL

  • Participate effectively in group discussions on technical problems.
  • Work with others by co-operating, sharing ideas and constructively resolving conflicts.

CURRICULUM DETAIL:

 

 

 

1

Introduction

  • Discuss the course outline and grading procedure.
  • Discuss the Borland C++ (version 5) compiler.

 

 

 

 

2

Introduction to C++

  • C vs C++ vs Java.
  • The simple data types and data type modifiers.
  • User-defined functions vs library functions.
  • Header files, preprocessor, preprocessor directives.
  • The cout and cin objects.

Ch 2

 

 

 

3

Decision Making

  • The if, and if..else statements.
  • The switch statement.
  • The break statement.
  • The relation operators.

Ch3

 

 

 

4

Loops

  • For loops, while loops, do while loops.
  • Increment/decrement operators. The continue statement.
  • The ctype.h library.
  • enum

Ch3

 

 

 

5

Functions

  • Function prototypes, definitions and calls.
  • Principles of structured programming
  • Scope of variables.
  • The scope resolution operator.
  • Call functions passing arguments by value.
  • Call functions passing arguments by reference.
  • Discuss recursive functions.

Ch5

 

 

 

6

Strings

  • Declaring strings.
  • String functions

Ch7

 

 

 

7

Arrays

  • Single-dimension arrays.
  • Multi-dimension arrays.

Ch7

 

 

 

8

Pointers

  • Declaring pointers.
  • Pointer operators.
  • Addressing and dereferencing
  • Pointer arithmetic.
  • An array of pointers
  • Function pointers.
  • Reference variables.

Ch10

 

 

 

9

Structures

  • Defining a structure.
  • Referring to fields within a structure.

Ch4

 

 

 

10

Allocating Memory

  • Static memory allocation vs dynamic memory allocation.
  • The new and delete operators.

Ch10

 

 

 

11

Sorting/Searching

  • Bubble sort
  • The qsort() function.
  • The bsearch() function.

Ch10

 

 

 

12

Object-Oriented Programming

  • Hiding/protecting data. Defining a class.
  • Declaring an object.
  • Inline functions vs non-inline functions.
  • Constructor and destructor functions.
  • Initialization lists
  • Pointers to objects
  • Static data members and function members.
  • Friend functions.

Ch6

 

 

 

13

Dynamic Allocation

  • Allocate and dispose of memory for objects and arrays using the new and delete operators.
  • Understand the concept of memory leaks.
  • Implement operations on String class.

Ch10

 

 

 

14

Inheritance

  • Create classes through single inheritance
  • Discuss the difference between "is-a' and "has-a" relationships.

Ch9

 

 

 

15

Polymorphism

  • Understand static and dynamic binding.
  • Implement polymorphism by using a virtual function.

Ch11

 

 

 

16

Exception Handling

  • Handle exceptions using try, throw and catch.

Ch14

 

 

 

17

Template Functions

  • Declaring and using a function template.
  • Declaring and using a class template.

Ch14

 

 

 

 

  •  

 

 

 

 

ASSESSMENT AND EVALUATION

An average of 60% must be achieved on the tests and on the final exam for the lab assignments to be counted in the final mark.

The Marking distribution is as follows:

Mid Term

30%

Final

40%

Assignments

30%

 

Please note: The Distance Learning version of this course (if available) may have a different grading scheme than the classroom version. Check the information page of the Distance Learning version for details. Students must pass the proctored final exam for any other test and lab assignments to count towards their final mark.

COURSE MATERIALS REQUIRED

In addition to the assigned text and lab book, each student will require an Approved Toolkit. A description of the kit requirements will be provided in class and the cost is generally $5.00 - $10.00.   

PRIOR LEARNING ASSESSMENT

(PLA) College PLA requirements must be followed. PLA consists of an oral qualifying interview and, if successful, a challenge exam. Depending on the level of success on the challenge exam, a case study may be assigned.

ACADEMIC REGULATIONS

It is the responsibility of each student to be knowledgeable of the Humber College Academic Regulations and the School of Information Technology Academic Standards and Regulations. Copies of the standards are available in the School of Information Technology main office H221. It is the student's responsibility to retain course outlines for possible future use in support of applications for transfer credit to other educational institutions. **A charge of $5.00 per course outline may apply for additional copies.**

DISCLAIMER

Every effort will be made by the instructor of the course to cover all the material listed. However, in the event of special circumstances (i.e. time constraints due to inclement weather, sickness, technology problems or changes, etc) the order, content and/or evaluation may be changed with prior notification to students and approval from the Dean/Associate Dean