EppsNet Archive: Computer Science

Teaching Computer Science: Tips and Tricks for the AP CS Principles Performance Tasks

Your most valuable resource for the performance tasks is the AP Computer Science Principles Exam page. Look for the section titled Sample Responses and Scoring Information. There’s a rubric for performance tasks, but they’re graded by humans so scoring is somewhat subjective. This page takes the guesswork out of it. You’ll find multiple student responses from previous exam administrations, including scoring guidelines and commentary. Some of the responses are excellent, some are bad, and the rest are somewhere in-between. But they all come with a detailed explanation for each row of the rubric as to why points were or were not awarded. Don’t submit your performance tasks without ensuring that they most closely resemble the high-scoring examples on this page.   Teachers are limited in the type of questions they can answer regarding your performance tasks. It has to be your own work. That being said, if you have a… Read more →

Teaching Computer Science: Inequality = Bad?

I’m volunteering a couple mornings a week in a high school computer science class . . . “Why don’t schools and classes have sponsors?” I ask one of the teachers. “When my kid was in school, they were always complaining about not having enough money. So why couldn’t you, for example, come in and say, ‘Hey kids, before you come to 1st period, make sure you have a good breakfast at McDonald’s. I’m lovin’ it!’? “And McDonald’s pays you 100 grand or whatever to say that.” “My concern,” he says, “is that would lead to more inequality in education.” I’m not sure he really thought that through. It seems more like a mechanical response to an abstract notion, i.e., “Inequality is bad.” As a parent, I always supported inequality in education. I wanted my kid to get the best possible education, better than most other kids. As a classroom volunteer,… Read more →

Teaching Computer Science: You Just Got to Really Want To

I’m volunteering a couple mornings a week in a high school computer science class . . . “Does anyone recognize this gentleman?” No one does. “Any pianists in the class?” About 5 kids raise their hands. “Do you ever go to YouTube and watch videos of pieces that you’re trying to learn?” Yes, they do. “Ok, this is Vladimir Horowitz.” Last time around, no one was able to identify Martha Graham. “I always know the name after you say it though,” one girl says. “Well, there’s more to life than technology, kids. There’s music, art, dance, literature . . . all these things help blow the dust off our ordinary existence. “I’ll get back to Horowitz in a minute. Last time I was here, I heard a conversation about how hard is it to go to college as a CS major. “I have some good news and bad news. I’ll… Read more →

Teaching Computer Science: Say Your Ideas Out Loud

[I learned about Scary Ideas from Jim and Michele McCarthy — PE] I’m volunteering a couple mornings a week in a high school computer science class . . . “The main thing I wanted to tell you is that you’ve got to say your ideas out loud . . . “A scary idea is not an idea that’s going to scare people when they hear it, it’s an idea that you don’t want to say because you’re afraid of how people will react to it. Maybe they’ll think you’re crazy. “Here’s a couple examples of scary ideas. “You recognize the speaker in this video?” Everyone does. “Ok, let’s see what he has to say.” I believe that this nation should commit itself to achieving the goal, before this decade is out, of landing a man on the moon and returning him safely to the earth. “Keep in mind that he’s… Read more →

Teaching Computer Science: All Are Welcome

I’m volunteering a couple mornings a week in a high school computer science class . . . “Computing,” I tell the class, “is like most professions in that some groups are under-represented and some groups are over-represented. You may have heard that the reason some groups are under-represented is because computing as a profession is more welcoming to some people than others. “I haven’t found that to be the case and I’ll tell you why. “My perspective on this is that if you walk through the workplace at a typical technology company, you won’t see people who look like me. I’m too old and I’ve been too old for quite a while now. At this point, I’m usually old enough to be the CEO’s father. “So to the extent that people want to work with other people who look like them and people who fit into the group, that doesn’t… Read more →

Teaching Computer Science: Don’t Worry About Spelling and Grammar?

The following is part of the Code.org online curriculum, asking students to write a brief reflection on starting a computer science class. That seems like an oddball thing to say in an educational context. “Let’s talk about the instructions here for a minute,” I said to the class. “One: it doesn’t make sense to me to compartmentalize education like this. Like spelling and grammar are only important in an English class and this is not an English class so don’t worry about it. “We’ll be taking a holistic view of education here. I hope you’ll learn some things about computer science but I hope you’ll learn some other things as well. “On a practical note, you may find yourself competing for a job someday, and if it’s a good job, there are likely to be a lot of applicants. “No one wants to read a large number of resumes, so… Read more →

Teaching Computer Science: Why Was I Not Consulted?

I’m volunteering in a high school computer science class a couple mornings a week . . . If you’re going to work with computers, you need to be able to move around between different number systems, most commonly base 10, base 2 and base 16. As a warm-up, I asked students how many ways they could represent the quantity 7. Answers included the word “seven,” roman numerals, seven dots, a septagon, a Chinese symbol, and so on. “Quantities exist naturally,” I said, “but number systems are man-made. They’re just a set of symbols along with an agreement about how to order them. Why do we use the number system that we do? Who decided that?” Because I phrased it in a provocative way, some students realized that they hadn’t been consulted. “Yeah, no one asked me,” one student said. “Raise your hand in math class,” I suggested, “and ask ‘Why… Read more →

Teaching Computer Science: Next Year’s Teacher

I’m volunteering a couple mornings a week in an AP Computer Science Principles class for the upcoming school year . . . Schools are adding more CS classes and, almost without exception, retraining in-service teachers to teach them, rather than hiring people with knowledge and experience in the field. I met with the teacher today to do some upfront planning. At one point, he was calculating how many printouts we’d need for 6 groups of 4 students each . . . “Let’s see,” he said, “6 times 4 is 20 . . .” If you think that’s funny, guess what class he normally teaches: accounting. “Are you going to write that?” someone asks me. “Does he know you have a website?” “I don’t know what he knows or doesn’t know. Except he doesn’t know what 6 times 4 is.” Read more →

How to Not Get a Job Teaching Computer Science

She was a software engineer interviewing for a job teaching high school computer science. One of the interviewers read a question: XYZ School District is committed to effective learning for all students. Key in this work is improving the success of historically underrepresented, low-income and/or students of color. What are your experiences implementing instructional strategies shown to be most effective in increasing the success of these populations? She knew what the “right” answer looked like but after a momentary hesitation decided to answer honestly. “I think it’s probably counterproductive to single out groups of students as needing special handling to be up to the standards of the other students.” “We’re not saying that they’re not up to the standards of the other students,” the interviewer said. “Okay, let me say it another way. We have four labels available: ‘historically underrepresented,’ ‘low-income,’ ‘students of color’ and ‘none of the above.’ “From… Read more →

11,000 New Computer Science Teachers Considered Harmful?

Here’s the start of an email I got from Code.org: We’re kicking off our summer workshops to prepare 11,000 new CS teachers. Last month we welcomed over 600 teachers, facilitators, and Regional Partners to Atlanta, GA for our largest TeacherCon ever. On top of TeacherCon, we also have 350 K-5 workshops and 167 workshops for middle and high school teachers planned this summer, where we expect an additional 10,000 teachers who plan to begin teaching computer science for the first time this fall! This is heralded with an exclamation point, like it’s exciting news, but as a computer science person, I can’t get excited about it. Why do we want kids to be taught computer science by 11,000 teachers who know little or nothing about computer science? How can someone teach something that they themselves don’t do? See if you can get excited about any of the following possibilities: 11,000… Read more →

Competitive Programming: POJ 1654 – Area

Description Consider an infinite full binary search tree (see the figure below), the numbers in the nodes are 1, 2, 3, …. In a subtree whose root node is X, we can get the minimum number in this subtree by repeating going down the left node until the last level, and we can also find the maximum number by going down the right node. Now you are given some queries as “What are the minimum and maximum numbers in the subtree whose root node is X?” Please try to find answers for the queries. Input In the input, the first line contains an integer N, which represents the number of queries. In the next N lines, each contains a number representing a subtree with root number X (1 Read more →

Women in STEM: It’s Ambiguous but You’re Still Wrong

The Dartmouth student newspaper reports on a study finding that gender affects an individual’s perception of women’s anxiety in STEM disciplines. Men are more likely than women to attribute this anxiety and self-doubt to internal factors, while women usually attribute such emotions to external factors. Participants in the study read one story, among a selection, about an undergraduate woman taking a STEM class. In the stories, based on the experiences of actual undergraduate women in STEM, the female main character expressed having anxiety or self-doubt. It was ambiguous whether the instructor in the stories harbored any biases against women. According to research team leader Mary Flanagan, “Women identify the problem as something that is familiar and men identify the problem as something that is a particular student’s problem. Men are not seeing the systemic biases as much as the women are. That is something that we need to address in deeper… Read more →

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 →

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: Lesson Planning

It’s exhausting work . . . Read more →

Next Page »