Posts tagged ‘undergraduate’

My Blog@CACM post this month is on the AAAS symposium I attended on undergraduate STEM education (see post here). The symposium set up for me a contrast between computing education and other STEM education. In math and science education, faculty are more likely to get continuing professional development and to value education more than CS faculty.

Why is it different in CS? In the blog post, I suggest that part of the issue is maturation of the field. But I have another hypothesis — I suggest that most CS teachers, especially at the undergraduate level, don’t think of themselves as teachers.

In my book Learner-Centered Design of Computing Education, I use Lave & Wenger’s situated learning theory as a lens for understanding motivations to pursue computing education. Lave & Wenger say every learner aims to join a community of practice. Learners start out on the periphery of the community, and work their way towards the center, adopting the skills, values, and knowledge that those in the center hold. They might need to take classes because that’s what the community values, or maybe they do an apprenticeship. The community of practice provides the learner and the practitioners a sense of identity: “I belong with this group. I do this practice. This is who I am.”

Lijun Ni taught me the value of teacher identity. Someone who says “I’m a math teacher” (for example) will join math teacher organizations, will seek out professional development, and will more likely be retained longer as a teacher. That’s their identity.

I believe that many science and math teachers (even at the undergraduate level) feel a sense of identity as teachers. Even at research universities, those teaching the intro courses in mathematics and science are likely teachers-first. They know that they are mostly no preparing future mathematicians, biologists, chemists, and physicists. They are preparing students for their chosen professions, perhaps in engineering, medicine, or computer science. The math and science teachers belong to a community of practice of teachers, e.g., they have a goal to be like the best teachers in their profession. They have an identity as teachers, e.g., they strive to be better math and science teachers.

I suspect that CS teachers feel a sense of identity as software developers. They see themselves as programmers primarily. They see themselves as producing future programmers. They take pride in what they can do with code. They have a sense of guardianship — they want the best and brightest in their field.

There’s a difference between CS teachers as programmers vs CS teachers. Programmers train other programmers. They learn new programming languages, new techniques of programming, the latest tools. Teachers teach everyone, and they learn how to be better at teaching. We need CS teachers to be teachers. It’s less important that they know the latest industry gadgets. It’s more important that they learn how to teach “all” about CS, and how to teach that CS better.

When Grady Booch came to SIGCSE 2007, I was surprised at how excited everyone was — people still talk about that visit (e.g., see the explanation for the BJC approach to computing). I realized that, for most of the people in the room, Grady was a role model. He was at the center of community that they most cared about. Note that Grady is not a teacher. He’s an exceptional software engineer.

There are serious ramifications of a teacher with an identity as a software engineer. I had a discussion a few months ago with one of our instructors, who told me, “I just don’t get why women would even want to be in computer science. Working in a cubicle is not a great place for women to be! They should get a better job.” I was shocked. I didn’t tackle the gender issues first. I started out trying to convince him that computer science doesn’t just lead to a cubicle. You could study computer science to become something other than a software developer, to work somewhere other than a cubicle. He wasn’t buying my argument. I realized that those cubicle jobs are the ones he wants to prepare students for. That’s where he imagines the best programmers working. He doesn’t want to teach computer science for whatever the students need it for. He prepares future programmers. That’s how he defines his job — a master software engineer with apprentice software engineers.

I am calling out undergraduate CS teachers in this post, but I suspect that many high school CS teachers see themselves as software developers (or as trainers of software developers), more than as teachers of computer science. I hear about high school CS teachers who proudly post on the wall the t-shirts of the tech companies who employ their former students. That’s a software developer focus, an apprenticeship focus. That’s not about teaching CS for all.

What would it take to shift the community of practice of CS teachers to value teaching over software development? It’s an important change in perspective, especially if we care about CS for all. Not all of our students are aiming for jobs in software development.

How did other STEM disciplines do it? How did they develop a culture and community of practice around teaching?

I’ve shared Eric’s insights into computing enrollments in the past (for example here and here). With his permission, I’m sharing his note after the recent SIGCSE 206 conference

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:

Dan is one of the best computer science teachers I know, and I strongly agree with the goals he describes below. I’m not sure how much intro courses can do to recruitmore diverse students. At Georgia Tech, Media Computation has been over 50% female since we started in 2003, but that’s because of what majors are required to take it and the gender distribution in those majors. I know that Harvey Mudd, Stanford, and Berkeley have grown their percentage of females, but their undergraduates get to choose their majors while on-campus. At schools like Georgia Tech, where students have to choose their major on the application form, the decision is made off-campus.

One clear thing we can do in undergraduate courses is retain more diverse students. In our BS in CS, we graduated 16% female BS in CS students in Spring 2015, which is pretty good. Taulbee Survey says that the national average is only 14.1% (see report here). But our enrollment in CS is 25% female. We lose a LOT of women who decide to try CS. I’ve talked about some of the reasons in past blog posts (see post here about bad teaching practices and here about my daughter’s experience in CS at Georgia Tech).

Dan Garcia says there’s another important issue: Once courses are created, educators must make sure they’re reaching a diverse audience. Women and minorities are grossly under-represented, not just in tech fields, but also in computer science classes.Teachers should shake the trees and reach out to more kinds of students, not just the student who’s doing well in math. And, he says, connect computer science to bigger, more controversial topics, Garcia says, because coding and data are connected to issues of power. With the persistent digital divide, he says, educators must ask, “What does that mean for equity? What does that mean for fairness? Privacy issues? Hopefully the curriculum brings equity as part of it,” he says.

The article below is from the Berkeley student newspaper, but it’s not just a Berkeley issue. Enrollment is surging, and schools have too few resources to meet demand. Dealing with the enrollment surge was a big topic at the ACM Education Council last month. Based on what I heard at last year’s meeting of the Ed Council, I predicted that the enrollment surge would like lead to less diversity in CS (see blog post here). This year, I came away with the sense that most attendees believe it’s quite likely. The issue now is measuring the impact and seeing what resources can be marshaled once there’s evidence that there has been damage to diversity. Both CRA and the National Academies are conducting studies about the impact of the enrollment surge. Right now, action is more about studying the impact than responding to the need — people might be willing to respond, but we have so few options. Google has funded several projects to invent new ways to respond (see blog post here), but those are just starting now. We won’t know for months if they’ll work.

When the culture at UC Berkeley simultaneously stresses the importance of a computer science education and heightens GPA requirements for the major, barriers to entry become increasingly difficult to overcome. More and more students entering UC Berkeley feel pressured to learn basic computer science skills to meet the needs of the postgraduation job market — a notion that the campus and its highly ranked computer science department encourage…But the upsurge in enrollment means fewer resources for beginner students, especially in terms of access to teaching assistants and professors.

The computer science department recently changed its requirements for petitioning for admission to the major: Students who entered UC Berkeley before this fall needed a cumulative GPA of 3.0 in the seven lower-division course requirements, whereas students who came in this fall need to complete, specifically, CS 61A, 61B and 70 with a cumulative GPA of 3.3. These are arguably the more difficult “weeder courses” within the prerequisites, and increasing the average required GPA from a B to a B+ makes a real difference for many deserving students hoping to earn a computer science degree. In CS 61A, for example, the past average is a 2.84, or a B-. Holding beginners to such a high standard, especially given the amount of pressure from an increasingly technologically focused society, is a tool to sort students into winners and losers rather than educate them.

Katrin was in our ICER DC this last August. She is trying to measure the expectations that software companies and universities have on BS in CS graduates. She has a survey on software development and the software development process. She asked me to share this message:

Hello,

my name is Kathrin Bröker and I’m research associate at the University of Paderborn, Germany (Working Group Computer Science Education).

My research focus is on competencies of computer science students. In this context I developed a survey, where I would like to figure out which expectations companies and universities have on graduates with a bachelor degree in computer science. The main focus is on software development and the software development process.

The below note was posted by Jeff Forbes to the SIGCSE Members list. What an interesting idea — funding to change a whole department!

NSF has posted a new solicitation for proposals, IUSE/Professional Formation of Engineers: Revolutionizing Engineering Departments (RED).

RED focuses on efforts to effect significant, systemic departmental change that impacts undergraduate student success in their formation as computer scientists or engineers. This program is particularly interested in efforts that address the middle two years of the four year undergraduate experience, during which students receive the bulk of their formal technical preparation. RED proposals need to engage the entire department, and the effort must be led by the chair/head of the department.

At our ECEP meeting after the NCWIT summit earlier this summer, Cheryl Kiras presented some data on community college enrollment that was really eye-opening for me.

This is from a fact sheet American Association of Community Colleges (available here). This is describing the percentage of all undergraduates in a group that are enrolled in community colleges. 56% of all Hispanic undergraduates were enrolled in community colleges in Fall 2012. 48% of all Black students, and 59% of all Native American students. Wow — that really supports the argument that if we want to broadening participation in University level computing, we need to improve the transfer and recruitment paths from Community Colleges into Universities. We can make it better at the University (and we should), but that’s only reaching half the students.