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
|