APIs for Dummies – A Free eBook by IBM

Modern business ecosystems need to rethink their approach to innovation and integration. This eBook is your guide to applying the power of APIs to business challenges ranging from changing business models to embracing a world of devices and sensors.

Get the eBook >

Learn to Program with Python

On Teaching

As a college instructor, there is one thing that I rarely have ever talked about and that is how I have improved my skills. Every day in class I am constantly being asked to help solve student programming problems and demonstrate and explain my solutions. There has rarely been a time when I couldn’t come up with a solution.

The other skill that I have developed is solving problems “over the air”. What this entails is being able to solve a student’s problems without even seeing their code. I ask a series of questions and by the time we get to the second or third question the student has resolved their own problem.

I highly recommend that you give teaching of any kind a try. It will not only help your students but yourself.

Updated List of College Classes I have Taught

Here’s an updated list of the courses I have taught at Clark College in Vancouver, WA over the past 4 years:

  • Programming Essentials (CTEC 112)
  • HTML Fundamentals (CTEC 122)
  • JavaScript (CTEC 126)
  • Intro to Programming and Problem Solving with Python (CTEC 121)
  • PHP with SQL 1 (CTEC 127)
  • Business Web Practices (CTEC 165)
  • PHP with SQL 2 (CTEC 227)
  • API & Advanced Integration (CTEC 228)
  • WordPress Development (CTEC 260)

There are some new courses on the horizon as well that I may be teaching. Stay tuned.

Here’s what I am teaching this winter at Clark College

For the winter quarter I will be teaching the following courses at Clark College in Vancouver, Washington:

  1. CTEC 121: Intro to Programming and Problem Solving (Python) – 5 credits
  2. CTEC 122: HTML Fundamentals (HTML/HTML5/CSS) – 4 credits
  3. CTEC 127: PHP/MySQL 1 – 5 credits

If you are interested in taking any of these classes please let me know.

Don’t Distract New Programmers with OOP

Thomas Gumz sent me a link to a blog entry entitled “Don’t Distract New Programmers with OOP“. Having just wrapped up one year of teaching “Intro to Programming and Problem Solving” to students at Clark College, I could not agree more. One of the core outcomes of my class is centered around functional decomposition – how to break down a problem into smaller, simpler parts.

When I get asked “What’s a good first programming language to teach my [son / daughter / other-person-with-no-programming-experience]?” my answer has been the same for the last 5+ years: Python.

I get this same question almost on a daily basis from so many people. Admittedly, before I started teaching the class I questioned the use of Python for new programmers. Well, guess what? It’s the perfect language and I have the results to prove it.

Did we cover object oriented programming in the class – yes, but not to the level that most would expect. We did just enough for students to wrap their heads around the concept. In fact, one student tried to use OOP for their final project and had a heck of a time. In fact this student was pushing for more OOP content and after the class concluded they admitted that OOP was much harder then they expected it to be.

The shift from procedural to OO brings with it a shift from thinking about problems and solutions to thinking about architecture. That’s easy to see just by comparing a procedural Python program with an object-oriented one. The latter is almost always longer, full of extra interface and indentation and annotations. The temptation is to start moving trivial bits of code into classes and adding all these little methods and anticipating methods that aren’t needed yet but might be someday.

Be sure and read the blog entry as I think that you will agree with avoiding OOP in an introductory programming class. If you are interested in learning more about pursuing a programming career drop me an email as I would love to help.

You can read what others are saying about this article on Yacker News.

More >

Ars Technica: What’s the difference between college-level and corporate programming?

This article strikes home as I am now completing my first year as a college instructor who teaches computer programming:

When they graduate and get their first job, a lot of students feel like they don’t really know how to program even though they may have been good programmers in college.

What are some of the differences between programming in an academic setting and programming in the ‘real world’?

In a traditional undergraduate computer science program you learn just programming. But the real world doesn’t want people who are just programmers. The real world wants real software engineers. I know many job descriptions don’t seem to express this distinction, which only confuses the matter.

More >