CMPT 1020: Introduction to Computer Programming 2
Effective date
September 2020
Department
UT Computing Science&Software
Description
This course builds upon the foundations set in CMPT 1010 Introduction to Computer Programming 1. Students will learn how to apply fundamental object-oriented programming concepts to efficiently program applications with an intermediate level of difficulty. Topics include object-oriented design, object-oriented programming, encapsulation, inheritance, aggregation, operator overloading, virtual functions, polymorphism, function templates, class templates, exception handling, implementation of algorithms and data structures, introduction to complexity analysis, and introduction to embedded system programming. C++ is used as the implementation language.
Year of study
1st Year Post-secondary
Course Learning Outcomes
Upon successful completion of this course, students will be able to:
- Explain and apply the storage model used for data in C and C++
- Compare procedural and object-oriented methodologies
- Analyze a well-defined problem and design a solution using object-oriented design methodology
- Discuss encapsulation, abstraction, information hiding, inheritance, polymorphism, virtual functions, templates, and other object-oriented-related terminology
- Identify and utilize some of the data structures implemented in C++ STL (Standard Template Library) to develop software
- Create own abstract data types and be able to explain/incorporate the concepts of extensibility, maintainability, and reusability
- Design and implement complex algorithms by composition of simple algorithmic building blocks
- Design, implement and test a complete C++ program to solve a problem (main program, three-five classes, a few hundred lines of code)
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
Lecture, computer lab demos and hands on computer activities
Grading System
Letter Grade (A-F)
Evaluation Plan
Type
|
Percentage
|
Assessment activity
|
Assignments
|
15
|
|
Midterm Exam
|
50
|
2-3 Midterm exams
|
Final Exam
|
30
|
|
Participation
|
5
|
|
Course topics
- Review of C++ basics procedural programming (arrays; pointers and dynamic memory allocation; iterative and recursive functions; procedural programming)
- Object-oriented programming basics (structures; classes as abstract data types; public members vs private members of a class; information hiding, accessors and mutators; constructors and destructors; separating class specification from class implementation)
- Object-oriented concepts (static class members vs instance members; member-wise assignment; copy constructors; operator overloading using non-member and member functions; friend functions; inheritance, class hierarchies and protected members; aggregation; polymorphism and virtual functions; abstract base classes and pure virtual functions)
- Exception handling (throwing an exception; catching and handling exceptions; exception classes and object-oriented exception handling)
- Templates (function templates; class templates)
- Introduction to data structures and algorithm (An introduction to efficiency analysis of algorithm; C++ STL arrays and vectors; STL containers and iterators; stacks and queues; linked listed)
- Basics of C++ programming for embedded systems
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.