Course Overview
This course continues to build on previous programming skills with the introduction of object-oriented programming techniques. C++ classes and the related topics of abstraction, encapsulation, inheritance, polymorphism, and function and operator overloading are covered. The C++ standard library is covered for both console and file input/output data manipulation, as well as more recent additions to the library such as threads. C++ string manipulation techniques will be used to implement a custom serial communication protocol. The use of C++ in complex, time-critical, applications is motivated through the development of a machine vision application using the open source C++ library OpenCV. Advanced data structures such as vectors and linked lists for dynamic memory allocation will also be introduced. Development will take place on both Windows and Linux operating systems to investigate cross-platform development.
Prerequisite(s)
Credits
5.0
- Not offered this term
- This course is not offered this term. Notify me to receive email notifications when the course opens for registration next term.
Learning Outcomes
Upon successful completion of the course, the student will be able to:
- Use the C++ standard library to manipulate strings and store and retrieve data from text and binary files. [1]
- Generate simple classes and build class hierarchies to solve programming problems. [4]
- Design, implement and test applications of moderate complexity using object-oriented methods. [4]
- Use objects such as vectors and linked lists for dynamic memory allocation. [1]
- Interface to external hardware in order to provide analog and digital I/O. [1]
- Use a software version control system to manage changes to software developed for the course. [5]
- Use a modern software documentation system to expose (i.e., provide access to) the API commands developed. [7]
- Work effectively and productively in both the Windows and Linux environments to develop C++ programs. [5]
Engineering Accreditation
The Canadian Engineering Accreditation Board (CEAB) oversees the accreditation of engineering programs across Canada. To measure the effectiveness of an engineering program the CEAB has identified twelve specific attributes that the graduate is expected to possess and use as the foundation to developing and advancing an engineering career. To ensure that the overall curriculum of the Bachelor of Engineering in Electrical program covers these attributes sufficiently, the learning outcomes for each course have been mapped to applicable CEAB graduate attributes.
1. A knowledge base for engineering: Demonstrated competence in university level mathematics, natural sciences, engineering fundamentals, and specialized engineering knowledge appropriate to the program.
2. Problem analysis: An ability to use appropriate knowledge and skills to identify, formulate, analyze, and solve complex engineering problems in order to reach substantiated conclusions.
3. Investigation: An ability to conduct investigations of complex problems by methods that include appropriate experiments, analysis and interpretation of data, and synthesis of information in order to reach valid conclusions.
4. Design: An ability to design solutions for complex, open-ended engineering problems and to design systems, components or processes that meet specified needs with appropriate attention to health and safety risks, applicable standards, and economic, environmental, cultural and societal considerations.
5. Use of engineering tools: An ability to create, select, apply, adapt, and extend appropriate techniques, resources, and modern engineering tools to a range of engineering activities, from simple to complex, with an understanding of the associated limitations.
6. Individual and team work: An ability to work effectively as a member and leader in teams, preferably in a multi-disciplinary setting.
7. Communication skills: An ability to communicate complex engineering concepts within the profession and with society at large. Such ability includes reading, writing, speaking and listening, and the ability to comprehend and write effective reports and design documentation, and to give and effectively respond to clear instructions.
8. Professionalism: An understanding of the roles and responsibilities of the professional engineer in society, especially the primary role of protection of the public and the public interest.
9. Impact of engineering on society and the environment: An ability to analyze social and environmental aspects of engineering activities. Such ability includes an understanding of the interactions that engineering has with the economic, social, health, safety, legal, and cultural aspects of society, the uncertainties in the prediction of such interactions; and the concepts of sustainable design and development and environmental stewardship.
10. Ethics and equity: An ability to apply professional ethics, accountability, and equity.
11. Economics and project management: An ability to appropriately incorporate economics and business practices including project, risk, and change management into the practice of engineering and to understand their limitations.
12. Life-long learning: An ability to identify and to address their own educational needs in a changing world in ways sufficient to maintain their competence and to allow them to contribute to the advancement of knowledge.
Effective as of Fall 2017
Related Programs
Object Oriented Program Design (ELEX 4618) is offered as a part of the following programs:
- Indicates programs eligible for students to apply for Post-graduation Work Permit (PGWP).
School of Energy
- Electrical Engineering
Bachelor of Engineering Full-time
Programs and courses are subject to change without notice. Find out more about BCIT course cancellations.