EppsNet Archive: Teaching

Teaching Computer Science: How to Get Top-Notch Teachers in the Classroom

 

I read something every day where educators and/or elected officials are talking about the importance for our kids, our country, our future, etc., of teaching computer science, the sticking point being an extreme shortage of qualified teachers. A person entering the workforce with a computer science degree is unlikely to go into teaching because of the opportunity cost: they can earn a lot more money as a software engineer. The likelihood of getting a mid-career tech industry professional to switch into teaching is even lower. Teacher salaries are based in large part on years of service. A mid-career person switching into teaching is not going to get a mid-career teacher’s salary, they are going to get a first-year teacher’s salary. So here’s the idea: Give CS professionals the opportunity to apply their years in industry to years of service as a teacher. It’s still a pay cut going from software… Read more →

Teaching Computer Science: The Phones Aren’t Helping You

 

I’m volunteering a couple mornings a week at a local high school, helping out with computer science classes. The way the classes are taught, via an online curriculum, provides a great temptation to kids to get off-task, which they do, usually by entertaining themselves with their phones. They get off-task in other ways too — web surfing, doing homework for other classes — but the main distractor is the phones . . .   “As I mentioned before, I worked with another CS class a couple years ago. No phones allowed in the classroom. “I remember one day the assistant principal was in class observing . . . a student had a phone out, looking at it . . . he was holding it under the table so no one could see it, but this guy, the assistant principal, he did see it. “Oh man, did he hit the roof!… Read more →

Teaching Computer Science: When You Need Help, Ask For Help

 

I’m volunteering a couple mornings a week at a local high school, helping out with computer science classes. It’s a mixed class . . . most of the students are taking AP Computer Science Principles, and about 10 kids just recently started a second-semester Visual Basic class. The VB kids were pretty inquisitive at first but started to get discouraged . . . in my opinion because of the way the material is presented to them via an online curriculum. The current approach to teaching computer science in American schools, because of the shortage of (I almost said “lack of”) qualified teachers is to use packaged courses delivered to students online. My observation is students assume that because they’ve been put in front of a computer full of lessons, they’re expected to be able to read and understand the material and complete the assignments on their own with no help.… Read more →

Teaching Computer Science: Asking for Help

 

I’m volunteering a couple mornings a week at a local high school, helping out with computer science classes. This morning, in AP Computer Science Principles, the teacher went through an explanation of the hexadecimal number system, then gave an in-class assignment for students to convert their cell phone number to hexadecimal. Not in two parts, 3 digits and 4 digits, but as a 7-digit number. It seemed pretty obvious from the interaction and the body language and the looks on their faces that a lot of students didn’t get it, but in a class of 25 students, only one student asked for help. Until the teacher finished with that student and asked “Does anyone else need help?” and eight more students immediately raised their hand. I asked the teacher, “Can I address the class for a minute?”   “First off, doing a 7-digit hex conversion is not easy. I know… Read more →

Teaching Computer Science: It’s Not Easy to Teach a Subject in Which You Have No Training

 

A recent issue of Science has an article on the pipeline for computer science teachers . . . The first sentence says, “It’s not easy to teach a subject in which you have no training.” That could be the whole article, really. That’s about all you need to know about the current state of computer science instruction: It’s not easy to teach a subject in which you have no training. Cameron Wilson, chief operating officer and president of the Code.org Advocacy Coalition, is quoted as saying, “It’s really hard to convince a computer science professional to give up a job that pays up to three times more to pursue teaching. And I don’t think we should.” Wilson’s opinion that computer science classes should not be taught by someone who actually knows something about computer science is probably influenced by the fact that Code.org is one of the leading providers of… Read more →

Vignette

 

Sara, 48, suffers from breast cancer, diagnosed three times in five years. She has to stop teaching at school but engages actively in volunteer work. Her environment praises her for her courage. She helps other cancer patients in a respectful way to deal with their illness. This for her is also very rewarding. Still, from time to time, mostly when Sara does not expect it, an ocean of tears comes up . . . 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 →

At some point, even if you don’t need the money, you have to teach what you were taught. — Ken Kesey

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 →

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: Ask More Questions

 

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,… 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: Incentives (or Lack Thereof)

 

According to this article on TechCrunch, “Every California high school must establish computer science courses as part of its core curriculum.” From the same article: “Most California teachers have little or no training to teach computer science.” Do you see the problem there? I’ve been a programmer for many years . . . I’d be glad to teach computer science to students, teachers or anyone who wants to learn it if there were even a modest incentive to do so. Which there isn’t. One way to measure how much people want something is how much they’re willing to pay for it. There’s no shortage of people talking about teaching programming and computer science, which is free (the talking, that is), but without the incentives ($$$) very little is going to actually happen. 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: Today Was Not the Best Day to Say What You Just Said

 

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

« Previous PageNext Page »