Course

Computer Programming I

Faculty
Science & Technology
Department
Computing Science
Course code
CMPT 1109
Credits
3.00
Semester length
15 Weeks
Max class size
35
Method(s) of instruction
Lecture
Lab
Course designation
None
Industry designation
None
Typically offered
To be determined

Overview

Course description
This course provides an introduction to computing science and programming, and is intended for students with little or no programming background. Students will learn how to analyze problems and design algorithms as well as implement their solutions using a high-level programming language such as C++. Topics include structured programming fundamentals, control structures, procedural programming, recursion, arrays, basic sorting and searching algorithms, strings, pointers, dynamic memory allocation, files, and exceptions.
Course content
  • Introduction to computing systems and programming
    • Hardware and software
    • Programming languages, compilers, and interpreters
    • Introduction to pseudocode and flowcharts
    • Programming errors and code debugging
    • Integrated Development Environments
  • Programming fundamentals
    • Basic data encoding and numeral systems including binary, octal, and hexadecimal systems
    • Primitive data types
    • Variables, literals, constants, and identifier naming conventions
    • Assignment operator
    • Console I/O and output formatting
    • Expressions and arithmetic operators
    • Static type casting
    • Comments and code documentation
  • Conditional and iterative constructs
    • Decision-making structures
    • Relational and logical operators
    • Repetition structures and loop design strategies 
    • Nested constructs
  • Procedural programming and functions
    • Problem solving and code modularization
    • Defining and calling a function
    • Local, global, and static local variables
    • Reference and constant reference variables
    • Passing parameters by value and by reference
    • Default arguments
    • Inline functions
    • Function overloading
    • Recursive functions
    • Standard library functions including mathematical functions and random number generators
  • Arrays, C-strings, and string objects 
    • Array basics
    • Arrays and static memory allocation
    • Passing and returning arrays to/from functions
    • Multi-dimensional arrays
    • Arrays of characters and C-strings
    • String objects and character manipulation library functions
  • Introduction to algorithm efficiency analysis and basic sorting and searching algorithms
    • Bubble sort
    • Selection sort
    • Linear search
    • Binary search
  • Structured data 
    • Using structures to create records of data
    • Arrays of structures
    • Passing and returning structures to/from functions
  • Pointers and dynamic memory management
    • Pointer basics
    • Constant pointers and pointers to constant data
    • Arrays of pointers
    • Pointers as function parameters and return values
    • Dynamic memory allocation
  • File input and output
    • Basic file operations: reading from, writing and appending to text files
    • Sequential file processing using loops
  • Exceptions
    • Throwing an exception
    • Exception propagation
    • Rethrowing exceptions
    • Catching and handling exceptions
Learning activities

Lectures, labs, and self-directed learning (programming assignments)

Means of assessment

Assessment will be in accordance with the Douglas College Evaluation Policy. The instructor will present a written course outline with specific evaluation criteria at the beginning of the semester. Evaluation will be based on the following:

Labs

10% - 20%
Assignments 10% - 20%
Quizzes 0% - 10%
Term Test(s) 25% - 35%
Final Examination 30% - 40%
Total 100%

** In order to pass the course, in addition to receiving an overall course grade of 50%, students must achieve a grade of at least 50% on the combined weighted examination components (including quizzes, term tests and final examination.)

Learning outcomes

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

  • Identify the major components of a computer system, different types of programming languages, and related terminology;
  • Employ numeral systems and data representation in memory;
  • Design algorithms for small problems and describe the program development process;
  • Develop programs involving fundamental programming constructs: literals, variables, expressions, constants, operators, console I/O, and text file I/O;
  • Apply flow-control structures to write programs including decision making and loops;
  • Analyze, test, and debug programs for syntax, logic, and run-time errors;
  • Utilize consistent documentation and coding style standards to create readable and maintainable programs;
  • Apply procedural programming to break down a program into functions;
  • Compare different methods of passing parameters to a function;
  • Utilize advanced data structures such as arrays, structs, string objects, and C-strings;
  • Outline basic sorting and searching algorithms and compare their efficiency;
  • Implement and trace recursive functions and compare them with iterative implementations;
  • Compare dynamic and static memory allocation techniques and utilize them to write efficient programs;
  • Explain the concept of pointers and use them to manage dynamic data structures in a program;
  • Identify runtime errors to throw and handle exceptions appropriately.
Textbook materials

Consult the Douglas College Bookstore for the latest required textbooks and materials.

Example textbooks and materials may include:

  • Starting Out with C++ from Control Structures to Objects (current edition), Tony Gaddis, Pearson
  • Introduction to C++ Programming and Data Structures (current edition), Daniel Liang, Pearson

Requisites

Prerequisites

Minimum C grade in Pre-Calculus 11 or Foundations of Math 11, or minimum C- grade in MATU 0411

Corequisites

No corequisite courses.

Equivalencies

Note: Students who have received credit for CMPT 1110 will not receive further credit by taking CMPT 1109.

Course Guidelines

Course Guidelines for previous years are viewable by selecting the version desired. If you took this course and do not see a listing for the starting semester / year of the course, consider the previous version as the applicable version.

Course Transfers

These are for current course guidelines only. For a full list of archived courses please see https://www.bctransferguide.ca

Institution Transfer details for CMPT 1109
Alexander College (ALEX) ALEX CPSC 1XX (3)
Coast Mountain College (CMTN) CMTN CPSC 123 (3)
College of New Caledonia (CNC) CNC CSC 109 (3)
Coquitlam College (COQU) COQU CSCI 120 (3)
Fraser International College (FIC) FIC CMPT 120 (3) or FIC CMPT 130 (3)
Kwantlen Polytechnic University (KPU) KPU CPSC 1103 (3)
Langara College (LANG) LANG CPSC 1150 (3)
LaSalle College Vancouver (LCV) DOUG CMPT 1109 (3) & DOUG CMPT 1209 (3) = LCV VGP 101 (6)
North Island College (NIC) NIC CPS 100 (3)
Okanagan College (OC) OC COSC 111 (3)
Quest University (QU) QU IND 3156 (4)
Simon Fraser University (SFU) SFU CMPT 120 (3) or SFU CMPT 130 (3) or SFU ENSC 151 (3)
University of British Columbia - Okanagan (UBCO) UBCO COSC_O 111 (3)
University of British Columbia - Vancouver (UBCV) UBCV CPSC_V 1st (3)
University of Northern BC (UNBC) UNBC CPSC 1XX (4)
University of the Fraser Valley (UFV) UFV COMP 150 (3)
University of Victoria (UVIC) UVIC CSC 110 (1.5)
Vancouver Community College (VCC) VCC CMPT 1010 (3)
Vancouver Island University (VIU) VIU CSCI 160 (4)

Course Offerings

Winter 2025

CRN
16501
section details
CRN Days Instructor Status More details
Maximum seats
35
Currently enrolled
35
Remaining seats:
0
On waitlist
9
Building
New Westminster - North Bldg.
Room
N6111
Times:
Start Time
8:30
-
End Time
10:20
CRN
16502
section details
CRN Days Instructor Status More details
Maximum seats
35
Currently enrolled
35
Remaining seats:
0
On waitlist
11
Building
New Westminster - North Bldg.
Room
N6111
Times:
Start Time
10:30
-
End Time
12:20
CRN
16697
section details
CRN Days Instructor Status More details
Maximum seats
35
Currently enrolled
33
Remaining seats:
2
On waitlist
0
Building
New Westminster - South Bldg.
Room
S0620
Times:
Start Time
12:30
-
End Time
14:20
CRN
16846
section details
CRN Days Instructor Status More details
Maximum seats
35
Currently enrolled
26
Remaining seats:
9
On waitlist
0
Building
New Westminster - North Bldg.
Room
N6111
Times:
Start Time
14:30
-
End Time
16:20
CRN
17198
section details
CRN Days Instructor Status More details
Maximum seats
35
Currently enrolled
24
Remaining seats:
11
On waitlist
0
Building
New Westminster - South Bldg.
Room
S0620
Times:
Start Time
14:30
-
End Time
16:20