EppsNet Archive: High School

What Does a Programmer Do?

8 Oct 2017 /

I was asked to give a talk last week to a high school computer science class on “What Does a Programmer Do?” (I’m indebted to Jim McCarthy for the “lords and ladies of logic” section.)

 

Programming is problem solving.

Programmer

At the highest level, the problem that programmers solve is that people want to be able to do things with computers that they can’t do. And by computers, I don’t mean just the kind of computers you have on the desks here, I mean phones, watches, cars . . . more and more different kinds of devices are running software.

So one good thing about being a programmer is that pretty much every field of endeavor now uses software and data.

You can work at a tech company like Microsoft or Google or Twitter or Facebook, but you can also work in healthcare, finance, education, sports . . . you can work on cancer research, you can write video games . . . everybody uses software and everybody hires programmers.

Programming is a good job if you want to be learning new things all the time, if you don’t want to do the same things over and over.

The dark side of this is that it can be daunting trying to keep up with the pace of technological change. It can be overwhelming.

I was asked once in an interview, “What’s the coolest thing you’ve learned in the last week?” If you haven’t learned anything in the last week, it’s hard to answer that question, let alone if you haven’t learned anything in a month or a year. It’s easy to let your career slip away from you.

Programming has been a good job for me because I’ve been able to make a living doing things I like and things that I’m good at. I’ve always liked solving problems and building things.

To me that’s a good job: you do things you like and things that you’re good at. I don’t think most people can say that. Most people seem to be like “I hate Mondays,” “Thank god it’s Friday,” “Thank god it’s Thursday because it’s almost Friday.” If you spend a lot of time doing things you don’t like and you’re not good at, that’s a bad job.

As a programmer, you’re given problems to solve and a set of tools with which to solve them. You need to be able to figure out “what do i need to do, what do I need to learn, to be able to solve these problems with these tools?”

Self-reliance is good. Persistence is good. Floundering is bad. Know when to ask for help.

Asking for help is a no-lose strategy. Worst case, you ask for help and someone can’t help you or won’t help you, but you’re not any worse off than you were in the first place.

The demand for programmers exceeds the supply and it doesn’t look like that’s going to change anytime soon.

Nearly 30 percent of Americans ages 18 to 24 cannot locate the Pacific Ocean on a map, and 25 percent of Americans think the sun goes around the earth. Those people are not going to be programmers.

In a time of ubiquitous software and intellectual lethargy, programmers are like the priests in the Middle Ages. We are the lords and ladies of logic. We’re in charge of rationality for our era. We’re bringing common sense and sound judgment and aggregated wisdom and glory to everyone.

That’s our job.


Making it Through High School Alive

10 Sep 2017 /

Baltimore schools spend a staggering $16,000 per student – the fourth-highest rate in the nation – and still an investigation by Fox45’s Project Baltimore revealed that at six city schools, not one student scored proficient on the statewide tests for English and math.

At West Baltimore’s Frederick Douglass High, one of five high schools and one middle school where not one student scored a four or a five on the state test, only one out of 185 students who took the test last year scored a three, while 165 students scored a one, the lowest possible score.

Frederick Douglass

The schools are:

  • Booker T. Washington Middle School
  • Frederick Douglass High School
  • Achievement Academy at Harbor City
  • New Era Academy
  • Excel Academy at Francis M. Wood High
  • New Hope Academy

It looks like if you live in Baltimore, you want to avoid sending your child to a school whose name includes the word “Academy” or the name of an eminent black American.

The mother of one Frederick Douglass student is quoted as saying, “That’s absurd to me. That’s your teacher’s report card, ultimately.”

In Irvine, CA, where I live, the school district spent $9,488 per student last year, so I think it’s fair to say that Baltimore parents are not getting good value for their education dollar, but I also think that Irvine parents would be much more likely to say that sub-par educational performance indicates a problem in the home rather than with the teachers.

Accentuating the positive: At Excel Academy, 300 seniors started the school year, 104 graduated and 5 were shot to death. In some towns, just making it through high school alive is an accomplishment.


AP Computer Science Revisited

6 Feb 2017 /

I got a LinkedIn invitation today from a student I taught in an AP Computer Science class a couple of years ago.

She’s now a computer science major at UCSB. Several of the kids from that class are now in college as computer science majors. Some of them would have been computer science majors anyway, without the class — they came in already having programming interest and experience — but this young lady was not in that group.

She was quiet in class but when I worked with her one on one, she asked a lot of questions. She asked them quietly but she asked. And when I told her to do something a certain way she always asked why.

She only has four connections at this time so I appreciate her thinking of me. 🙂

LinkedIn


Harper Lee, 1926-2016

25 Feb 2016 /

28 Sep 2008

To Kill a Mockingbird

I took my son to the bookstore to buy To Kill a Mockingbird for his English class. They had two paperback editions available — one with a fancy binding for $15.95 and another one for three dollars less.

I pulled the cheaper one off the shelf and my son asked, “Why are we getting that one?”

I said, “Because it’s three dollars less for the same book.”

“I like the other cover better,” he said.

“Gimme three dollars.”

 

23 Oct 2008

FATHER: Would you take out the trash please?

SON: Are you KIDDING?! I’m doing homework! I’ll take out the trash if you read To Kill a Mockingbird and tell me what each chapter is about.

FATHER: I’ve read To Kill a Mockingbird. You want to know what it’s about? ‘Racism is Bad.’ Now take out the garbage.

 

RIP Harper Lee


Huckleberry Finn Banned Again

21 Dec 2015 /
Huck and Jim on the raft

A Pennsylvania high school has removed Mark Twain’s Adventures of Huckleberry Finn from its 11th-grade curriculum after complaints from students who said they were made “uncomfortable” by the novel.

The school’s principal defended the decision to remove the book from the curriculum. “I do not believe that we’re censoring,” he said. “I really do believe that this is an opportunity for the school to step forward and listen to the students.”

He went on to add, “War is peace, freedom is slavery, ignorance is strength.” Because if suppression of material you deem objectionable is not censoring, what is?

As Kurt Vonnegut used to say, “Have somebody read the First Amendment to the United States Constitution out loud to you, you God damned fool!”


Teaching Computer Science: The Last Day

13 Jun 2015 /
Space Invaders

On the last day of class, I gave students the code for a partially working Space Invaders game, along with instructions for adding collision detection and completing the implementation. The instructions didn’t leave too much to the imagination because I wanted to give everyone a chance to finish out the year on a successful note. I estimated it to be about a 30-minute activity. It didn’t occur to me that that students would do anything but finish the program and spend whatever time was left over blasting aliens.

What they actually did was, they finished the program, tweaked the firing interval so they could shoot faster, changed the speed of the sprites, added more aliens, changed the program to shoot two bullets at a time instead of one, changed the program to shoot five bullets at a time, enabled the aliens to drop bombs, had the game recognize that when the alien count gets to zero, it should stop and write You Won or Game Over, switched the image files to cooler looking spaceships and missiles . . . one student changed the alien image to a picture of my dog (available from a previous assignment), pugs from outer space.

So when I say that we couldn’t have had a better group of students, that’s the kind of thing I’m talking about. They exceeded expectations on all metrics. I wish I could have thanked each of them individually for their unique contributions to the class.

Programming is what I do, it’s been a big part of my life for a long time. I’m glad to have had the opportunity to share it and I’m sad that it’s ending . . .


Teaching Computer Science: Ask More Questions

20 Apr 2015 /
Primary School in "open air"...

English: Primary School in “open air”, in Bucharest, around 1842. Wood engraving, 11x22cm

You need to ask more questions. I think there’s a general fear about asking questions. There’s a risk of looking foolish in front of the whole group when it turns out that everyone else already knows the answer.

It’s actually very unusual for someone to ask a question to which everyone else knows the answer. If you find it happens to you a lot, you probably want to get that checked out, but normally it’s very unusual.

Another scenario: Somebody, maybe a teacher, says something and you think “That doesn’t make sense. I wonder if it makes sense to everyone else. Rather than risk looking foolish in front of the whole group, I’ll wait and see if someone else asks a question.”

So you wait for someone to ask a question and no one asks a question. Why? Because they’re all waiting for someone to ask a question.

Many people, including teachers, are not good at organizing their thoughts and articulating them with precision and that’s why you can’t understand what they’re saying. Don’t assume that it’s a problem with you. You need to move people to a position of clarity by asking questions.

Also, people love the person who’s willing to ask questions because it relieves them of the need to ask questions.

Education, like everything else, you get out of it what you put into it. Don’t sit in a class with unanswered questions in your head and let everything wash over you like a tidal wave.

My own kid, even in a good school district, I don’t feel like he got a good education because of good teachers, I feel like he got a good education in spite of bad teachers. He got a good education because he put a lot into it and he got a lot out of it. And his classmates who got a good education did so because they put a lot into it and they got a lot out of it.

All of which is a long way of saying “ask more questions.”

Any questions?


Teaching Computer Science: Extra Credit

15 Apr 2015 /

I wish I got a dollar for every time a student asks, “Can I get extra credit for [insert action for which it makes no sense to give extra credit]?”

Today in class we did a difficult programming exercise. It wasn’t graded but I asked everyone to turn it in so I could evaluate the difficulty of the assignment.

“Can we get extra credit for turning it in?” a student asked me.

“How does it make sense to give extra credit for turning it in? Everyone is turning it in.”

“It raises everyone’s grades,” he said. “Like a rising tide lifts all boats.”


Teaching Computer Science: Combating Procrastination

6 Apr 2015 /

Students had a project due last week and I got a lot of messages and emails asking for help. Of course, when we handed out the assignment two months ago, we advised students not to wait till the last minute to work on it. Teachers and parents saying “Don’t wait till the last minute” is just an understood part of the process. It’s something that gets said but it’s background noise.

A couple of alternatives occur to me:

  1. Reverse psychology. Say “My advice is to start as late as possible. Try to do two months of work in the last week, or better yet, the last night.” This seems too easy to see through and therefore unlikely to work.
  2. Hand out the 20-page spec and tell the students that it’s due tomorrow. WHAT!? YOU CANNOT BE SERIOUS! NOBODY COULD DO THIS IN ONE DAY! “You’re right. It’s actually due in two months. But now that we’ve agreed that it can’t be done in one day, I don’t want to see anyone working on it at the last minute.”

Teaching Computer Science: The Last Minute

1 Apr 2015 /

“Reminder that your projects are due tomorrow so don’t wait till the last minute. Oh wait, this is the last minute.”

Deadlines can be fun when they apply to other people . . .


Teaching Computer Science: Pro Tips for Finishing a Project

5 Mar 2015 /

Woman teaching geometry, from Euclid's Elements.

  1. For many (most?) students doing an object-oriented development project for the first time, this assignment is too difficult to do without a lot of guidance. Therefore: ask for help early and often.
  2. If you wait till the night before a checkpoint, you won’t have enough time to finish and we won’t have enough time to help you effectively. Therefore: ask for help early and often.
  3. I’m seeing students struggling to write code that we’ve already given you. That’s not a good use of your time. Know what we’ve given you and use it.
  4. This is what your program needs to do: [Feature list goes here].
  5. Pick a feature and try to implement it (or part of it). If you can’t do it, come to class tomorrow and ask a question.
  6. Repeat Step 5 until done.

Teaching Computer Science: Ski Week

3 Mar 2015 /

Skier

Corona del Mar High School doesn’t just take Presidents Day off . . . they take the whole week off and call it Ski Week.

It’s a total non sequitur in terms of paying tribute to our nation’s greatest leaders. George Washington didn’t ski. Abraham Lincoln didn’t ski.

“How do you know Abraham Lincoln didn’t ski?” a student asks.

“He was too busy writing the Gettysburg Address.”

“He wrote that in 20 minutes.”

“There was the whole Civil War thing going on. He didn’t have time for ski trips with his buddies.”

It’s hard to think of a notable historical figure who also a skier. If you want to accomplish great deeds, you have to give things up. You can’t get bogged down in nonsense.


No Class Today

2 Mar 2015 /

http://ktla.com/2015/03/02/teacher-reportedly-found-hanging-in-classroom-at-high-school-in-placentia/

— via KTLA


Teaching Computer Science: Lessons Learned

1 Mar 2015 /

We did a programming lab in class . . . before we started, I mentioned several times that Java code that would be useful for the lab was posted on the class website.

So it surprised me that several groups got stuck during the lab when they got to the part where the sample code would have been useful because they didn’t go to the website and download the sample code.

Going forward, I will preface important announcements by saying “I cannot emphasize this strongly enough . . .” while pounding my fist on a solid object.


See You in Hell

31 Jan 2015 /
Satan

Satan

[See You in Hell is a feature by our guest blogger, Satan — PE]

Greetings from the underworld!

I just read about a father and son teaming up to punch out the son’s high school basketball coach because the teen wasn’t getting enough playing time.

Basketball duo

What a heartwarming story! A lot of young black men don’t have a male role model in their lives.

See you in Hell . . .


Teaching Computer Science: Today Was Not the Best Day to Say What You Just Said

14 Jan 2015 /

Class website

I asked the class to pass in today’s homework and a student said, “I couldn’t figure out what homework was due today.”

I wasn’t feeling at my best to begin with. I was tired because I was up late making sure the class website was updated with all relevant materials, homework assignments were listed at the top of the page under the Homework header with due dates listed in bold font next to each assignment so that there’s no way anyone looking at the website, assuming they’re old enough to read, could fail to understand what is the homework and when is it due.

So when that kid said that he couldn’t figure out what the homework was, I felt the futility of life grabbing me by the throat and I was mad . . .


Teaching Computer Science: Collected Thoughts

10 Jan 2015 /

If you recognize the person on this next slide, please raise your hand. Don’t yell out the name, just raise your hand.

Derek Jeter

About two-thirds of you recognize Derek Jeter. I thought everyone would recognize him, but still a clear majority.

I’m not a Yankees fan or a Derek Jeter fan particularly but the Captain and I are on the same page on this topic. I have to admit I was pretty competitive as a student. I didn’t want anyone to do better than me and I especially didn’t want anyone to do better than me because they worked harder than me.

This Jeter quote reminded me of a quote from another notable sports figure . . .

Bob Knight

This is Bob Knight, college basketball coach, most notably at the University of Indiana. He won 902 games, three NCAA championships, and he coached the 1984 Olympic basketball team to a gold medal.

Notice that he says “everyone” and “no one.” He doesn’t say some people don’t want to come to practice. There’s a universal aspiration to accomplish great results without a corresponding level of effort. I recognize that in myself, definitely. As far as I can tell, this approach rarely if ever works, even for people we think of as prodigies.

Mozart used to say that anyone who thought composing music came easily to him was very much mistaken. While all the other kids were playing kickball, Mozart was in the house practicing his music lessons. In case you’re thinking that kickball wasn’t even a game at that time, you may be right. The point is that if there was kickball, Mozart wouldn’t have been playing it because he was practicing his music lessons.

One more on this topic . . .

Michelangelo's David

This is a quote from Michelangelo. Nothing great seems to happen without a lot of practice.

Once again, please raise your hand if you recognize the person on this next slide.

Anton Chekhov

He looks Russian.

Yes, he is Russian.

Dostoevsky? Tolstoy? Mendeleev? Pushkin? Boris Pasternak?

No . . . he’s known as an author of plays and short stories.

[A student sitting next to a smart but quiet young man from Russia points to the Russian boy and says, “He knows.”]

Who is it? Chekhov.

Right . . . this is Anton Chekhov. He wasn’t a programmer but his advice is relevant to many different endeavors.

Don’t overcomplicate things. A good heuristic – which is a fancy way of saying “rule of thumb” – is to do the simplest thing that could possibly work. Method A could work, Method B could work — which one should we try first? Try the simplest one first.

Note that the heuristic doesn’t say to do the simplest thing. If the simplest thing couldn’t possibly work, don’t do it. Do the simplest thing that might actually work.

One final slide. I don’t think anyone will know these people so I’m not asking for a show of hands.

2 days in a closet

I saw an article last week about a man and a woman who were “trapped” in a janitor’s closet at the Daytona State College Marine and Environmental Science Center for two days. They got themselves in the closet last Sunday and finally on Tuesday, the gentleman on the right got the idea to call 911. Why that idea took two days to incubate is unclear. Police showed up to let them out and found out the closet was not locked. They could have opened the door themselves.

Maybe the lock was meth’d up, like the woman. “Meth’d” up, get it?

Are they students at Daytona State College? The article doesn’t say. Do any of you have Daytona State College on your college wish list? If so, you may want to take it off. Or just keep it as a safety school in case Harvard and the Sorbonne don’t come through for you.

What can we learn from this story? I don’t want to say “don’t make assumptions” but don’t make unwarranted assumptions. Don’t make assumptions about things that you can easily verify. If you’re in a closet, don’t assume the door is locked. Try it and see. A lot of uncertainty can be dispelled by trying things out.

Assumptions can hurt you as a programmer. You might be stuck because you’re assuming some condition is true that isn’t true. Or you’re assuming that some condition can never be true when it really can be true. Don’t make unwarranted assumptions.

I couldn’t help noticing that a lot more people recognized Derek Jeter than recognized Anton Chekhov. If you want to achieve great renown, if you want to be part of the public consciousness, entertain people in a simple-minded way, like hitting a ball with a stick and running around in a park. People can be entertained by Derek Jeter without expending any effort.

Where Chekhov went wrong is that he failed to anticipate a world where nobody reads anymore. Furthermore, he believed that the role of an artist was to ask questions, not to answer them. His plays and stories don’t have a traditional structure where everything is tied up neatly at the end, so you not only have to put in the time to read them, you have to go into overtime to ponder the moral ambiguities. Who has time for that in their busy lives?


Teaching Computer Science: Those Who Don’t Like to Read

16 Dec 2014 /

Students with books

I recommended a couple of books that I’ve read recently and liked — Unbroken by Laura Hillenbrand and Thinking, Fast and Slow by Daniel Kahneman — to the class in case anyone was looking for a book to read over winter break or maybe as a holiday gift.

“What if you don’t like to read?” someone asked.

“Well, in that case you can spend your entire life inside your own head and never know or care what life looks like to other people.”

In hindsight, it occurred to me that I could have suggested audio books for people who don’t like to read, but . . . woulda coulda shoulda, you know what I’m saying?


Teaching Computer Science: No School Before Thanksgiving

26 Nov 2014 /

There was no school today because a lot of kids don’t like to show up the day before Thanksgiving, so the district decided not to have classes on the day before Thanksgiving. Once they get used to having Wednesday off, they won’t show up on Tuesday and we’ll have to give them Tuesday off. Then of course there’s no sense in having a one-day school week so we’ll give them the whole week off.

And since they’re already off on Veterans Day and the day after Halloween, let’s just give them the whole month of November off.

I’m concerned that American education is getting worse faster than we can lower our standards.


Teaching Computer Science: Exam Tips from the Pros

18 Nov 2014 /

When I cover something in a review session or study guide, it’s because I know it’s going to be on the test. There were questions during this morning’s test about the workings of several Java methods, all of which were covered in the review session and the study guide. I can’t answer questions like that during the test so if you have questions about review topics, ask them in advance of test day.

Some people seem to think that having an excuse for not knowing something is as good as actually knowing it. “But we hardly spent any time on Topic X in class.” “But we just learned Topic Y yesterday.”

Even if either one of those were true, what difference would it make? It’s on the study guide and it’s going to be on the test.

Given a choice between knowing something and having an excuse for not knowing it, always go with the first option: knowing it.


Next Page »