teaching machines

Secure Grading

Few of my students are nefarious. But sometimes they do evil by accident. For this reason, I never run their code using my regular account. You know, the one that has access to my gradebooks, coding projects, email, network shares, and personal music collection. However, testing under a separate grader account is annoying: I have […]

System.out and System.err on Android

Desktop Java programmers are used to using System.out and System.err to issue debugging print statements. As far as I can tell, System.out and System.err point to /dev/null on Android devices, so mobile app developers are advised to use android.util.Log instead. However, when Eclipse autogenerates code for things like exceptions and sysout and syserr, it assumes […]

The Programming Gene

My wife and I read to each other. We ran into this the other day in Daniel Defoe’s Robinson Crusoe: So I went to work, and here I must needs observe, that as reason is the substance and original of the mathematics, so by stating and squaring everything by reason, and by making the most […]

Sit Down and Code

At the 2012 Midwest Instruction and Computing Symposium, visualization researcher¬†Daniel Keefe¬†offered a keynote presentation on data-intensive visualization. His work involves the design of novel interfaces to navigate complex data sets. Visualization researchers always have the best demos. Mr. Keefe expressed his frustration with programmers: they hear the problem and then they sit down and write […]

Accessing the W Drive on Linux

The university kindly provides central storage to students, faculty, and staff. We can access this storage on Windows, Mac, Linux, and through a browser. On Linux, however, we end up running into some annoyances when we work with files on the W drive. (Our H drive is easy to access; it becomes our home directory, […]

Disabling Touch and Stylus Button on Wacom Tablet in Linux

I’ve got a Wacom Bamboo tablet that I use for drawing during recorded lectures. The stylus works great, but the tablet also responds to my fingers. Touch events were firing at all the wrong times, so I disabled them. The xsetwacom utility came to the rescue: When I plug the tablet in, each input mechanism […]

A C Interpreter

My programming languages class this semester will begin with a few lectures on shell scripting. As an exercise for myself, I thought I’d write a little C “interpreter” so that I can “directly” run my C source code. The first thing we’ll need is a C source file. Here’s one: Now, I need to indicate […]

Flipping my classroom with Ruby

I’m trying something funny in my mobile software development class. I scheduled it in the computer lab, not a lecture hall, and students are going to have to teach each other some things they prepared before we meet. Here’s what I’m telling them: You will do some preparation before each class, by watching a video […]