Posts tagged ‘computing education’
I’ve raised the concern before that the CS for All effort might mean “CS for only the rich” (see post here). Our data from Georgia suggest that few students are actually getting access to CS education, even if there is a CS teacher in the school (see post here). Kathi Fisler, Shriram Krishnamurthi, and Emmanuel Schanzer offer a Blog@CACM post where they consider how we make sure that #CS4All is equitable.
Mandating every child take a computing class is a great way to ensure everyone takes CS, but very few states, cities, or even school districts are in a position to hire enough dedicated CS teachers or offer dedicated CS classes to reach every child. Recent declarations from several major districts that “every child will learn to code” often place impossible burdens on schools. Similarly, few schools can afford to offer CS programs that require cutting-edge computers, expensive consumables, or technology that requires significant maintenance.
To truly achieve CS4All Students in a sustainable way, equity and scale are issues that must be built in by design. Similarly, initiatives have to think about differently-abled users from scratch, not just bolt them on as an afterthought. Accessibility needs to be designed into software, curriculum, and pedagogy from the earliest stages.
The “move fast and break things” culture of computing is no help here. Right now, computing education has enormous attention. That day will pass. By the time we get around to focusing on equity, we may have depleted the energy left to overhaul computing curricula. Instead, we have to think this through at the very outset. Another computing principle is that products typically get one shot at gaining users’ attention. For the foreseeable future, this is that one shot for computing education.
Top business leaders, 27 governors, urge Congress to boost computer science education – The Washington Post
I saw on Facebook that Hadi Partovi was at Congress. Now I see why — there’s an effort underway to get Congress to fund more in CS education. I’m wondering what they want to get funded. Incentives for teachers? Professional development? Pre-service education? Does someone know the details?
Despite this groundswell, three-quarters of U.S. schools do not offer meaningful computer science courses. At a time when every industry in every state is impacted by advances in computer technology, our schools should give all students the opportunity to understand how this technology works, to learn how to be creators, coders, and makers — not just consumers. Instead, what is increasingly a basic skill is only available to the lucky few, leaving most students behind, particularly students of color and girls.
How is this acceptable? America leads the world in technology. We invented the personal computer, the Internet, e-commerce, social networking, and the smartphone. This is our chance to position the next generation to participate in the new American Dream.
Survey for CS Faculty on use of Evidence-based Instructional Practices: Guest blog post from Scott Grissom
Clearly an important topic — I’m sharing this here, with thanks to Scott.
The SIGCSE Committee on Evidence-based Instructional Practices is investigating the most commonly used teaching practices in CS education (such as classroom activities, student learning goals and assessment techniques). We are replicating a study from physics education that surveyed over 800 faculty. We have already used the validated instrument in a pilot study with twelve institutions and have received 160 responses so far.
Rather than simply send a survey link to this mailing list that might create a skewed sample, we are inviting entire CS departments to survey their members. Our goal is to survey instructors from many 2-year, 4-year, private, public, research and teaching institutions.
The project will allow us to accomplish three important objectives:
- Provide a baseline of instructional practices used in CS higher education.
- Compare CS instructional practices with other STEM disciplines.
- Inform efforts to reform CS education by increasing the adoption of evidence-based instructional practices.
WILL YOU INTRODUCE US TO YOUR COLLEAGUES?
Best survey practices have shown that an introduction from a trusted colleague increases response rates. This is where you can help! Are you willing to support the CS education community by introducing us to your colleagues and encouraging them to complete the survey?
Please contact Scott Grissom BY FRIDAY APRIL 15 if you are willing to help, and we will provide more information about what we will ask you to do.
SIGCSE Committee on Evidence-based Instructional Practices
– Scott Grissom, Grand Valley State University, email@example.com
– Sue Fitzgerald, Metropolitan State University, firstname.lastname@example.org
– Renée McCauley, College of Charleston, email@example.com
– Laurie Murphy, Pacific Lutheran University, firstname.lastname@example.org
Brian Drayton has now written a couple of posts critical of the CS for All initiative (one is linked below, and here’s another one), and his points are well taken. In my book on Learner-Centered Design of Computing Education, I consider several possible reasons for teaching CS to everyone. I prefer the same ones that he does, and I agree that much of the initiative is poorly justified. I do not believe that we should put CS into all schools in order to make high school graduates “job-ready” (see the White House release using that phrase).
I agree that “everyone should code” is both unrealistic and poorly justified, as it has currently been advocated. I think we could make more progress (both in expanding people’s understanding of computer science or computation, and in empowering people to adopt such knowledge as a valuable tool for growth, creativity, and employment) if we did a better job envisioning what we’d like a classroom to look like that is deeply conversant with the tools and the insights of computer science in the same way that the classroom is already deeply infused with the tools and insights of literacy and numeracy.
NYPost: The folly of teaching computer science to high school kids–CS teaching and the teacher shortage
I’ve raised my concerns about where we’re going to find enough teachers for the NYC initiative (see blog post here). I found it interesting that the New York Post is raising the a related concern. They’re going one step further than I did. In general, we have a national shortage of teachers. Will growing CS teachers be stealing teachers away from math and science?
For instance, who the heck is going to teach it? There is already a shortage of qualified math and science teachers across the country. And let’s stipulate that the pool of people able to teach computer science is much smaller than those who can teach biology. And then there’s this: What kind of recent graduate with any knowledge of computer science would volunteer to teach in the New York public schools? They make oodles more money in business and get oodles more respect and opportunities for merit-based advancement in a private or parochial school.
Welcome back from Memphis and SIGCSE 2016! At this year’s conference, we heard many stories about skyrocketing student interest in computer science and the difficulty many colleges and universities are having in meeting that demand. For several years now, evidence has been building that academic computer science is heading toward a capacity crisis in which the pressures of expanding enrollment overwhelm the ability of institutions to hire the necessary faculty. Those signs are now clearer than ever.
The challenges involved in developing the necessary capacity are not easy. Fortunately, they are also not entirely new. Academic computer science has faced similar capacity crises in the past, most notably in the mid 1980s and the late 1990s. Each of those periods saw an increase in student interest in computer science at a pace so rapid that universities were unable to keep up.
For better or worse, I have had a ringside seat during each of these enrollment surges. In the mid 1980s, I was chairing the newly formed department of Computer Science at Wellesley College. During the dot-com expansion in the late 1990s, in addition to directing the undergraduate program at Stanford, I was a member of the ACM Education Board and a contributor to the National Academies study panel convened to address the situation.
In the current crisis, I have been asked to offer my historical perspective in many different venues. I was one of the authors — along with Ed Lazowska at the University of Washington and Jim Kurose at the National Science Foundation — of a talk on this issue at the 2014 Snowbird Conference and the National Center for Women in Information Technology’s 10th Anniversary Summit earlier that year. Along with Tracy Camp, who is the cochair of the Computing Research Association’s committee to study the impact of rapidly increasing enrollments and who presented a panel discussion at this year’s SIGCSE, I have been appointed to the National Academies’ Committee on the Growth of Computer Science Undergraduate Enrollments, which holds its first face-to-face meeting in two weeks.
After listening to the audience comments at the SIGCSE panel on the CRA effort, it is clear that many people struggling to keep up with the increased enrollments are still having trouble convincing their administrations that the problems we face are real and more than a transient maximum in a cyclical pattern. In many ways, the difficulty administrators have in appreciating the severity of the problem is understandable because our situation is so far outside what is unfamiliar to most academics. It is hard for most people in universities to imagine a field in which the number of open positions exceeds the number of applicants by a factor of five or more. Similarly, it is almost impossible to imagine that a faculty shortage could become so extreme that universities and colleges would be forced to cut enrollments in half, despite high demand from both students and prospective employers. Both of those situations, however, are part of the history of academic computer science. The crisis our field faces today is at least as serious as it has been at any time in the past.
It occurred to me that it might help many of you make the case for more resources if I shared a white paper on the history of the crisis that I wrote earlier in the year, originally to make the case at Stanford but now also to support the deliberations of the National Academies’ committee. I have put the white paper on my web site, both as a single PDF report and as a web document with internal links to facilitate browsing. The two versions of the document are:
- PDF document http://cs.stanford.edu/people/eroberts/CSCapacity.pdf
- HTML document http://cs.stanford.edu/people/eroberts/CSCapacity/
I welcome any comments that you have along with ideas about solutions that I can share with the full National Academies’ committee.
Charles Simonyi Professor of Computer Science, emeritus
Another of the breakouts that I was in at the recent Dagstuhl seminar on assessment in CS learning focused on how we teach and assess in CS classes social and professional practices. This was a small group: Andy Ko, Lisa Kaczmarczyk, Jan Erik Moström, and me.
Andy and his students have been studying (via interviews and surveys) what makes a great engineer.
- They’re good at decision-making.
- They’re good at shifting levels of abstraction, e.g., describing how a line of code relates to a business strategy.
- They have some particular inter-personal skills. They program ego-less-ly. They have empathy, e.g., “not an asshole.”
- Senior engineers often spend a lot of time being teachers for more junior engineers.
Since I’ve worked with Lijun Ni on high school CS teachers, I know some of the social and professional practices of teachers. They have content knowledge, and they have pedagogical content knowledge. They know how to teach. They know how to identify and diagnose student misunderstandings, and they know techniques for addressing these.
We know some techniques for teaching these practices. We can have students watch professionals, by shadowing or using case-based systems like the Ask systems. We can put students in apprenticeships (like student teaching or internships) or in design teams. We could even use games and other simulations. We have to convey authenticity — students have to believe that these are the real social and professional practices. An interesting question we came up with: How would you know if you covered the set of social and professional practice?
Here’s the big question: How similar are these sets? They seem quite different to me, and these are just two possible communities of practice for students in an intro course. Are there social and professional practices that we might teach in the same intro CS — for any community of practice that the student might later join? My sense is that the important social and professional practices are not in the intersection. The most important are unique to the community of practice.
How would we know if we got there? How would you assess student learning about social and professional practice? Knowledge isn’t enough — we’re talking about practice. We have to know that they’d do the right things. And if you found out that they didn’t have the right practices, is it still actionable? Can we “fix” practices while in undergrad? Maybe students will just do the right things when they actually get out there?
The countries with low teacher attrition spend a lot of time on teacher on-boarding. In Japan, the whole school helps to prepare a new teacher, and the whole school feels a sense of failure if the first year teacher doesn’t pass the required certification exam. US schools tend not to have much on-boarding — at schools for teachers, or in industry for software engineers (as Begel and Simon found in their studies at Microsoft). On-boarding seems like a really good place, to me, for teaching professional practice. And since the student is then doing the job, assessment is job assessment.
The problems of teaching and assessing professional practice are particularly hard when you’re trying to design a new community of practice. We’d like computing to be more diverse, to be more welcoming to women and to people from under-represented groups. We’d want cultural sensitivity to be a practice for software professionals. How would you design that? How do you define a practice for a community that doesn’t exist yet? How do you convince students about the authenticity?
It’s an interesting set of problems, and some interesting questions to explore, but I came away dubious. Is this something that we can do effectively in school? Perhaps it’s more effective to teach professional practices in the professional context?