At OSCON today, I went to a talk called “Why Know Algorithms” by Andrew Aksynoff. I was pleasantly surprised to see that the speaker was the author of Sphinx, a powerful full text indexing engine that I’m considering adopting for a project.

However, halfway through I was shocked, especially in light of all the problems with sexual harassment and sexist attitudes at conferences that have been brought to the fore lately, to see the example that Andrew used: Selecting women from a database, ranked by “hotness.”

Here’s the table layout he used (and I apologize for the blurriness):

CREATE TABLE usertest (
    id INTEGER PRIMARY KEY NULL,
    sex ENUM ('m','f'),
    age INTEGER NOT NULL,
    hotness INTEGER NOT NULL,
    name VARCHAR(255) NOT NULL,
    INDEX(sex,age,hotness)
)

His sample code revolved around ways to optimize this query:

SELECT *
FROM usertest
WHERE age >= 18 and age <= 25

The latter half of the talk discussed various ways of creating indexes to efficiently provide answers to that query, and which queries would run best with different indexes, in case you want to order by age instead of hotness, for example.

I was angry about two things. I’m specifically not going to address the crass sexism here. I know plenty of others can (and will) address it better than I can.

I was more upset about the effects of the sexism in the classroom. When I’m here at OSCON, I’m both teacher and student. When I’m a student at a session, I want to pay attention to the content, not wonder how the women in the audience feel about the instructor’s attitudes towards them. Are they offended, but afraid to leave? I saw no women leave, although plenty of men did.

Andrew clearly knew his material, and he explained it well. Strictly from a teaching perspective, Andrew’s problem was that the examples overshadowed the lessons to be taught. It’s the same frustration I had with Steven Feuerstein’s book from O’Reilly on Oracle 8 where his examples included a table of war criminals including Henry Kissinger.

When you’re teaching a class, don’t include anything that detracts from the message you’re trying to teach. A LOLcat slide is fine but include too many and that’s what people will remember rather than what you’re trying to teach. It should go without saying that examples that make the audience uncomfortable will also ruin your class.

Note: I will delete any comments that include personal attacks on anyone.