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
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…
The Modern Library
I’d like to say some things about what I think a sacred, but overlooked, and dwindling institution can do to revitalize itself in the day of the information superhighway. First, let’s get something straight. People have had the opportunity to…
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…
Homoiconic Dichotomy and Interactive Publications
Both Linguistics and Computer Science have some concern about the difference between form and meaning. This difference is usually introduced in a syntax vs semantics lecture. I would like to show that it actually occurs in a wide variety of…
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…