Posts tagged ‘robots’
Stuart Wray has a remarkable blog that I recommend to CS teachers. He shares his innovations in teaching, and grounds them in his exploration of the literature into the psychology of programming. The quote and link below is an excellent example, where his explanation led to me a paper I’m eager to dive into. Stuart has built an interesting warm-up activity for his class that involves robots. What I’m most intrigued by is his explanation for why it works as it does. The paper that he cites by Jones and Burnett is not one that I’d seen before, but it explores an idea that I’ve been interested in for awhile, ever since I discovered the Spatial Intelligence and Learning Center: Is spatial ability a pre-requisite for learning in computer science? And if so, can we teach it explicitly to improve CS learning?
The game is quite fun and doesn’t take very long to play — usually around a quarter of an hour or less. It’s almost always quite close at the end, because of course it’s a race between the last robot in each team. There’s plenty of opportunity for delaying tactics and clever blocking moves near the exit by the team which is behind, provided they don’t just individually run for the exit as fast as possible.
But turning back to the idea from James Randi, how does this game work? It seems from my experience to be doing something useful, but how does it really work as an opening routine for a programming class? Perhaps first of all, I think it lets me give the impression to the students that the rest of the class might be fun. Lots of students don’t seem to like the idea of programming, so perhaps playing a team game like this at the start of the class surprises them into giving it a second chance.
I think also that there is an element of “sizing the audience up” — it’s a way to see how the students interact with one another, to see who is retiring and who is bold, who is methodical and who is careless. The people who like clever tricks in the game seem often to be the people who like clever tricks in programming. There is also some evidence that facility with mental rotation is correlated with programming ability. (See Spatial ability and learning to program by Sue Jones and Gary Burnett in Human Technology, vol.4(1), May 2008, pp.47-61.) To the extent that this is true, I might be getting a hint about who will have trouble with programming from seeing who has trouble making their robot turn the correct direction.
This is actually pretty scary. The goal of these reviews is to “ensure efficiency and eliminate duplication,” especially between federal, private, and philanthropic programs. Does that mean that FIRST Robotics makes all other research and outreach for robotics in CS education “duplication”?
Subcommittee Chairman Larry Bucshon (R-IN) highlighted that the COMPETES Reauthorization Act of 2010 requires the National Science and Technology Council Committee on STEM to develop and implement a 5-year strategic plan. This plan would specify and prioritize objectives and define the role of each of the government agencies which fund STEM programs and activities. In this process of strategic planning, Bucshon stated that he wanted to recognize the importance of private sector and non-profit collaborations in STEM education. He also noted that the Government Accountability Office (GAO) suggested that the Office of Science and Technology Policy (OSTP) should work with agencies to produce strategies that ensure efficiency and eliminate duplication and ineffective programs. The GAO also concluded in a 2012 report that there is a need for strategic planning in order to better manage the overlap of federal STEM education programs.
I buy this argument, and it’s more subtle than the recent 60 Minutes piece. Does the influx of robotics lead to more or fewer jobs? 60 Minutes says fewer jobs. In contrast, Henrik Christensen says more jobs. The difference is education. There are fewer lower-education jobs, but more higher-education jobs. So unless you ramp up education, it is fewer jobs.
That’s not to say the transition to this brave new world of robotics will be painless. Short-term upheaval is inevitable. For Exhibit A, look at the jobless recovery we find ourselves in today: Increased productivity has driven economic growth, yet unemployment rates remain stubbornly high. But most insiders seem to agree that if we look past the short term, the medium- and long-term benefits of the robotics revolution appear to be positive, not just in terms of economic growth but for job creation, too.
They also warn that the job creation part will require a keen focus on training and education for those low-skilled workers who get squeezed out of their jobs by robotics. Collectively, we ignore this warning at our own peril.
A common question I get about contextualized approaches to CS1 is: “How can we possibly offer more than one introductory course with our few teachers?” Valerie Barr has a nice paper in the recent Journal of Computing Sciences in Schools where she explains how her small department was able to offer multiple CS1’s, and the positive impact it had on their enrollment.
The department currently has 6 full time faculty members, and a 6 course per year teaching load. Each introductory course is taught studio style, with integrated lecture and hands-on work. The old CS1 had a separate lab session and counted as 1.5 courses of teaching load. Now the introductory courses (except Programming for Engineers) continue this model, meet the additional time and count as 1.5 courses for the faculty member, allowing substantial time for hands-on activities. Each section is capped at 18 students and taught in a computer lab in order to facilitate the transition between lecture and hands-on work.
In order to make room in the course schedule for the increased number of CS1 offerings, the department eliminated the old CS0 course. A number of additional changes were made in order to accommodate the new approach to the introductory CS curriculum: reduction of the number of proscribed courses for the major from 8 (out of 10) to 5 (this has the added benefit, by increasing the number of electives, of giving students more flexibility and choice within the general guidelines of the major); put elective courses on a rotation schedule so that each one is taught every other or every third year; made available to students a 4-year schedule of offerings so that they can plan according to the course rotation.
“Georgia Computes!” entered its “one year no-cost extension” stage last September — that means that we can tidy things up, write the last papers, do the last analyses, before all work (and all funding) ends this September. “Georgia Computes!” has been a statewide alliance, funded by the NSF’s Broadening Participation in Computing program. Our goal was to improve the quality of computing education and broaden participation in computing across the whole state. We started in 2006. Take a look at our external evaluator’s final report on “Georgia Computes!” and you’ll see that we still have lots of stories to tell, many of which haven’t yet made it to this blog, let alone to conference and journal publications.
To tie a bow on “Georgia Computes!” we held a poster session and reverse site visit at NSF in Arlington, Virginia yesterday. We and CAITE (Commonwealth Alliance for IT Education, the other statewide NSF BPC Alliance based in Massachusetts) brought 40 people and 12 posters to put on a show of the great work that has gone in our Alliances. You can see PDF’s of all the posters (watch out — 10Mb PDF), or just look at the list of posters. This poster session was a huge effort. We sent to NSF 40 people, from Massachusetts and Georgia, from Girl Scouts to high school teachers to community college vice presidents and to CS/CIS department chairs. We hauled out robots and music software, laptops and reprints of papers.
The NSF program managers in charge of our projects were happy with the turnout. We had fewer people show up than I had hoped for, but I guess it was more significant who showed up than how many. The poster session was started by Cynthia Dion-Schwarz, the deputy AD for CISE (that is, she’s the second-in-command for all CS-related funding at NSF). The deputy director for all of NSF, Cora Marrett, came down with a reporter and a photographer. We were thrilled when NSF asked if they could keep three of the posters, to show off internally.
The purpose of our visit wasn’t just the poster session, though. Both CAITE and GaComputes are coming to an end. The BPC Alliances program will no longer fund regional alliances. However, all changes to formal education pathways (e.g., public policy, articulation agreements, high school curricula) occur at the regional level. So CAITE and GaComputes are proposing a merger to create a national resource for regional change. We have proposed creation of the Expanding Computing Education Pathways (ECEP) Alliance, which will be a service organization to support states that want to make computing education reforms in their state, with professional development, access to an experts bureau, and funding. I shouldn’t say too much about a proposal currently under review at NSF (we submitted it in January — the largest and most complex proposal I’ve ever been part of), but this much was said publicly at the poster session yesterday. 11 of us were there for what’s called a “Reverse Site Visit.” A review team attended the poster session, listened to us explain our proposal (for some five hours), and is offering (and will offer, in a formal report) comments and critique on the effort, past and proposed.
It was a really long day, and it was the culmination of literally months of work. I am so grateful to all the poster presenters who flew to DC, to those who came to view the posters, to the reviewers and NSF program managers, and to the incredibly hard-working people at Georgia Tech and U. Mass-Amherst who pulled all of this together. We’ll know this summer if we get to take the next steps with ECEP. In any case, it’s been a great run with “Georgia Computes!”
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.
This is pretty exciting for us doing MediaComp. Tom Lauwers, who has been developing the Finch robot (from CMU), has tweak our Jython Environment for Students (JES) so that Finch support is built-in. This means that the various supports for Media Computation built into JES (e.g., visualizations for sounds and pixels) are available while programming the Finch in Python. It’s nice to see the Media Computation software getting picked up and used in new contexts!
Full instructions here:
The JES team has allowed us to repackage JES with Finch software libraries, so we now have an incredibly easy way to setup an environment for writing Finch programs in Python. To see how easy, check out our instructions and screencast, which takes you from downloading to writing and running a Finch program in five minutes.
JES (the Jython Environment for Students) was developed to support the Media Computation approach to introductory Computer Science education. Since it was designed for education, it is the perfect first Finch environment: it sports a detailed help section, an easy to use step-by-step debugger, and a number of built-in tools for creating programs that manipulate images, audio, and video. We are very excited to add JES to our list of supported software environments, and again thank the JES team for allowing us to use their hard work!