Prerequisite Knowledge

Electric Circuits

Having a basic conceptual understanding of electric circuits is very helpful, so students can better understand how to correctly connect the parts in their IoT electronics kit (and how to troubleshoot connection issues) – however, it is NOT required:

  • Atoms and Electrons

  • Static Electricity vs. Current Electricity

  • Conductors vs. Insulators

  • Closed Circuit vs. Open Circuit

  • Voltage, Current, and Resistance

  • Series Circuit vs. Parallel Circuit

Being able to solve quantitative equations involving circuits (Ohm's Law, etc.) is NOT required.

The IoT tutorials will provide a limited explanation of circuits, which should be sufficient for using the IoT kit to create devices.

Physical Computing

Previous experience building and programming devices using an Arduino electronics kit – such as a robotics kit, etc. – is very helpful. However, it is NOT required. The IoT tutorials will assume that students have no prior experience in building or programming physical computing devices.

Arduino

Previous experience and familiarity with the following Arduino development concepts is very helpful before programming IoT device apps – however, it is NOT required:

  • Variables – declaring data type (int, float, boolean, String, etc.) and name (unique identifier), assigning and changing values, converting data type, global vs. local scope

  • Program Functions – setup() function, loop() function, creating custom functions, calling a custom function, passing arguments into a function, returning value from a function

  • Input/Output Functions – such as: pinMode(), digitalRead(), digitalWrite(), analogRead(), analogWrite(), tone(), etc.

  • Libraries and Objects – including external library file in device app, constructing new object using defined class in library, using object properties and methods

  • Comparison Operators – such as: >, <, ==, !=, etc.

  • Logical Operators (NOT, AND, OR): !, &&, ||

  • Conditional Statements using if and else

  • Loops – such as: for, while, etc.

Web Development

Previous experience and familiarity with these web development concepts is highly recommended before programming IoT web apps – however, mastery is NOT required:

HTML

  • Tag syntax for common HTML elements – such as: <div>, <h1>, <h2>, <p>, <span>, <a>,<img>, <button>, <input>, <ul>, <li>, etc.

  • Nesting of HTML elements within other elements

  • Use of class and id attributes for HTML elements

  • Loading external files – such as: CSS style sheets, JavaScript files, images, other web pages, etc.

CSS

  • CSS selectors for HTML elements, classes, and ids

  • Common properties used in styles – such as: background-color, color, font-size, margin, padding, border, width, height, display, etc.

JavaScript (including jQuery)

  • Variables – declaring names (unique identifiers), assigning and changing values, data types (numbers, strings, boolean, etc.), global vs. local scope

  • Functions – creating functions, calling a function, passing arguments into a function, returning value from a function

  • Objects – constructing new object using defined class, using object properties and methods

  • Comparison Operators – such as: >, <, ==, !=, etc.

  • Logical Operators (NOT, AND, OR): !, &&, ||

  • Conditional Statements using if and else

  • Loops – such as: for, while, etc.

  • Events – such as: onclick, onchange, etc.

  • jQuery selectors for HTML elements, classes, and ids

  • jQuery syntax for basic functions – such as: .html(), .show(), .hide(), .addClass(), .removeClass(), etc.

Familiarity with these JavaScript concepts will make it easier for students to learn and apply similar concepts when programming their IoT device apps (using either the Wiring or Arduino programming language).