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…

eXtreme Education: Cognitive programming

eXtreme Education: Cognitive programming

I read a few articles that I’d like to pull together and place under the growing umbrella of what might probably become my personal teaching philosophy. First, when you look at eXtreme Programming, it consists of a collection of reinforcing…

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…

Redesigning a CS Curriculum

A number of my posts over the last couple of weeks have concerned education and curriculum. I met with a couple of the educators here at UCI, to go over these points. I’d like to record these thoughts before they…

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…

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…