Hackathon Goals

 Hackathon Goals

In a compressed, two-day timeframe, the primary goal of an engineering hackathon is almost entirely centered on team-based engineering design, rapid prototyping, and system integration, rather than foundational skill acquisition.

While participants will inevitably pick up new technical tricks along the way, using a 48-hour sprint to teach foundational CAD or microcontroller coding usually leads to frustration rather than innovation.

Here is a breakdown of how these two objectives function within a hackathon environment.

Why Foundational Skills Take a Backseat

Learning to effectively use tools like Onshape, Fusion 360, or C++ for ESP32s and Arduinos requires time to process syntax, understand physical constraints, and troubleshoot isolated errors. A two-day event simply doesn't offer the runway for this.

If participants spend their first 12 hours learning how to wire an I2C OLED display or mate components in a CAD assembly, they lose the time needed to actually design and build a solution. When foundational skills are introduced at a hackathon, they are typically scaffolded for "just-in-time" learning:

* Starter Kits: Providing pre-written code snippets for standard sensors (like ultrasonic or HC-12 transceivers) so participants only have to tweak parameters.

* Base Models: Supplying pre-designed 3D chassis files where students only need to model and print a custom attachment, rather than the entire system.

* Low-Floor Tools: Shifting to block-based coding or simpler hardware interfaces if the cohort lacks prior experience.

The True Goal: Team-Based Design

A hackathon is an exercise in applied engineering. The extreme time constraint is actually a design feature, forcing teams to engage in high-level engineering practices that traditional labs often miss:

* Scope and Triage (MVP): Teams must define a Minimum Viable Product. They learn the hard way that they cannot build a fully polished, commercial-grade product in two days, forcing them to prioritize core functionality over "nice-to-have" features.

* Parallel Development: To finish on time, a team must divide and conquer. One person might be writing the logic for a servo motor, while another laser-cuts an enclosure, and a third researches the user problem.

* System Integration: The most critical lesson in a hackathon usually happens in the final hours: combining the hardware, the code, and the physical enclosure. This is where real-world troubleshooting occurs, as teams figure out why code that worked on the breadboard is suddenly failing when stuffed into a 3D-printed case.

* Resilience and "Good Enough" Engineering: Students learn to pivot quickly when a sensor burns out, a 3D print fails, or a library won't compile.

Structuring for the Right Outcome

If the primary objective of an event is for students to walk away knowing how to write a function or extrude a sketch, a bootcamp or workshop is the correct format.

If the objective is to test how well students can identify a problem, collaborate, deploy the tools they have (or can quickly research), and present a functional prototype, then a hackathon is the perfect crucible.

---------------------------------------------------------------------------------------------------

Arduino Bootcamp Sample Outline

To build a strong foundation, an Arduino bootcamp should move logically from simple outputs to complex inputs, and finally to system integration.

Here is a comprehensive 4-part bootcamp outline designed to take complete beginners from blinking an LED to integrating sensors and motors with fabricated chassis.

Module 0: Wiring Methods

If needed, review use of wire strippers and soldering irons, and wiring color codes.

https://sites.google.com/view/acera-arduino/electronics/electronics-tools

https://sites.google.com/view/acera-arduino/electronics/wiring-methods

https://sites.google.com/view/acera-arduino/electronics/soldering


Module 1: The Core Loop and Physical Outputs

The goal of the first module is purely to get students comfortable with the IDE, the syntax, and the idea that code can make physical things move.

* The "Hello World" of Hardware: Start with the classic Blink sketch using the onboard LED. This introduces the setup() and loop() structure without the complication of breadboard wiring.

https://sites.google.com/view/acera-arduino/arduino/blink-sketch

* Breadboarding 101: Move to an external LED and a resistor. Introduce the concept of a complete circuit, Ground, and 5V.

* Moving Things (Servo Motors): Introduce the #include <Servo.h> library. Servos are highly engaging because they offer immediate, dramatic physical feedback. Have students write code to sweep the servo back and forth, introducing for loops.

https://sites.google.com/view/acera-arduino/arduino/libraries-and-servomotor


Module 2: Sensing the World and Logic

Once they can control outputs, they need to learn how to read inputs to make their systems reactive.

* Digital Inputs (Buttons): Wire a simple push-button. This is the perfect time to introduce if/else logic (e.g., if the button is pressed, sweep the servo; else, stop the servo).

https://sites.google.com/view/acera-arduino/arduino/reading-a-button

* Complex Inputs (Ultrasonic Distance Sensors): Move from simple high/low states to gathering continuous data. Using an ultrasonic sensor, teach students how to read the data via the Serial Monitor.

https://sites.google.com/view/acera-arduino/advanced/ultrasonic-sensors

* Mapping and Reacting: Combine the ultrasonic sensor and the servo. Teach the map() function so the servo's angle changes proportionally as an object gets closer to the ultrasonic sensor.

https://sites.google.com/view/acera-arduino/arduino/distance-servo

Module 3: Visuals, Communications, and Integration

The final module transitions from individual components to a cohesive, integrated system that can display data and fit into a physical design.

* Data Display (OLED Screens): Introduce I2C communication and the necessary libraries (like Adafruit SSD1306) to display the ultrasonic sensor's distance readings on a small OLED screen instead of the computer's Serial Monitor.

https://sites.google.com/view/acera-arduino/advanced/oled-display-ssd1306

https://sites.google.com/view/acera-arduino/projects/weather-monitor-wbme280

* Wireless Basics (Optional but High-Impact): If time permits, introduce basic wireless communication using Bluetooth Classic, ESP-NOW, or HC-12 transceivers to send a sensor reading from one microcontroller to another.

https://sites.google.com/view/acera-arduino/projects/remote-alarm-arduino

* Physical Integration (The Capstone): A breadboard is a prototype, not a product. Have students transition to Onshape or Fusion 360 to design a simple enclosure or mounting bracket for their servo and sensor. This culminates in 3D printing or laser-cutting their designs to house their final integrated circuit.

Instructor Tips for Bootcamp Flow

* Centralize Code Snippets: Keep all base code, library zip files, and wiring diagrams in a single Canvas LMS module or a shared Padlet. Beginners will struggle to type syntax perfectly; giving them the base code to modify prevents them from getting stuck on missing semicolons.

* Isolate Troubleshooting: If a student's ultrasonic-to-servo project isn't working, teach them to isolate the problem. Does the Serial Monitor show the sensor is working? If yes, the problem is in the servo code or wiring.

No comments:

Post a Comment

Engineering and Applied Technology in Chinese High Schools

      What do students in Chinese high schools in Hong Kong   learn about engineering and computer science? In Hong Kong's secondary edu...