In this course students will learn how to use C++ to
create GUIs, how to create an original Windows application in Native mode, how
manipulate Device Dependent and Device Independent bitmaps and how to take advantage
of Microsoft Foundation Class (MFC) to do similar tasks more efficiently.
![](https://online.itdcanada.ca/pluginfile.php/509/course/overviewfiles/Untitled-1.jpg)
This is an advanced course that introduces advanced software engineering principles, techniques and algorithms. Students will learn to apply multiple design patterns with different intents to make their code more effective and reusable. Topics will include façade, flyweight, iterator, builder, bridge, composite and model view controller design patterns, graph processing and compression.
![](https://online.itdcanada.ca/pluginfile.php/499/course/overviewfiles/cs161logo.png)
Programing effectively and in a way that the code can be reused is a major goal for every programmer. Once a person understands the programing and logic, they must start thinking about software engineering concepts that make the code faster, effective and reusable. In this course students will learn quite a few algorithms and software engineering tools plus two fundamental design patterns that are the base for understanding other design patterns. Students also will be introduced to the standard template library, abstract data types, trees and recursion as well as sort and search algorithms.
![](https://online.itdcanada.ca/pluginfile.php/95/course/overviewfiles/PDSE-algorithm-structure.gif)
ANSI C and C++ are extensively used beside assembly language to program embedded systems. Any smart device which has the capability of being programmed has a chip in it that is programed by Assembly, C or C++. In this course students will learn how to program microcontrollers or other chips using C and C++ and taking advantage of Arduino development Environment.
![](https://online.itdcanada.ca/pluginfile.php/45/course/overviewfiles/embedded.jpg)
- Teacher: Azim Keshtkar
Assembly language is the oldest programming language, and of all
languages, bears the closest resemblance to native machine
language. It provides direct access to computer hardware, requiring
users to understand much about their computer’s architecture and
operating system. This course focuses on programming
microprocessors compatible with the Intel IA-32 and AMD x86
processors running under Microsoft Windows. The x86 processor
type is appeared in the Intel 80386 processor, and continued with
processors such as the Intel Pentium, Intel Pentium 4, Intel Pentium
Core Duo, and the Advanced Micro Devices (AMD) Athlon.
![](https://online.itdcanada.ca/pluginfile.php/37/course/overviewfiles/Assembler.png)
- Teacher: Azim Keshtkar