Posts tagged ‘contextualized computing education’

Trip report on Australia visit: The Higher Ed Times are a-changin’

As I mentioned last week, Barb and I spent the week visiting Australia.  We gave talks in Melbourne (keynote at Melbourne Computing Education Conventicle and teacher workshop), Adelaide (presentation on MediaComp at Festival of Teaching and Learning and on CS outreach), and Sydney (joint keynote at Sydney Computing Education Conventicle, then MediaComp talk at alumni end-of-term BBQ).  I’ve uploaded all the talk slides at, if you’d like to see any of them.

It was a really interesting time to visit Australia.  Higher education is going through some dramatic changes there.  I don’t understand the current system all that well, so I don’t understand exactly what’s changing.  I did hear a lot about what the new system will look like.

Higher education enrollment used to be “capped,” with a certain number of well-ranked students being given access to Universities.  There are almost no private Universities in Australia.

Under the new system, there are “no caps.”  Universities can take as many students as they wish (where Universities have some say on their goals for their enrollment, e.g., to keep a high test score average for an entering class vs. having increased diversity).  Private Universities will be allowed, maybe even encouraged.  There will be funding for Universities associated with taking students from lower socioeconomic status (SES) high schools.  Funding will be tied to retention and graduation rates.  All of these changes start in 2012.

The new system features TEQSA, the Tertiary Education Quality and Standards Agency.  I heard a presentation in Adelaide about TEQSA and how the University of Adelaide is responding to it.  Currently, there is a huge effort in establishing standards for all their undergraduate and graduate programs, and starting next year, there TEQSA will also be part of accreditation (a “regulatory function,” in the words of their website) starting in January 2012.  I was a bit worried about the standards process from the presentation I heard.  It’s all “demand-driven” (their emphasis) with interviews with literally hundreds of stakeholders, especially industry.  After my talk on Media Computation, someone asked me, “But is industry asking for Liberal Arts majors to learn to program?”  Of course not, I explained.  Teaching all Liberal Arts majors about programming is about enabling innovation and creating a market differentiation.  I told one of my stories about students in Liberal Arts, Architecture, and Management getting interviews and jobs because they have a unique computer science background that peer students might not.  I explicitly said that that’s the problem of being “demand-driven” in setting standards — how do you plan for the future where your students are going to live?  (Our host in Adelaide, Katrina Faulkner, said that the Dean of Humanities approached her after my talk and asked if the Adelaide CS department could offer a similar course.  Someone from their Education school came up to me and said that her eyes were opened — she’d never thought about teaching CS to high school teachers before.  A good start for a conversation!)

I suspect that some of the higher education changes were drivers for our visit.  Some funding for our visit came from the Australia Council of Deans of ICT programs.  I heard a presentation in Sydney from Tony Koppi of ACDICT, where he talked about a study that they had just completed about why students leave computing programs.  The most common complaints were the same ones that drove the design of Media Computation, e.g., that students found the CS courses irrelevant and boring.  Tony explicitly called for exploring contextualized computing education.  Retention is clearly on their minds nowadays, and that’s one of the outcome variables that MediaComp has had the most success influencing.  They are also quite concerned with drawing more students into computing, especially among women and members of underrepresented minorities. Barbara was pressed for her lessons learned on CS outreach in all three cities.  I don’t think ACDICT is telling Australian computing departments to do as we do, but they are asking computing departments to think about these issues.

One of the most interesting interventions I heard about from ACDICT was their ACDICT Learning and Teaching Academy (ALTA), whose goal is: “To contribute to improvement in the perception of and the actual quality of learning and teaching across the ICT disciplines.” I thought the “perception of and actual quality” combination was particularly realistic!  I heard a presentation on ALTA in Melbourne, where they emphasized that they want to address “Grand Challenges” in computing education.  I’m interested in watching to see what they identify!


Yes, we found Australia interesting and fun.  We took our two daughters. (Our son is a Sophomore at Georgia Tech, and had class through Wednesday before Thanksgiving, so couldn’t afford the time off.)  We pet kangaroos in Melbourne; had dinner in an Australian home in Sydney that sat on a peninsula directly between Sydney Harbor and the ocean, with beautiful views to both sides; and saw a play at the Sydney Opera House Friday before heading home.  Melbourne was so interesting (Royal Botanic Gardens are a must see), Adelaide was so beautiful (probably the prettiest campus I’ve yet visited), and Sydney is probably really nice when it isn’t raining for four days straight.  The visit to the Sydney Hyde Park Barracks was a highlight for me, learning about how Sydney grew into the amazing city it is from a society of convicts.  I’m really glad that we got the opportunity to visit and learn about Australia.  Thanks to the ACM Distinguished Speakers Program, ACDICT, and funding from our hosts.  Our hosts took great care of us, and we’re grateful: Catherine Lang at Swinburne, Katrina Falkner at U. Adelaide, and Judy Kay at U. Sydney.

November 28, 2011 at 10:03 am Leave a comment

Slow pace of higher-ed reform costs STEM majors: CS needs context

The argument being made here in this NYTimes piece suggests that the sluggish response to calls for higher-education reform has a real cost.  We know how to make STEM classes more successful, in terms of motivation and learning, but higher-education institutions are not willing to change.

What does this mean for Computing Education?  How do we avoid being “too narrow” and having a “sink or swim” mentality? We are encouraged to have CS education that has “passion” and includes “design projects for Freshmen.”  Sounds to me that contextualized computing education, which includes efforts like Media Computation and robotics, is the kind of thing they’re encouraging.

No one doubts that students need a strong theoretical foundation. But what frustrates education experts is how long it has taken for most schools to make changes.

The National Science Board, a public advisory body, warned in the mid-1980s that students were losing sight of why they wanted to be scientists and engineers in the first place. Research confirmed in the 1990s that students learn more by grappling with open-ended problems, like creating a computer game or designing an alternative energy system, than listening to lectures. While the National Science Foundation went on to finance pilot courses that employed interactive projects, when the money dried up, so did most of the courses. Lecture classes are far cheaper to produce, and top professors are focused on bringing in research grants, not teaching undergraduates.

In 2005, the National Academy of Engineering concluded that “scattered interventions” had not resulted in widespread change. “Treating the freshman year as a ‘sink or swim’ experience and accepting attrition as inevitable,” it said, “is both unfair to students and wasteful of resources and faculty time.”

via Why Science Majors Change Their Minds (It’s Just So Darn Hard) –

November 7, 2011 at 8:18 am 5 comments

Fixing Our Math Education with Context

Sounds pretty similar to the contextualized computing education that we’ve been arguing for with IPRE and Media Computation.  The argument being made here is another example of the tension between the cognitive (abstract conceptual learning) and the situative (integrating students into a community of practice).

A math curriculum that focused on real-life problems would still expose students to the abstract tools of mathematics, especially the manipulation of unknown quantities. But there is a world of difference between teaching “pure” math, with no context, and teaching relevant problems that will lead students to appreciate how a mathematical formula models and clarifies real-world situations. The former is how algebra courses currently proceed — introducing the mysterious variable x, which many students struggle to understand. By contrast, a contextual approach, in the style of all working scientists, would introduce formulas using abbreviations for simple quantities — for instance, Einstein’s famous equation E=mc2, where E stands for energy, m for mass and c for the speed of light.

Imagine replacing the sequence of algebra, geometry and calculus with a sequence of finance, data and basic engineering. In the finance course, students would learn the exponential function, use formulas in spreadsheets and study the budgets of people, companies and governments. In the data course, students would gather their own data sets and learn how, in fields as diverse as sports and medicine, larger samples give better estimates of averages. In the basic engineering course, students would learn the workings of engines, sound waves, TV signals and computers. Science and math were originally discovered together, and they are best learned together now.

via How to Fix Our Math Education –

October 6, 2011 at 8:09 am 8 comments

Visiting CMU: Historical Home of CS1-for-All

It’s Spring Break at Georgia Tech this week.  Last week was crammed full of midterm grading. Now that it’s Spring, I’m traveling north to colder climates.

Today, I’m at Carnegie Mellon University to speak in their Program for Interdisciplinary Education Research (PIER) today, and at the “EdBag” tomorrow.  I’m excited (and a bit nervous) — I’ve never spoken here at CMU before.  Leigh Ann Sudol-DeLyser is my student host, and she gave me a great tour of the campus yesterday.  For today’s talk, I’m giving a variation of my “Meeting the Computing Needs for Everyone” talk (describing Brian Dorn’s work and the role of contextualized computing education in this goal), but with special attention to the Alan Perlis lecture from 1961.

I re-read that chapter again yesterday.  Wow — it’s really clear that the idea of teaching everyone an introductory course on CS has its home here, at the University that grew out of Carnegie Tech.  While I had remembered that Peter Elias of MIT had pushed back against the idea of such a course as being unnecessary, I hadn’t remembered how J.C.R. Licklider and Perlis responded.

  • Elias argues that programming is just a “mental chore” that the computer should be able to take care of for us: “If the computers, together with sufficiently ingenious languages and programming systems, are capable of doing everything that Professor Perlis describes—and I believe they are (and more)—then they should be ingenious enough to do it without the human symbiote being obliged to perform the mechanical chores which are a huge part of current programming effort, and which are a large part of what must now be taught in the introductory course that he proposes.”
  • Licklider emphasizes what might be possible with this new kind of language. “Peter, I think the first apes who tried to talk with one another decided that learning language was a dreadful bore…But some people write poetry in the language we speak.”
  • Perlis makes a really interesting pedagogical rebuttal. He says that what he really wants to teach are abstractions, and a course in programming is the best way he can think of doing that. He also says (not quoted below) that he has no evidence for this, but believes it strongly. “The purpose of a course in programming is to teach people how to construct and analyze processes…A course in programming is concerned with abstraction: the abstraction of constructing, analyzing, and describing processes…The point is to make the students construct complex processes out of simpler ones….A properly designed programming course will develop these abilities better than any other course.”
  • John McCarthy (father of Lisp) also responded in opposition to Elias. “Programming is the art of stating procedures. Prior to the development of digital computers, one did not have to state procedures precisely, and no languages were developed for stating procedures precisely. Now we have a tool that will carry out any procedure, provided we can state this procedure sufficiently well. It is utopian to suppose that either English or some combination of English and mathematics will turn out to be the appropriate language for stating procedures.”  Interesting how McCarthy and Licklider, as in Donald Knuth’s Turing award lecture, talk about programming as art.

Leigh Ann told me that the “EdBag” is a place to play with new and incomplete ideas.  I’m planning to talk about the challenge of producing more high school CS teachers, including alternatives like Dave Patterson’s proposal.  I’ve been thinking a lot about using a worked examples approach, informed by Ashok Goel’s structure-behavior-function model of design cognition.

Tomorrow, I fly to DC and spend two days reviewing NSF proposals.  Still trying to get the rest of my proposals read today, and all the reviews written tonight.  Thursday night, I’ll get back home to Atlanta where it really is Spring already.

March 21, 2011 at 7:16 am 4 comments

Contextualized computing ed works — it’s just not there

CS Ed folk are mailing each other about the Washington Post article on CS Education (just in time for SIGCSE this week!).  Eli’s class at Virginia Tech sounds great, and the project is an excellent example of how context can help to highlight the relevance of computing education — what we’ve been saying with Media Computation and IPRE for years.  Jan Cuny’s comment is highlighting the more significant bit.  Sarita Yardi highlighted in her email to Georgia Tech’s CSEd mailing list that the reporters missed Jan’s bigger issue, and I think Sarita is right.

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.

“The sky is falling in a sense that we’re not engaging kids that we could be engaging,” said Jan Cuny of the National Science Foundation, who is helping to formulate a new AP course. While the current program focuses mostly on Java programming, a new class being piloted at several colleges would focus on problem-solving and creating technology instead of just using it.

“We’ll have no problem interesting kids in doing these things,” Cuny said. “The tough part is getting into the schools.”

via Computer science programs use mobile apps to make coursework relevant.

March 7, 2011 at 6:14 pm 5 comments

MediaComp Java from within the browser

Below is a note that Barb just send to MediaComp teachers. In-browser IDE’s are pretty important for high schools. Some high school districts we work with have draconian IT policies, e.g., by default, ALL websites are disabled from the firewall, and only certain websites are permitted. In these schools, nothing can be installed on any computer. In our children’s school district, all computers are wiped every night and reloaded from a base image. If you (as the teacher) don’t have your program loaded into the image, you either reinstall every day, or you just can’t install Scratch, eToys, Alice, etc. Thus, having tools available through the browser helps teachers to use software apps without dealing with IT.

Dr. Jam Jenkins recently made a prototype of JavaWIDE that includes the Media Computation libraries, and he would like some teachers to try it out and give feedback.  The site is at  For those who have never heard of JavaWIDE, it is an online IDE that supports collaboration, concurrent editing, and version control.

For more information:
Dr. Jam Jenkins
Faculty Administrator
Assistant Professor of Information Technology
Georgia Gwinnett College

February 17, 2011 at 11:13 am Leave a comment

Georgia Tech seeks new Chairs of CS and IC

Since Georgia Tech’s School of Interactive Computing has a track record of innovation in computing education (including the Institute for Personal Robotics and Media Computation), a search for a new Chair of that School is relevant for this blog.  Anybody want the job of being my boss?

Four years after the formation of the School of Computer Science and the School of Interactive Computing, it is time to launch national searches for the people who will lead these Schools to their next level of excellence. I’m writing to announce that such searches will commence immediately, and to thank Ellen Zegura and Aaron Bobick for the superlative work they’ve done in leading the Schools since 2007. Both stayed on as chairs to ensure the College’s smooth transition to its new dean, and I appreciate the dedication they’ve shown since my arrival last summer (truthfully, since Rich DeMillo’s departure in 2008).

Under Ellen’s leadership, the School of Computer Science has significantly strengthened its faculty in such areas as Networking, Theory, Architecture and Information Security, while providing the College with a solid CS foundation to our overall computing curriculum. Also, Ellen has been one of the driving forces behind our Computing for Good initiative, which already has done such wonderful work in Atlanta, across the Southeast and even internationally, and which also has truly distinguished the College from our peers

Under Aaron’s watch, the School of Interactive Computing became a national leader in areas such as HCC, Augmented Reality, Graphics & Animation, Games, Computing Education, Vision and Robotics. Beyond that, the School has played an integral role in helping us to expand the very definitions of Computing, working with partners both inside and outside Georgia Tech to “redefine the human experience of computing.” That IC is seen to have a cohesive academic identity is due in no small part to the expansive vision Aaron brought to his job.

Our distinguished colleagues Henrik Christensen and Dana Randall have agreed to lead the two search committees. Henrik will lead the CS committee, while Dana will head the IC committee. I want to encourage all of you to participate in every step of the process: by inquiring of your colleagues around the country to see who might be interested, by submitting possible candidates to the search committees, by meeting and evaluating the candidates who visit campus, and by communicating your opinions of the candidates to the committee. Finally, I also encourage all College faculty to consider whether you have the vision, desire and commitment to lead your School—both searches will be open to any and all internal candidates.

Let me close by thanking Ellen and Aaron again for their leadership and for agreeing to continue serving as chairs during this search. Whoever the next CS and IC chairs will be, they will lead fine Schools ready to step into elite company, and that is due largely to the energy and vision Ellen and Aaron demonstrated.

Best regards,

Zvi Galil
John P. Imlay Jr. Dean of Computing

February 15, 2011 at 12:49 pm Leave a comment

Dancing and singing humans, even more than robots

I finished up the “Georgia Computes!” report on our first four years just before the holidays.  One of the evaluation studies we did was to look at the contexts that we use in our Girl Scout workshops and how those contexts influenced student attitude change.  We asked students before and after each event (for everything — summer camps, YWCA afterschool activities, as well as Girl Scout camps) whether they agreed or disagreed with seven statements:

1. Computers are fun
2. Programming is hard
3. Girls can do computing
4. Boys can do computing
5. Computer jobs are boring.
6. I am good at computing.
7. I like computing
8. I know more than my friends about computers.

In the one study, we looked at a set of workshops over a multi-year period with over 600 Girl Scouts involved.  We looked at where we got changes in attitudes, and computed the effect size. Here’s one of the tables of results:

This table shows the number of Girl Scout workshops that we had with each context, the number of large/medium/small effect sizes that we saw, and total number of effects. What we see here is that Pico Crickets and Scratch have the most effect: The most large effects, and the most overall effects.  We’ve done a lot of different things in our robotics workshops, from following mazes to singing-and-dancing robots.  Lego Mindstorm workshops (seven different ones, using a variety of activities) had only small effects on changes in attitudes.  This isn’t saying that Lego robotics can’t be an effective context for making more positive Girl Scouts’ attitudes about computing.  We are finding that it is harder than with these other contexts.  I hope that someone replicates this study with even larger n, showing an approach to using Lego Robotics with Girl Scouts that leads to many large effects on attitudes.  We just haven’t been able to find that yet.

Over the Christmas holiday, our extended family has been playing a bunch of great Wii games, including karaoke, “Just Dance,” and various Rock Band games.  Barb and I discovered this morning that we were thinking the same thing about these games: What a great context for learning programming! Barb was noting that “Just Dance” uses a small icon to represent (abstraction!) a particular dance move, which is then repeated several times (iteration!).  I was thinking about the great computing and media ideas required to build this kind of software: From digital signal processing to detect pitch, to the ubiquitous computing ideas involved in sensing the world (e.g., the accelerometers used to detect body motion in the dance games).  We could use an inquiry-based approach to teach computing through these (amazingly popular!) games, e.g., “How do you think Rock Band figures out if you’re singing the right pitch?” and “How accurate do you think the motion detection in ‘Just Dance’ is?”

This is how we should identify contexts to use in contextualized computing education.  What are the application areas that students find intriguing?  What computing ideas do we want to teach and can be taught with those areas?  Even though we may like robotics, if the student audiences that we’re seeking don’t, then it’s not a great context.  There are many great contexts out there, many that are even more popular and even more powerful than what we use today.  People like to sing and dance, even more than making robots sing and dance.  Learning to build software to support that sounds like a great context.

December 31, 2010 at 8:26 am 7 comments

Computing Education Research vs Real Education Research

Occasionally, I have been told that I made a mistake in my career, by focusing on computing education research rather than “real” computer science research.  My first CS advisor at Michigan (before Elliot Soloway got there) told me that I shouldn’t do a joint CS-Education degree, because no CS department would hire me.  (Maybe he was right — I was hired into the College of Computing.)  Yesterday was the first time I was hit from the other side.

An Education school professor asked me why I was bothering with this computer science education stuff rather than doing “real” education research.  The things I’m working on have already been done in education research. His point was well-taken.  My contextualized computing education is a variation of situated learning, which is well-known among education researchers.  Much of the work we’re doing (e.g., in developing assessments, in investigating teacher identity or student misperceptions) is work that has already happened in other fields, so doing this work doesn’t advance our understanding of education.  Frankly, he thought I was wasting my time.

I had two answers for him.  First, pedagogical content knowledge (PCK) differs from domain-to-domain, by definition.  PCK is the knowledge that a teacher has on how to teach for a given domain.  It’s more than knowing the domain — it’s knowing what problems students encounter and what approaches have worked best to explain concepts and skills in that domain.  Developing PCK is a domain-by-domain activity, and it’s necessary for creating methods courses to teach new teachers.  Second, I suggested that I had a practical lever in computer science.  I am a computer science teacher, and I know how to talk to computer science teachers.  I don’t have any particular insight into how to express education ideas to humanities or social studies teachers, for example. So, I have greater opportunity to create change in computer science education.

As always happens, I thought of my best answer after we parted ways.  Somebody has to interpret general findings for a given domain.  I don’t read medical journals to figure out how best to feed my family.  I don’t read satellite imagery to figure out what tomorrow’s weather is going to be.  Some computer scientist had to read the general education literature to explain (and explore — since it’s not always obvious) how a particular insight or finding applies to CS teaching, and then try it so that others could be convinced.  That’s part of what I do.  I’m not inventing as much as I’m interpreting and applying.  That, too, is scholarship.

I should point out that I don’t completely agree with his point.  Yes, most of what I do is neither education research (in general) or computer science research (in general), but it does happen from time-to-time.  Our paper on developing an educational Wiki in the 2000 CSCW is (I believe) the first report on the Wikis in the ACM digital library.  Sometimes work at the edge of disciplines can advance or influence the work within the discipline.

Work in domain-specific educational research is typically disliked by many practitioners’ of the domain.  That’s been true in physics, chemistry, biology, and engineering.  It’s also the case that domain-specific educational research is sometimes rejected by those in education.  This was just my first time experiencing it.


November 23, 2010 at 8:16 am 17 comments

In Toronto, Talking About CS Ed and CS4All

I’m writing this from a hotel room in Toronto, Ontario.  (This year, it seems like I can’t stay in the US for too long.)  I’m visiting the University of Toronto for the next couple of days.

Tomorrow, I’m giving an informal talk on my view of the State of CS Education Research.  I’m excited about this talk.  It’s not a well-practiced, well-groomed talk, e.g., it has the most slides with just bulleted text of any talk I’ve given in years.  They scheduled a couple hour block for me to tell stories of my recent students’ work, and about the work that I want to do next, which is not something I do in my standard DLS/keynote talk.  For you who read this blog, you already know what I’m going to say — it’s about my students’ work, about worked examples and phonics, and about why textbooks are bad for CS Ed, and why distance education is important for CS10K.

On Tuesday, I’ll give my talk on “Meeting Everyone’s Need for Computing” where I’ll argue that teaching everyone on campus about computer science is an old but good idea.  I’ll update a version of the talk that I gave in Jinan — various versions of the talk are at if you’re interested.

When I get back (somewhere in the boundary of very late Tuesday and very early Wednesday), I’ll be recovering, and then it’ll be the American Thanksgiving holiday.  (I understand Toronto had its “Santa Claus Parade” this morning, so it’s officially already the Christmas season here.)  I expect to spend less time blogging this week than usual.  Happy Thanksgiving!


November 21, 2010 at 10:01 pm Leave a comment

Beyond Contextualized Computing Education: Problem Finding

I finally finished Jerome Bruner’s Towards a Theory of Instruction on the flight home from China yesterday.  It was a fitting conclusion to this crazy travel year I’ve had — I started it on the flight to Doha last May, reading it during the take-offs/landings when I couldn’t read ebooks.  I found it fascinating, but feel that I need to re-read it to get more out of it.

I found a lot of support for the contextualized computing education approach that we have been developing. Bruner talks about the value of context, and how school so often separates purpose-in-context from school.

“Note though, that in tens of thousands of feet of !Kung film, one virtually never sees an instance of ‘teaching’ taking place outside the situation where the behavior to be learned is relevant.”

“The change in the instruction of children in more complex societies is twofold. First of all, there is knowledge and skill in the culture far in excess of what any one individual knows. And so, increasingly, there develops an economic technique of instructing the young based heavily on telling out of context rather than showing in context.” (p.151)

Bruner points out that this can be an advantage, if managed well:

“At the same time, the school (if successful) frees the child from the pace setting of the round of daily activity. If the school succeeds in avoiding a pace-setting round of its own, it may be one of the great agents for promoting reflectiveness.” (p. 152)

Bruner’s solution, though, goes well-beyond teaching within a context, as we do in Media Computation.  I think Bruner would like MediaComp based on the quote below, but he goes on to propose a goal of “problem finding.”

“By school age, children have come to expect quite arbitrary and, from their point of view, meaningless demands to be made upon them by adults–the result, most likely, of the fact that adults often fail to recognize the task of conversion necessary to make their questions have some intrinsic significance for the child. [Ed: That’s what I think we do in MediaComp.] Children, of course, will try to solve problems if they recognize them as such. But they are not often either predisposed to or skillful in problem finding, in recognizing the hidden conjectural feature in tasks set them. But we know now that children in school can quite quickly be led to such problem finding by encouragement and instruction.” (p. 157-158.)

That’s a really interesting idea.  How would we encourage students to do problem finding as a way of learning computer science?

I think we do that already with our open-ended homework assignments.  When we ask students to build a photo collage, a music piece, or a movie, with only general goals, we find that students often develop goals for themselves that are beyond what we have explained how to do. So, students explore, play, and invent new kinds of effects to achieve their goals. That’s problem-finding.

Bruner’s examples of problem finding go beyond that, though.  He talks about students looking at specific lessons (about cheetahs attacking baboons), then extrapolating from there to exploring broader issues, e.g. of ecological balance, driven by student questions and hypotheses.  Could we do that in computer science?

Here’s one way to build a problem-finding pattern in a computer science course: We show students a particular lesson, which could be contextualized (like using weighted-sums to create a transparency effect) or decontextualized (like a binary search). Then we discuss, and encourage students to think about problems that might be solved with techniques like these, or to find similar problems that could be solved with variations of these techniques. Maybe you saw a commercial or video game that used a different use of transparency (fog or smoke?), or maybe you’re wondering how other kinds of searches work.  This would be an interesting way of moving beyond contextualized-computing education.

A challenge for making this work in computer science is, as the essay in the Chronicle mentioned, kids today don’t think much about how things work, about how to take things apart.  Will students be able to figure out problems that can be solved with computer science techniques that they know?  Will students be able to think about the ways that computational things are built?  This feels like an interesting open research question, like what the Commonsense Computing research group does: how do people think about how computational artifacts work?  How do users think that Google works, or how spellchecking works, or how fonts are drawn on the screen?  Do users even see the computation that needs to be explained?  If not, they will have a hard time finding the problems that computer science can help them solve.

Bruner is suggesting an interesting teaching technique that we should try in computer science.  That’s a design-based research question.  There’s another research question about how well novices might think about computational problems, about whether they even see the solvable problems.  Bruner’s notions of “encouragement and instruction” can help them see it, but that will take some exploration to develop.

November 10, 2010 at 11:33 am 2 comments

Human brains “mirroring” computer actions

I’ve been reading about “mirror neurons” lately, trying to understand why we like stories.  I understand why we like to tell stories — there are lots of evolutionary advantages to wanting to communicate, to get others to pay you attention.  But why do we like to consume stories?  What advantage is there to wanting to hear others’ stories?  This is relevant for my contextualized computing education notions — why does wrapping a story around CS1 lead to increased retention?  One possible answer is that we are wired to mimic others’ activities, through our mirror neurons, potentially leading to vicarious learning.

Which is why the findings linked below are interesting.  Turns out that our mirror neurons fire even when watching a computer do something.

Surprisingly, when players were observing their competitor make selections, the players’ brains were activated as if they were performing these actions themselves.  Such ‘mirror neuron’ activities occur when we observe the actions of other humans but here the players knew their opponent was just a computer and no animated graphics were used.  Previously, it has been suggested that the mirror neuron system supports a type of unconscious mind-reading that helps us, for example, judge others’ intentions.

Dr Howard-Jones added: “We were surprised to see the mirror neuron system activating in response to a computer.  If the human brain can respond as though a computer has a mind, that’s probably good news for those wishing to use the computer as a teacher.”

via Bristol University | News from the University | GSOE and Department of Computer Science.

October 20, 2010 at 8:41 pm Leave a comment

Impact of Robots on CS1 retention: Mixed but promising

This blog post at Technology Review caught my eye. The post itself is disappointing.  They make claims (like the below) that are NOT made by the paper.  The figure is right, but the claim is too strong.

The paper actually does a really good job of making the claim carefully.  ONE of the semesters where they used the robots had a dramatic rise in retention rates, but not another. Comparing the study YEAR to previous years doesn’t show a significant difference in retention rate.  However, that one semester is promising and well worth continued exploration.

The results were profound: retention rates for the 2009 computer science classes in which the Finch was used shown below, in red increased by 25 percent.

via Technology Review: Blogs: Guest Blog: Robots Make Computer Science Fun Again.

July 20, 2010 at 11:10 am Leave a comment

What AI can do for you

I gave the opening, invited talk at the first Educational Applications of Artificial Intelligence conference this morning.  I was a bit nervous, since I am not an AI researcher or teacher.  Rather than pretend to be and be exposed as an imposter, I instead focused on challenges in CS Education that I thought AI could help with.

Here were the three I identified (slides in PPT and PDF at

  • Matching context to student. The evidence of the value of context at engaging students and improving success rates is pretty strong.  But there is also evidence that the same context doesn’t work for everyone.  If there were a bunch of contextualized courses available (robotics, media computation, video games, Engineering problem-solving), how would you match students to the context that would work best for them?  I don’t know what variables are most important to use there.  Interest? Future career choices?  Previous computing background? Previous mathematics background?
  • Helping students find the help that they need with understanding programs. Brian Dorn has just completed his study of end-user programmers using his case library to solve programming tasks.  One of his stories was about how these programmers sought out information on the Web without background knowledge about computing.  They did searches on the programs that they were trying to understand — on things like variable names and function (not API) names.  Is it surprising that searching for “javascript foo” didn’t get them much help?  Given a program, there are things that we could do to help these end-user programmers find the right kinds of information at a higher level than just the variable name.  We could note “This program seems to be using the Java-2D API — I’d look for that” or “This program is using exception-handling — that would be a good phrase to search for.”
  • Teach computing concepts without requiring programming. The new APCS course has some challenging objectives, like having students understand issues of data and knowledge representation in terms of abstraction and about what makes for a usable user interface.  A goal in this course is to minimize learning programming, at least, traditional programming languages.  Some of these learning objectives (like knowledge representation) belong to AI.  Others could use AI help, like maybe creating a simple agent that could “test the usability” of user interfaces that the students might design.  We’re going to need a lot of content generated to help teach these objectives, with minimal programming, and without resorting to boring, rote memorization.  (“Here, go memorize the Apple Human Interface Guidelines…”)

Thanks to Mehran Sahami and the rest of the EAAI organizing committee for inviting me!

July 13, 2010 at 4:26 pm Leave a comment

Carl Wieman plenary at SIGCSE 2010: The brain’s a muscle?

Carl Wieman‘s talk at SIGCSE 2010 was intriguing.  I really liked the teaching practices that he recommended.  I didn’t buy his explanations for why they were good.  But as I’ve started poking at the references he provided, I’m finding that there is evidence to support at least some of his claims.  I’m downloading more in order to dig deeper.

(Yeah, I was too far away for this photo.)

Carl said that the goal of his institute is both to have students learn more effectively and to make teaching more efficient and rewarding for the teacher.  He recommends a model of carefully identifying the components of expertise, measuring the development of expertise in students, and iteratively experimenting and assessing to get it right.  He identified expert competence as having lots of facts, having a good knowledge organization framework, and monitoring one’s own understanding and learning. The goal of science education is to get students to be more like that.

Carl first presented evidence that we’re not doing well now.  He cited a paper by Richard Hake describing a 6,000 student survey (Yes! Three zeroes there!) showing that “On average, students learn less than 30% of concepts that they did not already know in lecture classes. Lecturer quality, class size, and institution doesn’t matter.”  With improved methods, that can rise to 40-60% or better.

He gave four principles of effective learning and teaching. (1) Motivation which he said is “essential, but often neglected.” (2) Connecting with and building on prior thinking. (3) Applying what is known about memory (where he recommended Robert Bjork’s work). And (4) explicit authentic practice of expert thinking.  This last part is where he went into an argument that I didn’t quite buy.  He said that “Brain development is much like muscle development.” It takes lots of practice, and that’s why motivation is so important.

Now, when I took cognitive science in the late 1980’s and early 1990’s, I was told explicitly that the brain was not a muscle and shouldn’t be thought about that way.  It wasn’t about practice.  So, I started digging into it.  Looks like Wieman is right!  There are these really intriguing studies showing that simply telling kids that the brain is like a muscle leads to better learning.  Of course, it’s still controversial, and it’s not about the brain being biologically similar to muscle. It’s about thinking about brain development as being like muscle development. Practice matters.

Carl pointed out errors that we make as teachers by not taking all of this into account.  For example, weighting exams most heavily in determining course grades is counter-productive.  Making exams important leads to cramming, which does result in better exam performance — and minimizes long term retention of that information.  You learn it only for the exam.

Then Carl claimed that lectures tend to cover too much material. We should try to teach less per lecture because there are limits on short term memory.  We shouldn’t try to teach more than seven concepts in a lecture, because we can only hold 7+/-2 subjects in short term memory.  Now, I don’t buy this one.  The duration of short term memory is at most 10 minutes, or as short as 30 seconds.  That’s not lecture-length times.  Cognitive load is certainly a critical issue, but I don’t know of evidence (and can’t find any yet) supporting the argument for no more than seven concepts per 60-90 minute lecture.

Several of the methods that Carl promoted really resonated with me.  His argument that we should start top-down, with an interesting problem and then explain what’s needed to solve it (as opposed to bottom-up, providing background knowledge, and then problems that integrate that knowledge) meshes with our notions of contextualized-computing education.  He’s a big fan of peer learning and the use of “clickers” in classrooms.  He provided lots of pointers to what he called “more scientific forms of teaching.”

Carl’s talk has me digging into areas of educational psychology than I’ve not looked at in a long time.  He’s also got me thinking about how to implement some of his methods in computing classrooms.  How do we give “quick, effective” feedback on homework?  No way is entering a whole program into an IDE then interpreting Java error messsages counts as “quick and effective”!  (Alex Repenning had a great quote from a student in his talk: “Computer science class?  That’s where the teacher gives you a program on the board, then you type it in, and it doesn’t work.”)  How do we provide homework or in-class activity that gets at expert computing thinking skills, like debugging and testing, without overloading that with also having to design programs, write programs, enter programs, and fight the compiler’s error messages?

Another great note keynote well worth the price of admission, er, the time and expense to travel to Milwaukee for SIGCSE 2010.

March 12, 2010 at 6:32 pm 16 comments

Older Posts Newer Posts

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 8,988 other followers


Recent Posts

Blog Stats

  • 1,869,003 hits
July 2021

CS Teaching Tips