1. Have an appropriate classroom
In many ways an appropriate classroom for teaching a hands-on computer science and engineering class is similar to that for teaching a more traditional shop class. But the differences are such that with some care an ordinary classroom will serve.
The 3D printer and laser cutter are nice to have but not essential for a successful class. What is essential is the following:
- Soldering stations with either ventilation or fume extractors. Fume extractors are inexpensive and available from many sources.
- Adequate storage, both for materials and for student work-in-process.
- Tools. Fortunately, the tools required are common and inexpensive. Visit Setting Up A Classroom at www.learncse.com for details.
- Electrical outlets for power supplies for student laptops.
- Organization of and storage for electronic components. Even if student supplies are kitted before start of class, which is how the summer WaNIC class is conducted, students will still need access to replacement parts. We’ve found organizing parts by catalog number works well. See www.learncse.com/parts for an explanation and advantages of the parts catalog.
2. Have access to complete, accurate, integrated teaching materials
We teach the materials in Lessons 1 through 18 on LearnCSE.com as a semester class. But perhaps your interests are different or you wish to assemble a class a la carte. Here are some sources we’ve found useful:
- www.learncse.com - our site, of course. Because we are teachers we approach the material in an integrated way and are adding teacher-specific material, including quizzes, worksheets, common student errors, and images.
- www.arduino.cc- home of the Arduino standard that defines the Arduino Uno single-board computer. The learning section is very good, complete with examples. The focus, appropriately, is on learning how to program the Arduino, rather than on preparing the student for a career path.
- learn.adafruit.com – emphasizes how to work with the devices the Adafruit company makes and sells, most of which works with the Arduino Uno.
- learn.sparkfun.com – as with Adafruit, this site provides tutorials for working with their Arduino-related products.
Providers of robotics components, such as Vex, also have tutorials and lessons. Because in our classes we concentrate on the application of single board computers and not on the building of robots for competition we view Vex as a potential supplier of parts rather than a source of instruction material.
3. Be able to procure and manage components inventory, and control costs
Each student who works through the lessons on our website uses about sixty individual electronic components ranging from integrated circuits and DC motors to single-board computers. This comes to about 1700 components per class of 28 students, not including spares, of which each clas must have some.
Spares are needed because students break leads, solder parts in backwards, burn parts out, and lose parts. Some, such as resistors, are inexpensive at a few cents each Most cost more. An infrared sensor, for example, is about $2 and can be damaged with a wiring mistake.
Procuring parts can be intimidating and time consuming for three reasons:
- Parts are available from multiple sources and while they may have identical specifications they may differe in subtle but important ways. The tiny white breadboard used for the motor controller shield is a good example. The image here comes from Adafruit.com. The Parts Catalog shows where we get ours but a check with Amazon returns other sources with idential appearance and number of pins, and for less money. Sometimes these substitutes work. Often they don't. In this case, the breadboards from Amazon are slightly too wide to fit the circuit board.
- Parts with slightly different specifications may be substituted for those in a parts list, but cause unforeseen problems. One year, for example, we purchased a large quantity of red LEDs because the price was very attractive and what could go wrong? Turned out that unlike every other LED we'd ever worked with these did not use lead length as the means of identifying positive. Students were constantly installing them backwards. (Picture from Radio Shack)
- Parts can be hard to identify once in hand. The 0.1 microfarad capacitor is used liberally in electronic designs to minimize the impact of electronic interference. Documentation refers to them as 0.1 microfarad adn the online catalogs sell them as 0.1 microfarad. Yet the device that arrives when an order is placed is marked 104. Those who understand how to interpret this number are able to identify the part as 0.1 microfarad. The rest of us are bewildered.
Finding parts that will work while saving time and not breaking the budget
Two good ways to do this.
- Use the Parts Catalog on LearnCSE.com. Every HowTo and Lesson on LearnCSE has a parts list. Each entry on that list includes a Catalog number. Take that number into the Pars Catalog and it will tell you where to buy it, and provide the vendor's part number.
- Buy parts and kits from our store. Do we make money on such sales? Yes, a little, enough to offset some of the costs of running this website. By buying from us you help us keep the website going and new content being added.
One of our teachers hit upon the idea of storing parts in the classroom by catalog number. We can't think of a better way.
4. Know your subject
Four skills are needed - minimal electronics, how to use the Arduino Uno, how to program in Arduino C, and how to debug student work.
What you need to know about electronics
Fortunately, not much. Electronics as learned by students in college engineering programs is math-intensive. For this class the instructor needs only:
- understand how the basic components work, in particular the resistor, light-emitting diode, infrared-emitting diode, infrared sensor, push button, potentiometer, H-bridge integrated circuit, DC motors, voltage regulator. Walking through the lessons in LearnCSE.com will teach these.
- the definitions and relationships of voltage, current, and resistance. Be able to use a digital multimeter to measure voltages.
- how to use basic electronics-related tools, in particular long-nosed pliers, wire cutter, wire stripper, and soldering iron.
What you need to know about the Arduino Uno
How to program and use the analog pins, the digital pins, and the Serial Monitor. As with the electronics, a walk-through of the lessons will teach these.
What you need to program in the Arduino C language
This is the major challeng of being able to teach this, or any small-computer course whether it be Arduino, Vex, or Raspberry Pi. You need to not only understand the syntax and commands of the language but also how programs (called "sketches" by the Arduino) are structured and how they use libraries to expand capabilities.
We are working now on offering Professional Development classes to teach how to program in Java and Arduino C.
What you need to know to debug student work
Students make mistakes, a lot of them.The variety of mistakes is not large, fortunately. As a result, most mistakes can be found by following a scripted inquiry. We are writing some of these now.
Still, scripts won't discover and correct all errors. For this the only teacher is experience. To jumpstart this experience we are proposing a Professional Development class on teaching hands-on computer science and engineering. A large portion of this class is on debugging student work.