Posts tagged ‘computing for everyone’
Steps Teachers Can Take to Keep Girls and Minorities in Computer Science Education | Cynthia Lee in KQED News
So glad to see Cynthia Lee’s list (described in this blog post) get wider coverage.
Last summer, Cynthia Lee, a lecturer in the computer science department at Stanford University, created a widely-circulated document called, “What can I do today to create a more inclusive community in CS?” The list was developed during a summer workshop funded by the National Science Foundation for newly hired computer science faculty and was designed for busy educators. “I know the research behind these best practices,” said Lee, “but my passion comes from what I’ve experienced in tech spaces, and what students have told me about their experiences in computer science classrooms.”
Too often students from diverse backgrounds “feel that they simply aren’t wanted,” said Lee. “What I hear from students is that when they are working on their assignments, they love [computer science]. But when they look up and look around the classroom, they see that ‘there aren’t many people like me here.’ If anything is said or done to accentuate that, it can raise these doubts in their mind that cause them to questions their positive feelings about the subject matter.”
My ECEP colleagues at the University of Massachusetts Amherst, Rick Adrion and Renee Fall, led a successful NSF alliance called CAITE. One of CAITE’s most successful strategies to improve diversity at university-level CS was to make it easier for students to transfer from community colleges. Community colleges are much more diverse.
The latest reports from Google tell us more about the obstacles that CS students still face in moving from community colleges to bachelor’s degrees, and how to make it easier.
Our latest research shows that students who attend community colleges on the way to computer science (CS) bachelor’s degrees encounter many challenges and obstacles along the way. But there are many ways for community colleges and four-year colleges to work together and with industry to remove these obstacles and support students seeking to transfer into CS majors. Today, we are releasing two complementary research reports that explore the pathways that community college students follow to a bachelor’s degree in CS. The reports also examine the experiences of these students and the opportunities that exist or that might be created to ensure their successful career advancement. Longitudinal Analysis of Community College Pathways to Computer Science Bachelor’s Degrees investigates the national landscape of CS students at community colleges in order to better understand student behaviors and institutional characteristics that support or hinder community college students’ efforts to attain a CS bachelor’s degree. The companion report, Student Perspectives of Community College Pathways to Computer Science Bachelor’s Degrees, takes a complimentary in-depth and qualitative look at the experiences of students from underrepresented groups at community colleges in California, a state that enrolls one quarter of all community college students in the U.S.
African-Americans gain more in CS MS but not CS Bachelors: Minorities Gain Some Ground in CS&E Degrees
We’re seeing this in the AP CS data, too — more minority students are entering CS, but at different levels.
For African Americans, the picture in computer science is mixed. The share of bachelor’s degrees they receive has fallen off since the high point of 2007, but new data suggest that their share of master’s degrees surged for almost a decade before retreating somewhat after 2013. African Americans are actually overrepresented among Americans who receive master’s degrees.[i] Why? A report in Science Magazine cited this trend in Master’s degrees as early as 2011 and speculated that efforts to attract more African Americans into computer science graduate degrees were bearing fruit. That may well be true, but disappointing trends in bachelor’s degrees will surely thwart further progress in advanced degrees.
I disagree with the claim below “In the future, everyone is going to be a software engineer, but only a few will learn how to code,” but we need a better definition of what it means to “code” and to “program” (as discussed with respect to recent ITICSE 2016 papers). If you’re using tools like Hypercard (“low-code” platforms), isn’t that still programming? It’s certainly more than the no loops, conditionals, or variables that’s often seen in elementary school students’ use of Scratch. Those tools are not software engineering tools. Just because you’re developing software doesn’t mean that you’re doing software engineering.
We need a range of tools from no-code to low-code to software engineering support. It’s an insult to those who carefully engineer software to say that anyone who assembles software is an engineer.
A new industry is emerging to serve the Morts of the world by designing and selling what are called no-code or low-code platforms. Companies like Caspio, QuickBase, Appian, and Mendix are creating visual interfaces that enable people to essentially snap together blocks of software, and bypass the actual lines of code underlying those blocks (skilled developers can also dive into the code). With basic training, a non-technical employee can rapidly assemble software tools that solve business problems ranging from simple database queries to applications lashing together multiple legacy enterprise applications.
Forrester reports the sector earned $1.7 billion in 2015 and is on track to bring in $15 billion by 2020 as the majority of large companies adopt “Citizen Development” policies similar to the bring-your-own-device rules. Employees will be empowered to choose tools, and even partially assemble software, to solve their own business problems without IT approval.
Nice blog post from Mitchel. The wide walls metaphor is an argument for contextualized computing education. Computing is a literacy, and we have to offer a variety of genres and purposes to engage students.
But the most important lesson that I learned from Seymour isn’t captured in the low-floor/high-ceiling metaphor. For a more complete picture, we need to add an extra dimension: wide walls. It’s not enough to provide a single path from low floor to high ceiling; we need to provide wide walls so that kids can explore multiple pathways from floor to ceiling.Why are wide walls important? We know that kids will become most engaged, and learn the most, when they are working on projects that are personally meaningful to them. But no single project will be meaningful to all kids. So if we want to engage all kids—from many different backgrounds, with many different interests—we need to support a wide diversity of pathways and projects.
Stephen Wolfram has published an essay arguing for a programming language as key to teaching computational literacy. He says computational thinking — I think he means the same thing as I do with CL instead of CT. I agree with him, and made a similar argument in my book. He goes on to argue that Wolfram Language (and the Mathematica infrastructure behind it) is particularly good for this.
He may be right. I don’t know of any studies of the Wolfram Language in any setting. The idea of providing a programming language with such rich knowledge behind it is intriguing and promising — so much there for just about any kind of inquiry, for any kind of context.
Hadi Partovi, CEO of Code.org, wrote an essay in response, where he similarly agreed with Wolfram on the issues of what we’re trying to teach and the importance of a programming language to teach those concepts. I disagree with Hadi on his critique of Wolfram, which is that the Wolfram Language is functional and lacks loops and declarations, and is inappropriate for use with learners. It’s totally true that most professional software engineers use procedural programming. But that doesn’t mean we have to.
If we’re teaching computational literacy or computational thinking, it’s not clear why the practices of professional software engineers should influence what we teach or how we teach it. That’s not what we are teaching. I argue that we need to take a learner-centered approach, where we recognize that learners are not professionals or experts, and particularly in computing, may not want to become professional software engineers.
What gets used in daily practice by professionals is the result of historical and cultural factors that in no way imply that we made choices optimized what is best for learners. Fortran won over Lisp because (in part) we didn’t know how to compile Lisp efficiently, but we do now and we know how to teach Lisp well. C++ and then Java won over Pascal because of perceptions of what industry wanted, not because of data and not because Pascal was shown to be ineffective for learners. What we know about what is “natural” for learners when they are first thinking about programming strongly implies that Wolfram’s functional structures are easier for learners than loops and declarations. We should strive to make decisions for what we use in classrooms based on evidence, not on what is professional practice, nor what we decide based on social defense mechanisms.
More importantly, there is no “best” platform for teaching computer science. As a functional programming language, the Wolfram Language is fantastic for data analysis and exploration, but it can’t be used to create a traditional “app.” Most professional software engineers use procedural programming, using exactly the same concepts that Wolfram criticizes: loops, conditionals, event-handlers, and such. Without these concepts, none of today’s software would function. The debate about which is better—functional vs procedural programming—has raged for decades without an answer.
Google’s latest reports from their collaboration with Gallup lines up with Miranda Parker’s research interests in privilege in CS education (see preview of her RESPECT 2015 paper here). I invited her to write a guest blog post introducing the new reports. I’m grateful that she agreed.
Google, in collaboration with Gallup, has recently released new research about racial and gender gaps in computer science K-12 classrooms. A lot of the report confirms what we already knew: there are structural and social barriers that limit access to CS for black, Hispanic, and female students. I don’t mind the repeated results though–it helps form an even stronger argument that there is a dearth of diversity in computing classrooms across the country.
The report does highlight interesting tidbits that may not have been as obvious before. For example, black and Hispanic students are 1.5 and 1.7 times more likely than white students to be “very interested” in learning computer science. This knowledge, combined with the data that black and Hispanic students are less likely to have access to learning CS, creates a compelling argument for growing programs focused at these groups.
Research like this continues to push the envelope of what is known about racial and gender gaps in computer science. However, it may be time to dig deeper than visible identities and explore if there are other variables that, independently or together with the other traits, create a stronger argument for why the diversity gap exists. Does socioeconomic status better explain racial gaps? What about spatial ability? These are variables that we at Georgia Tech are looking at, as we hypothesize about what can be done to level the playing field in computing.
Today, we’re releasing new research from our partnership with Gallup that investigates the demographic inequities in K-12 computer science (CS) education in two reports, Diversity Gaps in Computer Science: Exploring the Underrepresentation of Girls, Blacks and Hispanics and Trends in the State of Computer Science in U.S. K-12 Schools. We surveyed 16,000 nationally representative groups of students, parents, teachers, principals, and superintendents in the U.S. Our findings explore the CS learning gap between white students and their Black and Hispanic peers as well as between boys and girls and confirm just how much demographic differences matter. We’re excited to share this data to bring awareness to issues on the ground in order to help expand CS education in meaningful ways.