Computer Programming I
Overview
- Introduction to computing systems and programming
- Hardware and software
- Programming languages, compilers, and interpreters
- Software development cycle
- Algorithm design and programming process
- Programming errors and code debugging
- Integrated Development Environments
- Programming fundamentals
- Basic data encoding and numeral systems
- Primitive data types
- Variables, literals, constants, and identifier naming conventions
- Assignment operator
- Basic I/O and output formatting
- Expressions and arithmetic operators
- 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
- Function abstraction
- Unit and integration testing
- Mathematical library functions
- Recursion
- Problem solving using recursion
- Recursive vs iterative implementations
- Arrays and C-Strings
- Array basics
- Arrays and static memory allocation
- Passing and returning arrays to/from functions
- Range-based for loop
- Multi-dimensional arrays
- Arrays of characters and C-Strings
- C-String and character manipulation library functions
- Sorting and searching algorithms
- Basic sorting algorithms
- Elementary searching algorithms
- An introduction to the efficiency analysis of algorithms
- 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
- An introduction to object-oriented programming
- Procedural vs. object-oriented programming
- Classes as abstract data types
- Class design guidelines
- Attributes and methods
- Private vs public class members
- Class constructors, destructors, and constructing objects
- Setter and getter member functions
- Arrays of objects
- Pointer to objects and the this pointer
- The string class
- Structures and enumerated data types
- File input and output
- Text files vs. binary files
- Sequential vs. random-access files
- Basic file operations
- Exceptions
- Throwing an exception
- Exception classes
- Exception propagation
- Rethrowing exceptions
- Catching and handling exceptions
Lectures, labs, and self-directed learning (programming assignments)
Evaluation will be carried out in accordance with Douglas College 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% |
Midterm Exam | 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, midterm and final examinations.)
Upon the completion of this course, successful students will be able to:
- Explain the major components of a computer system, different types of programming languages, and related terminology
- Comprehend numeral systems and data representation in memory
- Design algorithms for small problems and discuss the program development process
- Identify code quality factors and use them to create high-quality programs
- Develop simple programs involving the fundamental programming constructs: variables, expressions, operators, basic I/O, and control structures
- Analyze, test, and debug programs for syntax, logic, and run-time errors
- Apply consistent documentation and program style standards to create readable and maintainable software
- Explain the importance of modularization in programming
- Comprehend procedural programming to break up a program into functions
- Use and compare different methods of passing parameters to a function
- Write programs that use advanced data structures like arrays, structs, strings, enumerated data types
- Discuss and implement basic sorting and searching algorithms
- Identify divide-and-conquer algorithms, implement recursive functions, and compare recursive and iterative functions
- Describe the concept of dynamic memory allocation and compare it with the method of static memory allocation
- Explain the concept of pointers and use them to manage dynamic data structures in a program
- Use basic file I/O to write programs that store and retrieve data to/from files
- Comprehend runtime errors to throw and handle exceptions appropriately
Consult the Douglas College Bookstore for the latest required textbooks and materials.
Sample text:
Introduction to C++ Programming and Data Structures (latest edition), Daniel Liang, Pearson, ISBN: 978-0-13-466985-4
Requisites
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) |
College of the Rockies (COTR) | COTR COMP 105 (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 INFO 1112 (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 128 (3) or SFU CMPT 130 (3) |
University of British Columbia - Okanagan (UBCO) | UBCO COSC 111 (3) |
University of British Columbia - Vancouver (UBCV) | UBCV CPSC 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) |