Archive for February, 2012
As the Running on Empty report says, most US states classify Computer Science as a “Business” (career and vocational) rather than a “Science” or “Math.” Barb saw a sad implication of that last Saturday, when she taught a teacher workshop.
She had several new teachers from one Atlanta-area county. They told her that they were Business teachers who now have to learn some CS. As a budget cutting move, the county has decided to reduce the number of non-core (by definition of the No Child Left Behind Act) teachers, and each high school gets exactly one Business teacher. One teacher for Accounting, Web Design, Typing, Office Applications, all other Business classes, AND Computer Science.
Bravo for those teachers who are seeking out professional development to learn CS! Teacher professional development is no longer a necessity in Georgia, so these teachers are doing it on their own. (In Georgia, teachers no longer need continuing education credits to maintain their certification — budgets are too tight, so that requirement has been dropped.) Despite the calls for more CS, CS is getting short shrift in this deal.
The argument below for more computing education is a bit different from the most common one. Yes, industry needs more computer scientists and engineers, so we need to draw more people into those fields. Starting in high school (and earlier) is important because students are getting turned off to computing careers as early as middle school (see Yardi & Bruckman, ICER 2007), so we need to give them a chance to see real computing earlier so that they can give it a fair consideration.
But this piece in Education Week (thanks to John Pane for pointing it out to me!) is also arguing that “all sectors” are “demanding more and more expertise in computing.” Even if you’re not going to become a professional software developer, your field is going to need you to know more about computing. We should do this in K-12, then. This is really an argument for computing for everyone. Yes!
“The demand by industry is far greater than supply. Its not just Google and Microsoft. Its all sectors: health care, transportation, manufacturing. Every sector is demanding more and more expertise in computing.” Private companies say they are developing programs to mentor students and sustain interest in computer science and engineering.
About 1200 of us will be gathering in Raleigh this week for the ACM SIGCSE 2012 Symposium, March 1-3. (All day SIGCSE Board meeting is Feb 29, so I leave Tuesday night.) Some of the highlights of this week’s conference include:
- The opening keynote on Thursday will be Fred Books (“Mythical Man Month” which I had to read for more than one class at U.Michigan) on “The teacher’s job is to design learning experiences, not primarily to impart information.”
- Jane Prey will accept the 2012 Lifetime Service award and will speak at the First Timer’s lunch on Wednesday.
- Friday’s keynote will come from the 2012 ACM SIGCSE Outstanding Contributions awardee, Hal Abelson (think about SICP, MIT Open Courseware, “Blown to Bits,” and App Inventor).
- UPE will present their annual award to Alan Kay at a noontime meeting on Friday. (I hope they booked a large enough room — this is going to be a popular meeting!)
- Saturday lunch will include a talk from Google’s “Big Picture” visualization group.
It’s going to be a fun week — I do hope you can join us!
SIGCSE 2012 continues our long tradition of bringing together colleagues from around the world to present papers, panels, posters, special sessions, and workshops, and to discuss computer science education in birds-of-a-feather sessions and informal settings. The SIGCSE Technical Symposium addresses problems common among educators working to develop, implement and/or evaluate computing programs, curricula, and courses. The symposium provides a forum for sharing new ideas for syllabi, laboratories, and other elements of teaching and pedagogy, at all levels of instruction.
Our three-sided conference theme, “Teaching, Learning, and Collaborating,” commemorates North Carolina’s renowned “Research Triangle” where SIGCSE 2012 will be held. Teaching, learning, and collaborating occur inside and outside of the classroom, among various combinations of students, academics, industry professionals, and others.
via SIGCSE 2012 – Home.
I really enjoyed this interview with my colleague, Nancy Nersessian. (Yes, she’s a Professor in the College of Computing.) It helped me understand better why her perspective is revolutionary, and why she’s been racking up awards for the importance of her work.
One of her arguments is that they way we think about the scientific method is wrong, that our “received” notion of the scientific method is not how scientists really work. Rather than test hypotheses, scientists do experiments to influence their models of how the world works. The hypotheses they test come out of those models, and a “failed” experiment doesn’t disprove the hypotheses as much as it feeds more information into developing a more correct model. That’s another reason why failed experiments are so important — they lead to better models.
Georgia Tech’s Nancy Nersessian talked about a project that’s been running at her university since 2001 to investigate how bioengineering scientists think and work, and how to pass their skills on to students. Nersessian said that there is a “received view” of the scientific method — you formulate a hypothesis and then test it to either validate or invalidate it — and then there is the way scientists actually go about their day-to-day work.
In the real world of scientific investigation, she said, scientists usually rely on a model-based process rather than a hypothesis-driven one. They formulate models based on what they know from previous research and then derive testable hypotheses from those models. Data from experiments don’t validate or invalidate hypotheses as much as they feed back into the models to generate better research questions.
Teaching is a great job. I particularly appreciate how teaching keeps me thinking and questioning, which is particularly important for an education researcher. I’m teaching two classes this semester. I’ve mentioned recently how my data structures class has me thinking about new kinds of practice activities.
I am also teaching a course on educational technology, where we’re reading How People Learn. Chapter 7 is a fascinating read with three detailed accounts of high-quality learning environments with expert teachers, one each in history, mathematics, and science. The chapter includes some strong claims about teaching:
The interplay between content knowledge and pedagogical content knowledge illustrated in this chapter contradicts a commonly held misconception about teaching–that effective teaching consists of a set of general teaching strategies that apply to all content areas. This notion is erroneous….These examples provide glimpses of outstanding teaching in the disci- pline of history. The examples do not come from “gifted teachers” who know how to teach anything: they demonstrate, instead, that expert teachers have a deep understanding of the structure and epistemologies of their disciplines, combined with knowledge of the kinds of teaching activities that will help students come to understand the discipline for themselves. As we previously noted, this point sharply contradicts one of the popular—and dangerous—myths about teaching: teaching is a generic skill and a good teacher can teach any subject.
We had a great discussion in class about this last night. HPL is claiming that an expert teacher has (1) discipline knowledge, (2) understanding about teaching and learning, (3) understanding of conceptual barriers that students face in the discipline, and (4) a set of effective strategies for addressing those conceptual barriers. (3) and (4) on that list is what we call pedagogical content knowledge, discipline-specific knowledge for how to teach that discipline. My students don’t argue that CS PCK (pedagogical content knowledge about teaching CS) doesn’t exist. They just argue that it’s not necessary to be “effective.”
It may be a “dangerous myth” but my students cling to it pretty stubbornly. ”If you know the content, and you know about how people learn, then you can teach that content. You may not be as good as a teacher with years of experience, but you’re good enough.” That’s almost an exact quote from one of the students in my class last night. I tried to argue that, not only is it better to have CS PCK, but we can also teach CS PCK, so that a first year teacher can be much more effective than a brand new teacher who doesn’t know anything about student problems or teaching strategies. They pushed back. ”How much more does PCK contribute to being a good teacher, beyond just knowledge of the discipline and knowledge of learning sciences?” Since I don’t know how to measure knowledge of CS well, nor how to measure CS PCK, I have two unknowns, so I can’t really answer the question.
One way of interpreting my students’ comments is sheer hubris. These are young, smart Georgia Tech undergrads (and a smattering of grad students). In their minds, they are intellectually invulnerable, able to tackle any academic challenge, and certainly better than any teacher from a school of education. Several of them mentioned Teach for America in their comments, an organization whose existence encourages them to think that teaching is not so hard. Maybe their comments also are the thoughts of expert learners — these students have had to teach themselves often, so they don’t see expert teaching as a necessity.
Another way of interpreting my students’ comments which is much more intellectually challenging is that the difference between an effective and expert teacher is hard to see. A recent NYTimes article speaks to the enormous value of expert teachers — over a student’s lifetime. Barbara has pointed out that, in her experience, the first year that a teacher teaches AP CS, none of his or her students will pass the AP CS (with a score of 3 or better). Even some veteran teachers have few test-passers, but all the teachers who get many test-passers are veterans with real teaching expertise. But how do you make those successes visible? As we’ve talked about here before: How do we measure good teaching?
As a teacher of education research, I wasn’t so successful yesterday. I failed at convincing my class (at least, a vocal group of students in my class) that there is some value in expert teaching, that it’s something to be developed and valued. What I worry is that these are not just the thoughts of a few undergraduates. How many more people think that it’s easy to learn to be a teacher? How many other adults, voting citizens, even members of school boards agree with my students — that expert teaching is not that much better than effective teaching, so hiring a bunch of young, smart kids to teach is good enough?
A rather provocative title from the Jezebel site leads to some interesting statistics. If you follow the link to the NYTimes site, you find that CS still has men paid 2% more than women. IT is the winner, where women make more than men. What I find it interesting that few women choose IT for a career, despite the obvious economic advantages: Lots of jobs, high-paying jobs, and jobs where women get paid better than men. That suggests that decision away from IT is not an economic one — there are other factors at play.
According to the Times’ Catherine Rampell, it looks like a woman’s choice of college major may determine her future income equality. Rampell analyzed information provided by salary data-collecting company PayScale and found that a surprising number of majors actually eliminate much of the discrepancy between male and female pay. Women who majored in Mechanical Engineering or Management Information Systems, for example, earn identical salaries to their male counterparts, even when controlled for demographic differences. Women who studied Electrical Engineering, Civil Engineering, Communications, English, Sociology, Graphic Design, or Psychology earn only 1% less than men doing the same job. And women who studied Information Technology in undergrad and didn’t go to grad school actually outearn similarly educated men by 1%.
The latest predictions cover through 2020, and software is still a big story. Interesting that the industry is expected to grow faster than employment. I guess software workers’ productivity is just so high?
The software publishers industry is projected to grow from $156.9 billion to $368.2 billion in real output, an increase of $211.3 billion, making it one of the largest growing industries in real output. (See table 6.) The pro- jected 8.9-percent real output growth rate also makes the software publishers industry the second-fastest-growing industry in real output. (See table 5.) Over the 2010–2020 period, employment is projected to increase 91,800, to reach 351,600, an annual growth rate of 3.1 percent, mak- ing this industry one of the fastest growing in employment. (See table 3.) With increasing technology, output will grow faster than employment. As more software services, such as cloud computing, word processing, and entering data into spreadsheets, become available through the In- ternet and the need grows for a more secure network, so will the demand for services of software publishers.
I have had several people now send me a link to Bret Victor’s video on Inventing on Principle. It is a really impressive demo!
His system reminds me of Mike Eisenberg’s work on SchemePaint. Mike wanted the artist to be able to interleave programming and direct manipulation. In SchemePaint, you could draw something by hand, then store the result in a variable to manipulate in a loop. Or you could write some code to tesselate some graphical object, then add tweaks by hand. It was beautiful. The work that Mike did on SchemePaint led to his wonderful work on HyperGami, a CAD system for origami, which was the start of his Craft Technology group. That’s the group from which Leah Buechley graduated — she did the LilyPad.
People are sending me Bret’s video asking, “Wouldn’t this be great for learners?” I bet it could be, but we’d have to try it out. At one point in his lecture, Bret says, “Why should I have to simulate the computer in my head?” Because that’s the point of understanding computer science. Bret’s system looks like a powerful visualization system, and visualization can be used to lead to real understanding, but it isn’t easy to design the visualization and context such that learning occurs.
The problem is that visualization is about making information immediate and accessible, but learning is about changes in the mind — invisible associations and structures. Sometimes good usability makes it easier to make these associations and structures. Tools like Scratch and Alice increase usability in one direction (e.g., syntax) while still asking students to make an effort toward understanding (e.g., variables, loops, and conditionals).
My first PhD student was Noel Rappin, who explored the features of modeling environments that lead to learning. He had a CHI paper about his work on helping chemical engineers learn through modeling. Our colleagues in chemical engineering complained that their students couldn’t connect the equations to the physical details of the pumping systems that they were modeling. Noel built a system where students would lay out the physical representation of a pumping system, then “look underneath” to see the equations of the system, with the values filled in from the physical representation (e.g., height difference between tanks).
He ran a pilot study where students would lay out a system according to certain characteristics. They would then manipulate the system to achieve some goal, like a given flow rate at a particular point in the system. When Noel asked the pilot students if they gained any new insights about the equations, one student actually said, “What equations?” They literally didn’t see the equations, just the particular value they were focusing on. The system was highly usable for modeling, but not for learning.
Noel built a new system, where students could lay out a model, and values from the model were immediately available in an equation space. To get the flow rate, the student would have to lay out the equations for themselves. They would still solve the problem by manipulating the physical representation in order to get the right flow rate, and the system would still do all the calculations — but the students would have to figure out how to compute the flow rate. The system became much harder to use. But now, students actually did learn, and better than students in a comparison group.
We are delighted to announce the availability of the ACM/IEEE-CS Computer
Science Curricula 2013 – Strawman draft.
The draft is available at the CS2013 website (
) or directly
BACKGROUND ON CS2013
Continuing a process that began over 40 years ago with the publication of
“Curriculum 68″, the major professional societies in computing–ACM and
IEEE-Computer Society–have sponsored efforts to establish international
curricular guidelines for undergraduate programs in computing on roughly a
10-year cycle. This volume, Computer Science Curricula 2013 (CS2013),
represents a comprehensive revision of previous computer science curricular
guidelines, redefining the knowledge units in CS and rethinking the
essentials necessary for a Computer Science curriculum.
The CS2013 Steering Committee welcomes comment on the CS2013 Strawman draft
from the computing community. The comment period will begin shortly
(additional information on how to provide comments will be sent out in a few
days) and remain open until July 15, 2012. Comments on the Strawman draft
will be addressed in future drafts of CS2013.
SIGCSE-12 PANEL ON CS2013
A panel session at SIGCSE-12 will provide a brief overview of CS2013 and
provide the opportunity for in-person feedback from the community on the
Strawman draft. The panel session is scheduled for Thursday, March 1, 2012
at 10:45am-12noon in Room 301AB.
Mehran Sahami and Steve Roach
Co-Chairs, CS2013 Steering Committee
CS2013 Steering Committee
Mehran Sahami, Chair (Stanford University)
Andrea Danyluk (Williams College)
Sally Fincher (University of Kent)
Kathleen Fisher (Tufts University)
Dan Grossman (University of Washington)
Beth Hawthorne (Union County College)
Randy Katz (UC Berkeley)
Rich LeBlanc (Seattle University)
Dave Reed (Creighton University)
Steve Roach, Chair (Univ. of Texas, El Paso)
Ernesto Cuadros-Vargas (Univ. Catolica San Pablo, Peru)
Ronald Dodge (US Military Academy)
Robert France (Colorado State University)
Amruth Kumar (Ramapo Coll. of New Jersey)
Brian Robinson (ABB Corporation)
Remzi Seker (Univ. of Arkansas, Little Rock)
Alfred Thompson (Microsoft)
Exciting that Kennesaw University now has an approved high CS teacher endorsement program! That makes two in the state, the other being the original at Columbus State. This doesn’t fix the problem of getting teachers into these programs. Maybe a program in the Atlanta area may draw a different audience than an on-line program in West Georgia. In any case, it is a positive for CS10K, in that it increases the potential production of teachers. Now we just need more teachers taking these programs.
This endorsement is intended to prepare computer science teachers (grades 6 through 12). It will lead to teacher certification in the teaching field of computer science in Georgia. As an endorsement, the teaching candidate must already have or simultaneously obtain a teaching certification in another field.
Pretty cool! The latest PCAST (President’s Council of Advisors on Science and Technology) report is on “ENGAGE TO EXCEL: PRODUCING ONE MILLION ADDITIONAL COLLEGE GRADUATES WITH DEGREES IN SCIENCE, TECHNOLOGY, ENGINEERING, AND MATHEMATICS.” CS Education plays a significant role in this, and SIGCSE gets a few mentions!
A YouTube video of my talk (with Alan’s introduction) at C5 is now available.
I just gave a midterm exam in my class on data structures using media computation. The results are disappointing, and have prodded me into trying something new: I made a worksheet.
Two of the problems on the midterm were tracing problems. One had a posterize method (reduces the possible number of colors in a picture), and I provided some RGB values for some sample pixels: What new RGB values will be in those pixels after this method executes? The second problem had three graphics images, and three programs: Which program generated which image? I had several people review the tracing problems — they weren’t trivial.
One of the problems was a code writing problem. I gave them the Sound methods for reverse() and for increaseVolume(). They were to write a new method that reversed the first half the sound, then increased the volume in the second half the sound. I literally expected them to copy the bodies of the two loops, and just tweak the ranges on the loops.
The average score on the two tracing problems (adding the percentages together and dividing by 200) was 96%. 15 of the 16 students in the class got over 90% on the two problems. The average score on the one writing problem was 75%. Five of the 16 students got less than 70% right. These students are quite good at reading code. Some of these students were unsuccessful writing code.
What happened? The research literature on CS education has lots of examples of how reading and writing skills develop separately. Pete Pirolli reported in the early 1980′s that, in several studies, Anderson’s lab at CMU found no correlation between reading and writing skills. Raymond Lister and his colleagues have written several papers about students having one or the other, but not both sets of skills. So, it’s not a surprising result, but it’s one that I need to address.
How? The students are working hard on programming assignments. Programming assignments are so heavy – they take so much time, they require so much effort. I do require students to do a weekly out-of-class quiz, often oriented around videos. This semester, two of the quiz assignments were to use Problets on for and while loops. That may have helped with the reading skills, but doesn’t seemed to have helped much with writing skills.
I decided that I needed to try out one of the ideas in CSLearning4U, that is more examples and more lighterweight practice. I made a worksheet for this week’s quiz. The worksheet has four completely worked out array manipulation programs (with outputs provided) and two more sound manipulation programs (for analogous actions as on the arrays), to make clear the connections. There are five more programs that are nearly complete, including all outputs, but with some blanks. The blanks are mostly where range manipulations would take place. The students have to complete the blanks. I’m offering two points each for the 10 blanks, where the first 10 points go towards the quiz grade and the second possible 10 points are bonus points toward the midterm exam.
I made very clear that there was no partial credit. The students get them right, or they don’t. I explicitly said that the smartest thing to do is to type in the program, then fill in the blanks such that the output is right. This is a lighterweight activity than programming from scratch.
This is unusual for me, and maybe for other higher-education CS teachers. Worksheets are very common in high schools, and even in higher-education in other STEM disciplines. I’ve seen physics labs and chemistry pre-labs in worksheet formats. I can’t remember seeing them in CS, but I’m sure that somebody has done them. What I’m doing here is something that K-12 teachers are taught to do: See a particular learning problem, then find or invent an activity to address that problem. This is the first time I’ve created a worksheet as that activity. In CS, we tend to assign some more programming to address a learning problem. I’m looking for something with less cognitive load: More example, and more lightweight practice.
I’m still figuring out how I’ll evaluate if this worked. My guess is that I’ll have a slightly more heavyweight version of this on next week’s quiz, e.g., I provide a partial program, with inputs and outputs specified, and I’ll ask them to fill in the rest of the program. That will give me a sense if they’re developing the writing skills I hope to see.
Here’s a cute story: Girlfriend of the founder of the website Instagram learns to program in Python in order to give her Valentine a new web tool to work with Instagram. From a computing education perspective, it wasn’t so sweet. The complexity of learning computing got in her way and ruined her secret. It’s just too darn hard.
And yes she also had to learn Photoshop to come up with the the three different designs, “It’s almost harder than Python,” she told me.
While the service ended up looking amazing, her plan to keep it a secret from Krieger didn’t work, mainly because of her frustration with working out bugs, “Something would take me an hour and a half and I knew that ten feet away is someone who could fix the same bug in ten seconds.” So she spilled the beans.
At the CE21 meeting earlier this month, I got asked a similar question more than once. ”I have got this great class on X for high school teachers. I want to ‘evaluate it’. Um…how many teachers do I need?” I’m pretty sure I really heard the quote marks around “evaluate it,” because I’m pretty sure that the question-asker really had little idea what that meant.
I used this story as an example in my educational technology class last week. It’s worth exploring why that’s not answerable as-is. ”How many teachers do I need?” depends on the research question that you’re trying to answer. There are lots of questions one might ask about a “great class for high school teachers.” Which one are you trying to explore?
- Maybe you think you’ve solved a particular problem that high school teachers face in learning computer science, like struggling with data structures or fitting the course material into their daily lives. I’m particularly interested in that latter problem. To answer that question, you need to talk to the teachers, to get an understanding of whether the teachers faced the problem and if your class helped them get past it. You’re not going to interview 20 people and do something useful with your data (interview transcripts). At least 3-5 people, probably no more than 10-12 participants would let you answer your question.
- Maybe you think that your class in X is better than other classes in X. Then, you need to do a comparison study. My rudimentary knowledge of statistics suggests that you need 40-50 teachers with about half taking each course so that you can compare them on some learning or performance measure.
- Maybe you think that your class can scale dramatically well, that you really have a solution to the CS10K challenge — your class can educate thousands of teachers in the next four years. That’s great, but to be convincing, you’re going to show that you can run your class at scale (maybe 100 teachers at once would be convincing) and that you still achieve learning outcomes (against some reasonable measure of learning, like Allison’s test or the outcome measures being developed for CS:Principles). You don’t need to do a comparison to something else if you’re trying to demonstrate scale, and you certainly aren’t going to interview all those participants.
There are other possible research questions, with other appropriate evaluation mechanisms. Do you think that your intervention is going to result in systemic change? Then you need a longitudinal study. Do you think that you have a class that will draw more teachers into CS teaching? Then your real target audience is outside your classroom, and you need to do an evaluation that extends outside your classroom.
The greatest challenge facing the CE21 community is that the community is filled with computer scientists. Computer science too rarely asks questions involving human beings, so we have too little practice defining the right kinds of methods. The CE21 meeting had a few education researchers, who they seemed not too comfortable with computer science — and there was way too little collaboration between the two groups. If we want to do education research that means something, we need to learn how to to ask research questions that involve humans and to figure out the right methods.