Posts tagged ‘APCS’
And that makes it 10.
Today, Washington Governor Jay Inslee is signing a bill that will allow high schools across the state to count the Advanced Placement (AP) Computer Science course as a math or science credit, making Washington one of only 10 states that counts computer science towards high school graduation.
Before today, AP Computer Science counted as an elective—making it a tough choice for students looking to pack their transcripts with math and science courses and those that might be curious about computer science. Currently, only 35 of the state’s 622 high schools offer AP Computer Science. The hope is that this change will encourage more students to take the course and many more schools to offer it.
I read with great interest Neil Fraser’s fascinating account of computer science education in Vietnam. The efforts going on in Vietnam are really terrific, and Neil does a good job of describing what he saw there.
Then a colleague sent me a link to the Slashdot discussion about Neil’s blog post. The focus of the discussion was on Neil’s description of the state of computer science education in the United States, which is not nearly as accurate or as well-informed as his descriptions of the state of Vietnamese CS education.
Here’s what Neil says, with my responses interspersed. His original is more detailed than the bits I’m grabbing here.
The state of American computer science education is striking in comparison.
School boards fight to keep CS out of schools, since every minute spent on CS is one less minute spent on core subjects like English and math. The students’ test scores in these core subjects determine next year’s funding, so CS is a threat.
I have never heard of a school board fighting to keep CS out of their schools. Describing it like that paints a picture of a poor group of School Board members fighting against the hoards of computer scientists. A more accurate analogy is School Board members riding on the backs of lumbering elephants, and every once in awhile, a pesky computer scientist mosquito tries to annoy the elephant. If there ever was a massive battle for the schools’ curriculum, the CS army would have lost, because it never showed up!
Computer science does not count toward Annual Yearly Progress, but that doesn’t mean that it couldn’t. It’s absolutely true that computer science is not part of the Common Core — that’s the goal of the “Computing in the Core” group. Computer science does count towards high school graduation in nine states now. It could be more, but it hasn’t happened yet. There’s a big effort going on in Washington and in Massachusetts now. I don’t know of any organized effort anywhere to keep CS out of schools. Rather, there’s not enough effort to get CS into schools yet. (There is no school suffering the problem of too many hours and too few things to teach!)
There’s an implicit assumption here that School Boards make the decision on what gets taught and what doesn’t. I keep learning how different each and every state is. Decisions about what gets taught (and what doesn’t get made) at the State level, the district level, and the individual school/teacher level, and what gets decided at what level differs from state to state.
Teachers often refuse to teach real CS because more often than not they don’t understand it. Instead, they end up teaching word processing and website construction, while calling it CS.
I have been involved several studies of high school teachers (e.g., DCCE and Lijun Ni’s work and through GaComputes). Teachers want to teach what they know and what their students need and want. Absolutely, they are unlikely to know real CS, but not knowing something isn’t the same as “refusing to teach” it. Professional development to prepare high school teachers in computer science is a huge international problem. Absolutely, applications and keyboarding skills often get misclassified as computer science. I recommend the CSTA report Running on Empty to see where this is happening and about the efforts to explain what is real computer science.
Parents often oppose CS classes since the grade has no direct benefit on their child’s academic prospects. This is compounded by a lack of understanding of the difference between their child playing video games and their child writing video games.
Absolutely, I believe this happens. I have heard similar stories. I don’t know how widespread it is. I have not seen any data showing that parents oppose CS classes in enough numbers to influence participation in a significant way. I have never seen any data that parents are confused about the difference between playing video games and writing video games. In general, we know that parents influence students’ educational decision-making processes, but we don’t know that parental recommendations away from computing prevent computing education from growing.
Students intentionally tune out of CS class since there are few things worse in American high school than being labelled a nerd.
Studies like the ACM-WGBH image of computing, Stuck in the Shallow End, and Betsy DiSalvo’s work with Glitch all say that students value computing and want computing courses, but rarely get access to it. Agreed that nobody wants to be labelled a “nerd,” and Betsy’s work shows that “face-saving” is an important part of her efforts. But that’s not the main reason why students aren’t taking computer science. The real problem is a lack of access. Remember that there are 2K AP CS teachers for 24K high schools in the United States. If students WANTED to be “labelled a nerd” and take a CS course, they are unlikely to get a chance.
The result in America is a prefect storm of opposition from every level. Effecting meaningful change is virtually impossible. I work for the education department at Google and the stories our external educators return with are as shocking as they are unpublishable. We’ve been spending enormous resources with frankly minimal impact.
I am absolutely sure that Neil is hearing all kinds of awful stories, but that’s not the same as careful studies. Those are anecdotes. Efforts to measure what’s going on paint a somewhat different picture.
At the ACM Education Council meeting last month, we learned that China is spending $25 BILLION per year on computer science education. Those are enormous resources. The United States has barely started.
I just learned this fact at the NSF BPC/CE21 meeting from Jane Margolis’s talk. This last Fall 2012, the first female African-American CS PhD graduated from the University of Michigan. Michigan is 14% African-American. University of Michigan is a state institution. Really? 2012? I guess it’s not too surprising, when we know from the AP CS data that I talked about last year that few African-Americans get access to computer science in Michigan.
Dr. Kyla McMullen is the first African American woman to graduate with a PhD in computer science at the University of Michigan. When asked how she feels about her new title, the scholar replied “Bittersweet.” She explained that it’s gratifying to have the distinction of being the university’s first African American female to acquire a PhD in computer science, it reminds her of a sad reality: There aren’t enough men and women of color pursuing advanced degrees in computer science.
Barbara Ericson has completed her annual analysis of AP CS Level A exam results. It was a banner year: The greatest number of test-takers ever, and well over the 20K “break-even” point (when the College Board stops losing money on giving an AP exam). Barbara broke it down by state (for states we’re particularly focusing on in ECEP), and by population of each state. Maryland does the best, in terms of test-takers per million people. Georgia ties with California for “test-taking density.”
Nationally 24,782 people took the AP CS A exam in 2012. This was a 14.7% increase from the previous year. The number of teachers who passed the audit was 2,103. The number of female exam takers was 4,635 which was up from 4,000 the year before. The number of Blacks was 1,014 up from 893 the previous year. The number of Hispanics was 1,919 up from 1,752 the previous year.
The percentage female was 18.7% which was lower than the previous year (18.9%) . The overall pass rate was 63.2%. The female pass rate was 56.4%. The white pass rate was 66.4%. The Asian pass rate was 69.9%. The Hispanic pass rate was 39.8%. The Hispanic male pass rate 43.6%. The Hispanic female pass rate was 26.6%. The Black pass rate was 27.3%. The Black male pass rate was 30.3%. The Black female pass rate was 18.25%.
In 2012 California passed Texas after years (since 2005) of Texas being the state with the most AP CS A exam takers. California had 3,920 and Texas had only 3,614.
“Florida is killing Computer Science,” was the first thing that Joanne Barrett told us when we asked her how things were going in Florida. Barbara and I went to Orlando to give the Technology track keynote (joint! It was fun!) and two breakouts at the FCIS Conference on Thursday. Joanne ran the Technology track at FCIS. (Our travel was sponsored by CSTA and Google – thanks!) The mood of the CS teachers we met was dismal.
Currently, computer science is part of the academic high school degree in Florida — the classes that one would take as College preparation. It’s mostly taught by mathematics teachers. This year is the end of that. This is the last year that the current CS classes will be offered.
As of next year, all the computer science classes in Florida will be moved into business, as part of career preparation. As we understand it from Joanne, they literally won’t count for credit towards an academic high school degree. The AP CS will stay in the academic track, but all the other computer science courses will move to business.
Why? Exactly the same issue as in Georgia: Perkins funding will pay for hardware, so career prep has the computers, and it gets computer science. We spoke to one business teacher who is desperately seeking professional development to prepare herself for teaching all these new computing courses. We met one of the teachers at the Florida Virtual High School (which has a really cool CS sequence, and an astounding success rate for their students on AP CS), and she said that they may not even be able to offer any CS next year. FVHS is about academic subjects, and CS is being re-classified. Florida is also looking for industry certification for the end of the Perkins-funded pathway, and the teachers we talked to said that they’re currently considering an IEEE Certification — which is explicitly for graduates of four year degree programs, not high school students.
What will this do to CS education in Florida? it won’t be “killed,” but it will be changed. I worry about the quality, when swapping out all the experienced math teachers for inexperienced business teachers. I can’t the impact on CS10K goals.
Can AP CS succeed (in particular, the new CS:Principles effort) as a standalone AP, with all the other CS courses in another track? Maybe. I wonder how much effort school districts will put into AP CS, if they have a different, funded CS pathway. I also wonder if CS:Principles can meet its goal of helping to broaden participation in this context — the career prep programs that I’ve seen are far more heavily under-represented minority than the college prep programs. What if the minority students you want to draw into computing via AP CS are off taking the career prep classes?
Barbara has been facing a challenge in dealing with the State of Georgia lately that could impact other states. I offered my blog as a forum for raising the issues more broadly.
We have a real need in Georgia for a certification exam for high school students that is similar to the AP CS A exam in content and price, but is industry-based. Georgia is pushing career pathways and wants to have each student who completes a pathway take some type of exam where they can earn an industry certification. They claim this is due to the Perkins legislation that passed in 2006.
The purpose of the Perkins legislation is to develop students for “high skill, high wage, or high demand occupations in current or emerging professions” which certainly matches computing jobs. It is also intended to “integrate rigorous and challenging academic and career and technical instruction, and link secondary education and postsecondary education for participating career and technical education students”. It goes on to say that the goal is “designed to provide students with a non-duplicative sequence of progressive achievement leading to technical skill proficiency, a credential, a certificate, or a degree.” Since students can receive academic credit for the the Advanced Placement (AP) Computer Science (CS) A exam from postsecondary institutions, the AP CS A exam should count as leading to a degree.
In Georgia, we have created a computing pathway which has 3 courses: Computing in the Modern World, Beginning Programming, and Intermediate Programming. The committee that created the computing courses had recommended that that pathway end with AP CS A instead of Intermediate Programming, and that the students pass the AP CS A exam to prove that they have learned the material. But, Georgia won’t allow the AP exam to be used as an end of pathway exam. I recommended the Oracle Java associate exam, but it is $300 and that is just too expensive. The AP exam is $89. Georgia has picked a Skills USA computer programming exam (see description here) that covers Java, C++, and Visual Basic. That exam doesn’t match the standards in the pathway courses, and we don’t want the teachers to have to teach 3 different languages. We are having a hard enough time getting them up to speed on Java, since most have no computer science background. The Career and Technical Education Department in Georgia thinks it is preparing kids for programming jobs right out of high school, which is not realistic. Students will need to at least an associates degree if they want a career in computing.
Georgia is poised to force every rising 9th grader to pick a career pathway. They are currently thinking about changing our computing courses to match the Skills USA test, since they can’t find a cheaper test that gives industry certification in Java. This is a huge problem. We have been working for years to improve computing in Georgia, and this would reverse many of our gains. We have introduced interesting and engaging courses using Scratch, Alice, Media Computation in Java, CS Unplugged, Greenfoot and App Inventor. Teachers would have to go back to boring, cookbook programming to get through 3 languages in 3 courses.
The Georgia DOE says is not going to change to allow an AP exam as an end of pathway exam. They claim they can’t since their efforts are part of the Race to the Top grant that Georgia won. They interpreted the Perkins legislation to mean that students must earn an industry certification. Other states may also use this same narrow interpretation and could end up in the same situation. This could be a major road block to the National Science Foundation’s plan to prepare 10,000 teachers (CS10K) to teach the new AP CS Principles course by 2016.
I recommend that Oracle create a new certificate only for high school students that is based on the AP CS A exam material and costs about $89. It could be a subset of the Java Associate material that matches the AP CS A material (extra topics to remove are: Java Development Fundamentals, Java Platforms and Integration Technologies, Client Technologies, Server Technologies).
UK CS degrees rising while secondary school CS testing drops: Result is too little computing literacy
Fascinating blog post and analysis from Neil Brown. The UK secondary school top test in CS (consider it like the US Advanced Placement Exam) is the A-level. Fewer people are taking the CS A-levels in the UK, but more people are applying for degrees in CS and more people are entering the CS degree program. That means that fewer people are seeing CS in high school, while there’s still rising interest in the degree. What’s the cost of fewer people studying CS at the secondary school level? Less breadth, fewer people who know CS but don’t go into CS, fewer people who are computing literate for their careers and daily lives. That’s not a good thing.
A-Level Computing looks like it’s on the verge of dying out. This is not good news for the discipline as a whole — even though our degree numbers seem to be doing fine in spite of the A-Level decline, ultimately it would be good to see computing strong at all stages of the educational system. As it stands we face a sort of polarisation: those with computing degrees know computing, but almost no-one without a computing degree will have done any computing. (Compare to maths, where lots of students have maths A-Level, despite not doing a maths degree.)
I want to go meta for a moment, because I noticed something that I found interesting in my WordPress spam folder. I have several completely legitimate, thoughtful comments on the blog, with completely illegitimate ownership. I suspect that the ownership of the comment has been hijacked to drive traffic to their site.
For example, here’s a comment that has supposedly been made by a “Panama Offshore Bank Account” website:
We do know how to engage kids now. We have NCWIT Best and Promising Practices , and we have contextualized computing education . The real problem is that, when it comes to high school CS, we’re just not there. If you choose a high school at random, you are ten times more likely to find one that offers no CS than to find one offering AP CS. That’s a big reason why the AP numbers are so bad. It’s not that the current AP CS is such an awful class. It can be taught well. It’s just not available to everyone! The AP CS teachers we’re working with are turning kids away because their classes are full. Most kids just don’t have access.
That’s a relevant contribution — why would a Panama Bank submit that?
Here’s another, on the Khan Academy CS supports, from an “Anglo-Far East Gold Bullion” site:
The system works wonderfully. Educators often call it “scaffolded problem-based learning.” Essentially students will be solving real-life problems while being encouraged to explore, but are also guided by a teacher along their way, who will be able to point out a number of different ways of accomplishing the problem. Scaffolded learning acknowledges that real-life problems will always have more than one way to solve the solution, that students will always learn best by doing instead of watching, and that curiously should drive exploration (as a personal thought, it’s kind of funny that we’re basically finding things out that were already discovered hundreds of years ago).
These are far too-relevant to be generated by auto-spamming bots. I’m wondering if, somehow, legitimate comments are getting relabeled.
If you make a comment, and it doesn’t show up, please drop me a note to check the spam filter, and I’ll try to make sure that your comment gets posted.
Updated August 22: See note at bottom
We spent a significant amount of time this summer discussing with NSF our proposal to create an alliance around Expanding Computing Education Pathways (ECEP). One of the issues that we got pressed on was how to not just improve the numbers of women and members of under-represented minorities entering computer science, but to improve the quality of their learning and of their performance on metrics like the Advanced Placement Computer Science exam. Barbara Ericson started digging into the AP CS data at the College Board site, and found some pretty amazing things. I’m helping with some of the statistics (using my new “Computational Freakonomics” knowledge). We’re not sure what we’re going to do with this yet (SIGCSE paper, perhaps?), but Barb agreed that I could share some of the stats with you. The results in this post are Barb’s analysis of the AP CS results from 2006-2011, the years in which “Georgia Computes!” and CAITE were both in existence.
Nationally, here are the pass rates per year. The gap from the blue line at top and the red line below is explained by the gender gap. In 2011, the pass rate was 63.7% overall, 57.6% for females. The even larger gap from those two lines down to the rest is the race/ethnicity gap: 31.7% for Blacks, and 37.2% for Hispanics in 2011. I didn’t expect this: Hispanic females do statistically significantly better than Black females at passing the AP CS over this time frame (t-test, one-tailed, p=.01). (I’m using “Black” because that’s the demographic category that the College Board gives us. We are collapsing “Mexican American,” “Other Hispanic,” and “Puerto Rican” into the “Hispanic” category.) There’s still a big gap between the orange Hispanic line (37.2% in 2011) and the light blue Hispanic females line (25% in 2011).
While Hispanics are doing better than Blacks on AP CS, I was still surprised at this: No Hispanic female has scored a passing grade (3, 4, or 5) on the AP CS test in Georgia, Michigan, Indiana, South Carolina, or Alabama in the last six years. Only one Hispanic female has passed in Massachusetts in the same time frame. Why these states? ECEP is starting from Georgia and Massachusetts, next involving California and South Carolina, and we want to compare to states of similar size or similarly sized minority populations. We haven’t looked at all 50 states — the College Board doesn’t make it easy to grab these numbers.
The Black pass rate is quite a bit smaller than the Hispanic, in part because the participation rate is so low. Michigan has 1.4 million Blacks (out of 9.8 million overall population, so 14% Black), but only 2 Black men have passed the AP CS in the last six years. In 2011, 389 students took the AP CS in Michigan, only 2 of whom were Black. Only one Black female has even taken the AP CS in Michigan in the last six years. (No, she didn’t get a passing grade.)
Considering the population of the state is really important when considering these numbers. Last year, Georgia had 884 people take the AP CS Level A test (the most ever), 79 of whom were Black (about 9%). 17 passed. for a 21.5% pass rate. In contrast, California had a 51.7% pass rate among Black test-takers, 15 of the 29 test takers. That’s 29 test-takers out of 3101 AP CS Level A tests in California (0.9%)! California has an enormous test-taking population, but few Blacks and relatively few Hispanics (230 Hispanic test takers (49 female) out of the 3101 overall test takers). California has 37.6 million people, and 2.2 million Blacks (5.8%). Georgia has 9.8 million people, 2.9 million Blacks (30%). Bottomline: Georgia had many more Black test-takers than California, with a similarly-sized Black population. Georgia’s test-taking numbers aren’t representative of the population distribution overall (9% vs. 30%), but California’s are even more out-of-whack (0.9% vs. 5.8%).
Barb’s still digging into the numbers (e.g., to compare regionally, as well as by similarly sized). If we get ECEP, this is the first step — to know where we are, so we can measure how we do.
Updated August 22: When I wrote this up, I didn’t realize that Barb had created several datasets. She has data back into the 1990′s, but the dataset she gave me was just 2006-2011, the years in which our NSF BPC Alliances existed. So my claims of “ever” in the original post were too strong. We don’t know that the claims are wrong, but we haven’t actually checked back further than 2006 yet. My sincere apologies for mis-stating the scope of my claims! I’m glad that we discovered this problem when it’s just a blog post, not a paper submitted for publication. I’ve updated the text of the post to reflect the claims that I can actually make.
Last week was the AP CS Reading, where over 100 computing teachers read over students’ programs and graded them. Several readers (including Barbara) have come back saying that the unofficial count for the number of tests this year was 26,000. Compare that to 21,139 last year, and 19,390 the year before that. We probably won’t have the official numbers until January, and we’ll get the demographic breakdown then, too. A 20+% increase in a single year is remarkable!
The 999th blog post feels like a good point to think about where we’re going. Here’s how I define the big question of computing education research:
Computing education research is the study of how people come to understand computing, and how we can make that better.
But that’s the big question. There are lots of research questions inside that. Here are some of the ones that I’m intrigued by. This is an overly-long blog post which I’m using as a place marker: Here’s what I’m thinking about right now at the end of the first 1000 blog posts. Skip around to the parts that you might find interesting.
What are the cognitive processes of learning to program?
Why is learning to program hard? The empirical evidence of teaching computer science suggests that it is. Failure rates worldwide of 30-50% in the first class have been reported for decades. The misconceptions and challenges that students faced in Scratch in Israel (ITICSE 2011) are quite similar to the same ones documented in Pascal at Yale in the 1980’s (Soloway et al.).
Are there cognitive challenges to learning programming that are unique among other disciplines? Perhaps so. Consider these two possibilities:
- Agency: Writing a computer program is the task of providing instructions to another agent to execute, but a non-human agent. Miller in 1981 found that humans found it hard to describe task processes to another human, and the produced instructions required human understanding to interpret them. People do not naturally produce instructions at a level detailed enough for a computer to execute.
- Time: A program uses a variety of notations to compress time, e.g., iteration and recursive constructs. These notations describe a process in brief which will execute repeatedly many times (perhaps millions of times). We know that these notations are among the most challenging for students to grasp.
Both agency and time notations are unique to the challenge of programming. Perhaps these factors (among others) help to explain why programming is so hard, and understanding these challenges will lead to new insight into how humans conceive of agency and time.
Where do problems/difficulties/misconceptions in learning programming come from?
Most students have no experience in programming computers before they enter their first computer science class. So, no prior conception of assignment, memory allocation, WHILE and FOR loops, linked lists, or recursion — yet these are way up there on the list of things that are hard about learning to program. They haven’t changed in decades, across multiple languages. Where did those problems come from? Do we teach them wrong? Exactly where so that we can fix it! Do students have some prior knowledge that is interfering? What knowledge are students bringing to bear in learning to program?
Can we teach computing without a programming language?
Can someone learn what a computer is, how it works, and what its limitations are simply through non-programming activities?
Mathematicians did. Turing defined what a computer is, without a programming language. Instead, he defined a machine and a language.
I’m increasingly coming to believe that those are outliers — Turing and mathematicians who figure out computing without a computer are unusual, and we can’t do that at-scale. Learning to understand computing is learning to understand a notional machine (duBoulay), to construct a mental model of how you expect the notional machine to work (Norman), and that mental model consists of decontextualized parts (deKleer and Brown). It’s very hard to think about those parts without having names or representations of them. It can happen, but it takes enormous cognitive effort. It’s not going to be effective and efficient to reach our learning goals without a language.
Challenges for CS10K
The CS10K effort (to have 10,000 high school teachers capable of teaching CS:Principles in 10,000 US high schools) requires answers to some significant research questions. Some of these include:
- What kind of pedagogy will fit into the lives of in-service high school teachers and other working professionals?
Computer science pedagogy today is mostly apprenticeship-based: Students get a bit of instruction (perhaps some modeling of good behavior), and then are expected to learn through doing, by programming in front of an IDE. While the apprenticeship-based model is effective, it’s inefficient if the goal is understanding about computer science, as opposed to expertise as a software engineer.
In-service high school teachers are a particularly challenging audience. Most likely, they will never be professional software engineers, and they are full-time (overworked) professions, so they have neither the motivation nor the time to engage in apprenticeship-based learning. How do we teach CS to these teachers in the small bits of time that they have available?
- How do we create sufficient, high-quality on-line materials to lead to successful CS learning at a distance?
The best distance learning programs in the world (such as the Open University UK) rely significantly on text-based materials, because we know how to control costs while creating and maintaining high-quality content. CS is not best taught with printed text, since visualizations and simulations play a key role in student learning. How do we create sufficient (e.g., at reasonable cost), high-quality materials to support CS learning at a distance?
- What will motivate high school teachers to take classes in computer science, to be engaged with the content, and to sustain their interest?
The existing CS teaching programs in the United States are woefully undersubscribed, e.g., Purdue’s CS methods course has never had more than one student enrolled each term that it is offered. What will drive more teachers into CS education?
- What do teachers need in order to develop into successful computer science teachers?
High school teachers will not need to be professional software engineers. They do need to be able to present CS ideas, to assign and assess student work, and to mentor, e.g., to help facilitate student debugging and guide development. What are the learning objectives for CS high school teachers? How do we assess that development?
- CS PCK: What is Computer Science Pedagogical Content Knowledge?
In most disciplines, there is a body of knowledge of how to teach that. How People Learn has a whole chapter on domain-specific teaching practices, and points out that those are much more powerful for effective teaching than domain-general teaching practices. For example, science educators explain how to support inquiry-based learning, and mathematics educators know how to build on innate understanding of number. We call that knowledge pedagogical content knowledge. How do we best teach computer science? How do we help future educators develop the unique skills to teach computer science?
GasStationWithoutPumps did a blog piece on the newspaper articles that I mentioned earlier this week, and he pointed out something important that I missed. The Guardian’s John Naughton provided a really nice definition of computational thinking:
… computer science involves a new way of thinking about problem-solving: it’s called computational thinking, and it’s about understanding the difference between human and artificial intelligence, as well as about thinking recursively, being alert to the need for prevention, detection and protection against risks, using abstraction and decomposition when tackling large tasks, and deploying heuristic reasoning, iteration and search to discover solutions to complex problems.
I like this one. It’s more succinct than others that I’ve seen, and still does a good job of hitting the key points.
Naughton’s definition includes issues of cyber-security and risk. I don’t see that often in “Computational Thinking” definitions. I was reminded of a list that Greg Wilson generated recently in his Software Carpentry blog about what researchers need to know about programming the Web.
Here’s what (I think) I’ve figured out so far:
- People want to solve real problems with real tools.
- All we can teach people about server-side programming in a few hours is how to create security holes, even if we use modern frameworks.
- People must be able to debug what they build. If they can’t, they won’t be able to apply their knowledge to similar problems on their own.
Greg’s list surprised me, because it was the first time that I’d thought risk and cyber-security as critical to end-user programmers. Yes, cyber-security plays a prominent role in the CS:Principles framework (as part of Big Idea VI, on the Internet), but I’d thought of that (cynically, I admit) as being a nod to the software development firms who want everyone to be concerned about safe programming practices. Is it really key to understanding the role of computing in our everyday lives? Maybe — the risks and needs for security may be the necessary consequent of teaching end-users about the power and beauty of computing.
Greg’s last point is one that I’ve been thinking a lot about lately. I’ve agreed to serve on the review committee for Juha Sorva’s thesis, which focuses on his excellent program visualization tool, UUhistle. I’m enjoying Juha’s document very much, and I’m not even up to the technology part yet. He has terrific coverage of the existing literature in computing education research, cognitive science, and learning sciences, and the connections he draws between disparate areas is fascinating. One of the arguments that he’s making is that the ability to understand computing in a transferable way requires the development of a mental model — an executable understanding of how the pieces of a program fit together in order to achieve some function. For example, you can’t debug without a mental model of how the program works (to connect to Greg’s list). Juha’s dissertation is making the argument (implicitly, so far in my reading) that you can’t develop a mental model of computing without learning to program. You have to have a notation, some representation of the context-free executable pieces of the program, in order to recognize that these are decontextualized pieces that work in the same way in any program. A WHILE loop has the same structure and behavior, regardless of the context, regardless of the function that any particular WHILE loop plays in any particular program. Without the notation, you don’t have names or representations for the pieces that is necessary for transfer.
Juha is making an argument like Alan Perlis’s argument in 1961: Perlis wasn’t arguing that everyone needed to understand programming for its own sake. Rather, he felt that the systems thinking was the critical need, and that the best way to get to systems thinking was through programming. The cognitive science literature that Juha is drawing on is saying something stronger: That we can’t get to systems thinking (or computational thinking) without programming. I’ll say more about Juha’s thesis as I finish reviewing it.
It’s interesting that there are some similar threads about risk and cyber-security appearing in different definitions of computational thinking (Naughton and Wilson discussed here), and those thinking about how to teach computational thinking (Sorva and Perlis here) are suggesting that we need programming to get there.
Congratulations Georgia AP CS A teachers! In 2011 the largest number of students ever took the CS AP A exam in Georgia at 884. This is especially exciting as the number of schools offering AP CS A in Georgia has been declining for years (from 81 in 2007-2008 to 64 in 2010-2011).The mean score was 2.61 down from 2.83 the year before. The number of females was up at 154 (from 118 last year), but that is still 1 less that the maximum which was in 1999. The number of blacks was 79 which is an increase from the 68 last year but still not anywhere near the max from 1999 at 163. See http://www.collegeboard.com/student/testing/ap/exgrd_sum/2011.html for the original data for each state and the national data.Other AP exams still are way ahead of CS in Georgia. I will be really happy when CS gets to these numbers.Exam Total Females BlackCS 884 154 79Calculus AB 7176 3561 1447Biology 5535 3204 976Chemistry 3292 1525 505Statistics 5155 2669 871Nationally the number of people taking the CS AP A exam also increased to 21,139.
It’s a short piece, but it makes the point that Senator Casey gets it — CS education is shrinking, just as the demand is growing.
The availability of introductory high school computer science courses has decreased by 17 percent since 2005, he said, and the number of Advanced Placement computer science courses has dropped by 33 percent.
“Just when we need more students to focus on this course of study it’s going in the wrong direction and rapidly in the wrong direction,” Mr. Casey said.
Moreover, women and minorities are under-represented among those taking existing courses, he said.
The College Board is increasingly using the Advanced Placement exams as a kind of intervention into high school STEM education, and even attempting to influence university education. The new Biology AP course and exam is explicitly aimed at reforming biology education and is based on the latest education research. Now, the College Board is thinking about moving into engineering, which supports multiple efforts to create more K-12 engineering education, e.g. Georgia Tech just won a grant to teach manufacturing principles in high school. I think it’s in this spirit that the College Board is working with NSF to create the new hope-to-be AP in CS:Principles. Can we use AP CS as a lever to change undergraduate CS education?
At U.S. News’s Making Science Cool event last Tuesday, he said the organization was “exploring the potential of more AP courses in engineering, energy, environment, and anatomy.” Don’t look for the new subjects anytime soon. Development of a new AP course can take up to six years as teachers and professors develop class curricula and the AP exam before smaller groups pilot the new course, according to Trevor Packer, senior vice president of AP and college readiness for the College Board.