Courses

Here’s a collection of courses I’ve taught…

Database Clinic: SQLite

SQLite is a powerful embedded database engine that’s a core storage technology in Android and iOS applications. In this installment of the Database Clinic series—in which experts and their databases of choice are pitted against a series of the same challenges— I demonstrate how to leverage SQLite to solve common database problems. After providing a brief overview of the strengths and weaknesses of SQLite, I explain how to create a database and populate it using a public dataset. I also shows how to use a SQLite database with programming languages such as Python and R, handle subqueries and queries in SQLite, and more.

Topics Include:

  • Strengths and weaknesses of SQLite
  • Creating a database
  • Joining data sets
  • Calculations with SQLite and Python
  • Searching a database
  • Subqueries and queries in SQLite
  • CRUD operations in SQLite with R

Code Clinic: R

Code Clinic: R Successful programmers know more than a computer language. They also know how to think about solving problems. They use “computational thinking”: breaking a problem down into segments that lend themselves to technical solutions. Code Clinic is a series of ten courses where authors solve the same problems using different programming languages.

In this Code Clinic, I show you how to solve six problems with the R programming language.

  • Simple statistical analysis of an online weather station.
  • Image analysis and find a subset of a jpeg image using ccf.
  • The classic Eight Queens problem.
  • Build a Theremin.
  • Recursion and Directories.
  • Build a website using RStudio Shiny

Learning Raspberry Pi

Unlock a world of hardware programming possibilities with the Raspberry Pi. This inexpensive little computer has been used to build Internet-connected dog treat dispensers, smartphone-operated coffeemakers, and even a solar-powered computer. Imagine what innovative projects you can create with the Raspberry Pi—and a little training.

I show you how to buy, set up, and configure your first Raspberry Pi. I’ll show you how to accessorize your Pi, boot it up, make it play sounds, and program simple tasks. You’ll also explore basic electronics (resistors, transistors, and more) with the Raspberry Pi’s GPIO pins. The final chapter explores a practical sample project—setting up a media center—which provides a small taste of what you can DIY with the Raspberry Pi.

Raspberry Pi: GPIO

The Raspberry Pi talks to the outside world through the general-purpose input/output device, also known as the GPIO. This course describes these pins and explains how to use the GPIO to control lights and motors, read data from sensors, and interact with the Internet of Things. It combines some hardware basics—identifying pins and working with breadboards and components—with some programming in Python and Scratch. I’ll also show how to go deep into WiringPi, a GPIO access library, to experiment with pulse width modulation. By learning how to control input and output through GPIO pins, you’ll open up a whole new world of electronics.

Teach Kids Programming with PHP

Programming is a great way to teach a child problem-solving skills and introduce them to technology’s inner workings. PHP is a great language to carry this out. In this course, I focus on helping adults who are experienced with PHP pass their coding skills on to a child or student. Each inquiry-oriented chapter consists of seven parts:

  1. Teacher’s Guide: Introduces the concepts in the chapter and preps the adult on places where the student might get stuck
  2. Try It: Immediately engages the student, showing working code in action
  3. Check It Out: Encourages the adult and student to engage with and edit some existing code
  4. The Facts: A lecture for the student to watch
  5. Extend It: An exploration of expanded and extended concepts
  6. Challenge: A hands-on coding challenge for the student
  7. Solution: A step-by-step solution presented by the author

This course, in essence, acts as a lesson plan to help teach PHP to a beginner. Its structured curriculum supports those who have a solid understanding of PHP, but don’t necessarily know how to teach PHP effectively to kids.