EppsNet Archive: Programming

What Does a Programmer Do?

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. 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… Read more →

I’m a Winner!

I’ve been doing the daily challenges at CodeFights for quite a while and yesterday’s challenge is the first time I got first place! (CodeFights ranks solutions by fewest number of characters, with solution time as the tiebreaker.) Read more →

AP Computer Science Revisited

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. 🙂 Read more →

Learn to Code

I’m a programmer . . . Job searches for me go like this: I’m old, I have to compete with people half my age, but I’ve worked in Orange County since forever so I know some people, and I can write good code in interviews, which the majority of programmers who show up for interviews can’t. I was out of work on January 5. It’s now January 24. I have three job offers and picked the one I like best. Moral of the story: Learn to code, kids . . . Thus spoke The Programmer. Read more →

See You in Hell

[See You in Hell is a feature by our guest blogger, Satan — PE] Along with pleas for money, almost 100 percent of the cardboard signs I see being held by people on freeway off-ramps and the like include the phrase “God Bless You.” There seems to be a correlation between belief in God and begging for money on off-ramps. Notice that you never see Satanists begging for money. Why don’t they pray for the money? Maybe they did pray and God told them to make a cardboard sign? I tell my acolytes if they need money, learn to code. See you in Hell . . . Read more →

Programmer or Parolee?

Our office building is next door to a probation field office . . . I have a game I play in the parking lot each morning: Programmer or Parolee. I spot someone, guess if he’s here for a programming challenge or a meeting with his parole officer, then wait to see if he shows up in our office. If a methed-out skinhead comes in for a programming challenge, I lose today’s game. Read more →

Teaching Prisoners to Code: What Could Go Wrong?

What could go wrong here? Criminal minds + coding skills = ??? One of my favorite Mr. Boffo cartoons shows a gang of robbers in a bank in the Old West . . . one of the robbers says to another, “Someday this will all be done by computer.” What an inspiring program to solve a big and growing U.S. problem. Posted by Code.org on Sunday, February 21, 2016 Read more →

The Ceiling Seems Very Low

I don’t know if this is good news or bad news. It would help to know what “trains” means but I read the article and it doesn’t say. Reporters need to be more inquisitive. Can someone with no knowledge of computer science or programming be “trained” to teach computer science or programming? What would that entail? How long would it take? Can someone who’s never played an instrument or listened to a piece of music be “trained” to teach a music class? Can someone who’s never picked up a drawing pencil or visited a museum be “trained” to teach an art class? Can someone who doesn’t speak Spanish be “trained” to teach a Spanish class? The ceiling on any of these approaches seems very low compared to hiring actual programmers, musicians, artists and Spanish speakers . . . Thus spoke The Programmer. Read more →

Hey Guys, I Wrote a Book!

It’s called Thus Spoke the Programmer: A Fictional Memoir. (Don’t be put off by the title if you’re not a programmer. It’s guaranteed to delight both technical and non-technical readers alike. 🙂 ) If you’re interested in having a look at it, you have a couple of options: Leanpub, a PWYW (pay what you want) platform, which means if you want to read the book for free, you can download it and read it for free. Amazon, available in paperback or Kindle format (not free). Read more →

Teaching Computer Science: The Last Day

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… Read more →

Teaching Computer Science: Extra Credit

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.” Read more →

Teaching Computer Science: Combating Procrastination

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: 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. 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… Read more →

Teaching Computer Science: Pro Tips for Finishing a Project

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. 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. 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. This is what your program needs to do: [Feature list goes here]. 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. Repeat Step 5 until done. Read more →

Teaching Computer Science: Lessons Learned

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. Read more →

Teaching Computer Science: Collected Thoughts

If you recognize the person on this next slide, please raise your hand. Don’t yell out the name, just raise your hand. 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 . . . 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.… Read more →

60 Million Students

#HourOfCode had an incredible first year. Thank you to all who helped propel this movement. http://t.co/bHAAWMYJiG. pic.twitter.com/IS1nU89XRe — Code.org (@codeorg) December 29, 2014 Read more →

Teaching Computer Science: Exam Tips from the Pros

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… Read more →

Teaching Computer Science: Diversity Takes a Hit

They told us during teacher training in the summer not to scare off the students. But programming is difficult. There’s a lot of complexity and detail to master. The first couple of programming classes I took, we started off with around 50 people on the first day, and had around 12 left for the final exam. Entry-level programming classes have very high dropout rates. One of our students dropped the class this week, a girl. So much for promoting diversity in computer science . . . Read more →

Teaching Computer Science: Applause

We did an interactive exercise to write a simple program that prints numbers and the squares of the numbers — a for loop, basically. We went around the room with each student providing one element of the loop and me writing them on the whiteboard: for, open paren, int, i, equals, 1, semicolon, etc. I thought it went very well. The timing was good and it was obvious that most of the class understood what was going on. When we got to a girl who’s usually ahead of everyone and knows all the answers, what we needed from her was “curly bracket” but what she actually said was “semicolon” and there was a collective groan from the rest of the class. When the last student said “close curly bracket,” there was spontaneous applause, immediately, before I even wrote it on the board. It wasn’t like a concert at the high… Read more →

« Previous PageNext Page »