Hybrid classes this week.
BTE1522
DRE2213
The world is digital, but life is analog..
Hybrid classes this week.
BTE1522
DRE2213
♦
STEM Summit 2024 is happening now Website
Exploring Pedagogical Approaches in Arduino Robotics Through Hands-On Experience at the 2024 IEEE STEM Summit
The 2024 IEEE STEM Summit brought together educators, researchers, and industry professionals to explore the latest trends and challenges in STEM education. At this event, I had the honour of presenting on “Exploring Pedagogical Approaches in Arduino Robotics Through Hands-On Experience,” where we discussed methods of engaging students in robotics, focusing on building skills through direct, hands-on activities.
The presentation aimed to illustrate the value of blending practical robotics work with foundational theory, especially when working with Arduino robotics, to enhance student learning outcomes.
Key Themes and Teaching Approaches
The main theme of this presentation was how a well-designed hands-on approach can havean impact on learning and make complex topics like robotics and electronics more accessible. Teaching Arduino robotics requires balancing both theory and practice. For students to truly understand the inner workings of a robotic system, theoretical concepts should be taught alongside practical applications, where students directly apply what they’ve learned.
In developing a well-rounded robotics curriculum, the following approaches are emphasized:-
Towards the end of the presentation, participants posed questions, reflecting on the pedagogical aspects in enhancing the Arduino robotics curriculum.
Here’s a recap of some key questions and my responses –
The presentation highlighted how hands-on learning in Arduino robotics can be transformative for students, whether they are beginners or more advanced learners. Through a scaffolded approach that combines theory and practice, students develop not only technical skills but also critical thinking and problem-solving abilities. The summit was an excellent platform to share these insights and learn from other educators in the field who are equally passionate about making STEM accessible and engaging.
Again, thank you IEEE TryEngineering for the opportunity to present at the 2024 STEM Summit! It was an honor to share insights on hands-on learning in Arduino robotics and to explore the impact of the right pedagogical approach in helping students connect with engineering concepts meaningfully =). I look forward to continued collaboration and applying these techniques to create even more engaging learning experiences. Kudos to all the speakers for their inspiring talks and fantastic!
Let’s explore learning programming by troubleshooting Codes 😀 – Flags and Scoring Systems in Python
Today’s coding session was all about debugging and enhancing a game we’ve been developing step by step. We dove into Act 4, 5, 6 and 7, focusing on how to fix some key issues in the game logic—specifically how to properly handle scoring during collisions between the player and enemies.
PBL – ‘The Problem’
We already had a working player and enemy system in the game. The player can move left and right, while an enemy drops down from the top of the screen. The challenge was ensuring the player’s score only increased by one upon a collision with the enemy. Instead, the score was skyrocketing with every game frame where the player touched the enemy, adding several points instead of just one.
This type of issue is common when developing games, where collisions can occur over multiple frames. But we only want the score to increment once per collision event. To fix this, we introduced an important concept: the flag.
Introducing Flags in Python
In programming, a flag is a boolean variable (True/False) used to indicate whether a certain condition has been met. For our game, we needed a flag to signal whether a collision between the player and enemy had already occurred. This would prevent the score from increasing continuously while the player and enemy rectangles overlap.
Using a Flag to Control Scoring
Here’s how we used the flag –
collision_occurred
, which is initially set to False
. This flag keeps track of whether the collision has already happened.collision_occurred
is True
or False
.
False
and a collision happens, the score increments by 1, and the flag is set to True
. This prevents further increments until the enemy resets.True
, no further points are added, even if the player remains in contact with the enemy.False
, allowing for another score increment during the next collision.p/s Score Board is being implemented this year. One of the ways to monitor students progress in class
BTE1522
DRE2213
In Week 2 of the BTE1522 DRE2213 course, the focus was on fundamental programming concepts, specifically data types and control statements in Python. These are critical building blocks for developing logical structures within any programming language and are key to enabling students to design functional applications.
int
): Whole numbers, like 1, 2, or 100.float
): Numbers with decimal points, like 3.14 or 5.0.str
): Text data, enclosed in quotes, like “Hello, World!”.bool
): True or False values, used for conditional logic.Activity 1-3: Player Creation and Movement
Students applied their understanding of data types and control statements through practical coding exercises. In Activities 1-3, they created a basic player character and programmed its movement across the game window.
The coding exercise allowed students to implement:
Moving to the Second Phase – Five Challenges
After completing the initial activities, students moved to a more challenging phase involving code modifications and analysis. They were tasked with modifying and analyzing code to address five distinct challenges, each designed to deepen their understanding of data types and control statements.
Challenge 1: Modify Movement with Control Statements
Objective – Students were introduced to control statements such as if, elif, and else. They modified the code to allow the player to move based on specific conditions, such as different key presses resulting in different player actions.
Challenge 2: Boundary Control with Conditional Statements
Objective – In this challenge, students explored boundary detection using if and else statements. The goal was to prevent the player from moving outside the game window. This reinforced their understanding of how conditions can control flow in a program.
Challenge 3: Change Player’s Color with Data Types
Objective – Students were introduced to the concept of variables and data types such as lists and tuples. The challenge was to change the player’s color based on certain conditions, like the player reaching specific coordinates.
Challenge 4: Score and Time Tracking with Variables
Objective – Students explored the use of variables and loops to add a scoring system and time limit. They learned how to create a variable that increments when the player performs specific actions and how to manage game time using a while loop.
Challenge 5: Advanced Activity: Collision Detection
Objective – The final challenge involved practicing control structures and Boolean data types to detect when the player collided with the screen edges. This challenge required students to think critically about game dynamics and how to implement collision logic.
Pedagogical Approaches in the Exercise
To ensure a thorough understanding, two pedagogical approaches were used throughout the five challenges:
Week 2 was an essential part of the course as it introduced fundamental programming concepts like data types and control statements in Python. Through interactive activities and challenges, students not only learned to implement these concepts but also developed problem-solving skills by engaging in code modification and analysis. These exercises laid a strong foundation for the more advanced topics to come in the course.
Nurul Oct 15th
DRE2213
BTE1522