Programming Stream BTP200 Subject Outline

From CDOT Wiki
Jump to: navigation, search


Programming Stream | Market Demand | Course Content | Work in Progress | Members | Issues


Redirect to Curriculum Review 2012 Overview Page

Discussion Contact - Peter McIntyre or Chris Szalwinski

Proposed Changes

Modes Of Instruction

Remove

   Two hours interactive lecture per week, and two
   hours activity-based learning per week (four hours total)
   

Replace with

   Three hours interactive lecture per week, and one
   hour activity-based learning per week (four hours total)


Specific Outcomes

Remove

   analyze functional descriptions of small objects,
   which require the use of such technologies as sequential
   file access, dynamic memory allocation, robust user input
   and formatted program output, and design and create the
   C++ code that implements those specifications

Replace with

   design and create C++ code that requires the use of
   sequential file access, dynamic memory allocation,
   robust user input and formatted program output


Topic Outline

Remove

   Under Foundations
     Pointers and Arrays (out)
     Under Enhancements to C
       New Style of Comments (out)
       Type Casting Can Look Like a Function (out)
       Variable Definitions Permitted Anywhere (out)
   Programming Techniques (out completely)

Change percentages

   Foundations - 20%
   Inheritance - 25%
   Polymorphism - 20%

Add

   Under Foundations
     after Keywords
     Template style casts
     
   Under Inheritance
     after
     Derived Classes with Resources (present)
     fstream Classes (new)
   Under Polymorphism
     after
     Kinds ... (present)
     add   Parametric Polymorphism (new)
     under Inclusion Polymorphism (present)
     after   Polymorphic Objects (present)
     add     Abstract Base Classes (new)
   ISO Standard (full topic now)
     
     
     

Proposed Subject Outline

Course Description

   This subject introduces the principles of object-oriented programming.
   Students learn to design and build reusable objects, making use of
   encapsulation, polymorphism and inheritance as available in the C++
   programming language. The emphasis throughout is on an object-oriented
   approach to the solution of small problems.

Credit Status: 1 credit in the BSD program.

Prerequisite

   BTP100

Corequisite

Modes Of Instruction

   Two hours interactive lecture per week, and two
   hours activity-based learning per week (four hours total)


Specific Outcomes

   Upon successful completion of this subject students should be able to:
       design and create C++ code that requires the use of
       sequential file access, dynamic memory allocation,
       robust user input and formatted program output
       methodically test and debug C++ programs
       use operating system utilities to edit, compile and
       run C++ programs
       compose technical program documentation for C++ programs
       using internal comments
       adhere to object-oriented programming principles including
       encapsulation, polymorphism and inheritance when writing program
       code
       trace the execution of C++ program logic to determine what
       a program does or to validate the correctness of a program
       analyze small problems, which lend themselves to a programming solution,
       and design and code C++ programs that solve those problems, reusing
       previously written objects and modules when appropriate and designing
       new objects when appropriate

Employability Skills

   This course will cover the following employability skills as outlined by
   the Government of Ontario:
       Execute mathematical operations accurately
       Apply a systematic approach to solve problems
       Manage the use of time and other resources to complete projects

Topic Outline

   Introduction - 10%
       Objects and Classes
       Encapsulation
       Inheritance
       Polymorphism
       Modular Programs
           namespaces
   Foundations - 20%
       Structures
       Walkthroughs on Structures
       Enhancements to C
           New Keywords
           Template Style Casts
           Function Prototypes Required
           Reference Parameters
           Function Overloading
           Methods and Privacy
       iostream Input and Output Objects
       Dynamic Memory Allocation Using New and Delete
   Encapsulation - 25%
       Classes
       Constructors and Destructors
       The Current Object
       Operator Overloading
       Helper Functions
           Friends
       Custom iostream Operator Overloading
       Classes with Resources
   Inheritance - 25%
       Base and Derived Classes
       Protected Members
       Shadowing
       Constructors and Destructors
       Derived Classes with Resources
       fstream Classes
   Polymorphism - 20%
       Kinds of Polymorphism
       Parametric Polymorphism
       Inclusion Polymorphism
           Virtual Methods
           Polymorphic Objects
           Abstract Base Classes
   ISO Standard

Prescribed Text

   Introduction to C++ for C Programmers - December 2011 Edition
   by Chris Szalwinski found in the Seneca Bookstore.

Reference

   BTP200 Web Notes by Chris Szalwinski