All Courses
Introductory Programming Courses
This course is designed to introduce students to the basics of programming using C++. It is aimed at beginners with little to no programming experience, providing a solid foundation in C++ syntax, semantics, and programming techniques. By the end of the course, students will be able to write simple to moderately complex programs in C++.
Data structure programming focuses on organizing and managing data efficiently using structures like arrays, lists, stacks, queues, and graphs. It helps optimize algorithms for tasks like searching, sorting, and mapping, forming the foundation for solving complex problems in computer science and software development.
Intermediate Programming Courses
Design programming and algorithms focus on creating efficient solutions to problems. It involves structuring code and selecting the best algorithms to achieve optimal performance. Algorithms are step-by-step procedures used to process data, solve problems, or perform computations, while good design ensures clarity, efficiency, and scalability in the program's structure. Together, they form the foundation for building reliable, efficient software solutions.
Intermediate Programming Courses
This course provides an in-depth exploration of Object-Oriented Programming (OOP) principles and practices using C++ and other object-oriented languages. It is designed for students with basic programming knowledge who want to deepen their understanding of OOP concepts and apply them to real-world problems.
Introductory Programming Courses
This course is designed to introduce students to the basics of programming using C++. It is aimed at beginners with little to no programming experience, providing a solid foundation in C++ syntax, semantics, and programming techniques. By the end of the course, students will be able to write simple to moderately complex programs in C++.
Description:
Students begin their journey into embedded systems by learning the fundamentals of C++ programming and applying them directly to Arduino-based electronic systems.
They learn how a microcontroller interacts with the physical world through digital and analog inputs and outputs, sensors, motors, servos, displays, and other electronic devices.
Instead of learning programming and electronics as separate topics, students combine them to build complete systems that can sense their environment, make decisions, and perform actions.
Throughout the course, students progress from basic circuits and programs to real engineering projects such as automated irrigation, smart greenhouses, radar systems, parking systems, and elevators.
Learning Objectives
By the end of the course, students will be able to:
- Understand the basic structure and operation of a microcontroller-based system.
- Understand the fundamentals of C++ programming.
- Use variables, data types, operators, conditions, loops, functions, and arrays.
- Understand the structure of an Arduino program.
- Work with digital inputs and outputs.
- Read and process analog signals.
- Interface different sensors with Arduino.
- Control LEDs, buzzers, DC motors, and Servo Motors.
- Understand the difference between sensors and actuators.
- Read sensor data and convert it into useful information.
- Build decision-making logic based on sensor readings.
- Combine multiple inputs and outputs within one system.
- Break a large engineering problem into smaller programmable functions.
- Debug basic hardware and software problems.
- Design and build complete Arduino-based embedded systems.
Description
Students continue their embedded systems journey by exploring how modern electronic systems communicate, measure motion, determine position, and control movement accurately.
They learn wired and wireless communication concepts and work with technologies such as Bluetooth, NRF wireless communication, and Wi-Fi to exchange data between controllers and systems.
Students are introduced to navigation and motion sensing using IMU and GPS modules, allowing their systems to understand orientation, movement, and geographical position.
They also explore Wheel Encoders to measure motor movement and RPM and discover the difference between Open-Loop and Closed-Loop Control.
Using feedback from encoders, students are introduced to PID Control, learning how a system can continuously measure its error and automatically adjust its output to achieve more accurate and stable motion.
Stepper Motors and their drivers are also introduced, preparing students for precise motion-control applications used later in robotics and manufacturing machines.
Learning Objectives
By the end of the course, students will be able to:
- Understand the purpose of communication between embedded systems.
- Understand fundamental wired and wireless communication concepts.
- Work with common communication protocols.
- Establish communication between multiple microcontrollers.
- Use Bluetooth modules for wireless communication.
- Use NRF modules for wireless data transmission.
- Connect embedded systems through Wi-Fi.
- Send and receive structured data between devices.
- Understand the fundamentals of robot navigation.
- Interface GPS modules and process positioning data.
- Understand IMU-based motion and orientation sensing.
- Measure Roll, Pitch, and Yaw.
- Develop orientation-monitoring applications.
- Interface and control Stepper Motors.
- Use Stepper Motor Drivers for precise motion control.
- Understand the operation of Wheel Encoders.
- Measure wheel rotation and calculate RPM.
- Understand Open-Loop versus Closed-Loop Control.
- Understand the concept of feedback and error.
- Understand the fundamentals of PID Control.
- Apply feedback control to improve motor speed accuracy.
- Integrate communication, sensing, navigation, and control into complete embedded systems.
Introductory Programming Courses
This course is designed to introduce students to the basics of programming using C++. It is aimed at beginners with little to no programming experience, providing a solid foundation in C++ syntax, semantics, and programming techniques. By the end of the course, students will be able to write simple to moderately complex programs in C++.