CMPT 1010: Introduction to Computer Programming 1
Effective date
September 2020
Department
UT Computing Science&Software
Description
This course provides students an introduction to computing science and computer programming, using a systems oriented language, such as C or C++. This course introduces basic computing science concepts. Topics will include: elementary data types, control structures, functions, arrays and strings, fundamental algorithms, computer organization and memory management.
Year of study
1st Year Post-secondary
Prerequisites
Pre-calculus 12 or MATH 1020 Precalculus or MATH 0983/0993 Math Parts 1 & 2 or VCC Math Pre-calculus Assessment Test with a minimum grade of '72%' or equivalent.
Course Learning Outcomes
Upon successful completion of this course, students will be able to:
- Identify different data types and describe the appropriate application of primitive data types.
- Analyze and design a C++ program that uses variables, operators, expressions, console input/output, file input/output, conditional structures, and/or iterative structures.
- Explain the importance of modularization and write reusable code using functions.
- Write a program that uses data structures such as arrays, strings, structures, and enumerated data types.
- Explain the concept of pointers and use them to manage dynamic memory allocation in a program.
- Describe fundamental algorithms such as recursion and basic search and sort algorithms.
- 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.
Prior Learning Assessment & Recognition (PLAR)
None
Hours
Lecture, Online, Seminar, Tutorial: 45
Clinical, Lab, Rehearsal, Shop, Kitchen, Simulation, Studio: 15
Total Hours: 60
Instructional Strategies
Lectures and computer labs (and assignments).
Grading System
Letter Grade (A-F)
Evaluation Plan
Type
|
Percentage
|
Assessment activity
|
Participation
|
5
|
Computer lab participation
|
Assignments
|
25
|
Programming assignments
|
Final Exam
|
30
|
|
Quizzes/Tests
|
40
|
2-3 tests
|
Course topics
- Introduction to computing systems and programming (programming languages, compilers, and interpreters; software development cycle; algorithm design and programming process; programming errors and code debugging; Integrated Development Environments)
- Programming Fundamentals (primitive data types; variables, literals, constants; identifier naming conventions; assignment operator; basic I/O and output formatting; expressions and arithmetic operators; type casting; comments and code documentation)
- Conditional structures and loops (decision-making structures; relational operators; logical operators; repetition structures and loop design strategies; nested constructs)
- Functions (defining and calling a function; local, global and static local variables; passing parameters by value and by reference; default arguments; function overloading; mathematical library functions)
- Recursion (problem solving using recursion; recursive vs iterative implementations)
- Arrays and C-strings (array basics; 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)
- Searching and sorting algorithms (basic searching algorithms; introduction to sorting algorithms)
- Pointers and dynamic memory allocation (pointer variables; pointers as function parameters and return values; dynamic memory allocation)
- Introduction to object-oriented programming (structures; classes and objects; member variables and functions; private vs private class members; class constructors, destructors and constructing objects; accessors and mutators; arrays of objects)
- File input/output (text files vs binary files; basic file operations)
- Program style standards (readable programs; documentation; software maintenance)
Notes:
- Course contents and descriptions, offerings and schedules are subject to change without notice.
- Students are required to follow all College policies including ones that govern their educational experience at VCC. Policies are available on the VCC website at:
https://www.vcc.ca/about/governance--policies/policies/.
- To find out if there are existing transfer agreements for this course, visit the BC Transfer Guide at https://www.bctransferguide.ca.