Learning the Abstractions

Since much of programming is about creating and manipulating abstractions, it figures that a large amount of education is going to be about leaning those abstractions. Things like classic data structures, the useful sloppiness of O-notation for algorithm analysis, and…

Strong Typing for Security

I got into a mild argument about static vs. dynamic typing. I recognize that static typing can be verbose to the point of being repetitious. Take Java generics for example: List<String> astr = new ArrayList<String>();List<String> astr = new ArrayList<String>(); There…

Unit Testing in Education

In my readings of Extreme Programming, one thing I’m struggling to pick up on is Unit Testing. Mostly, it’s the pain of writing tests for each thing I can imagine goes wrong. Partly it’s an imaginary horror: I think about…

Machine Learning – Coarse to Fine

Because a friend of mine posted it on Facebook, I ended up watching this video, How Artificial Intelligence Learns From Biological Intelligence (by Evan Ehrenberg) that discusses some introductory machine learning topics. Along the way, the narrator mentioned that children…

Student-Derived Metrics

I’m still reading the Standards for Our Schools book. I don’t have a rigorous background in literature about learning and education, but what I see so far indicates that incorporating standards into education is analogous to incorporating evidence into your…

eXtreme Education

I feel like I’m slowly converging on some good ideas that have been floating around long before I noticed them. Again, in the book I’ve been reading, Standards for Our Schools, I came across some good material. The authors were…

Cool stuff to look at

Steve Yegge gave a nice talk at OSCON, What would you do with your own Google?, compelling us all to focus on math, stats, machine learning, and the understanding the core fundamentals. We should be working to make the world…

How Compiler Construction Remains Relevant (part 3)

Previously, in part 2, I arrived at the conclusion that the compilers class should focus on the design patterns and software engineering involved in constructing a compiler. I believe that our students would benefit more if the compiler is treated…

How Compiler Construction Remains Relevant (part 2)

At the end of part 1, I said that we, as educators, should “consider requiring a software engineering class that gives students practice with larger code bases, before allowing enrollment in compilers.” I’d now like to rescind that suggest in…