Posts tagged ‘computing for everyone’

Computational thinking abstracts too far from the computer: We should teach CS with inquiry

Judy Robertson has a blog post that I really enjoyed: What Children Want to Know About Computers. She argues that computational thinking has abstracted too far away from what students really want to know about, the machine.

Computational thinking has been a hugely successful idea and is now taught at school in many countries across the world. Although I welcome the positioning of computer science as a respectable, influential intellectual discipline, in my view computational thinking has abstracted us too far away from the heart of computation – the machine. The world would be a tedious place if we had to do all our computational thinking ourselves; that’s why we invented computers in the first place. Yet, the new school curricula across the world have lost focus on hardware and how code executes on it.

Her post includes pictures drawn by children about what they think is going on inside of the computer.  They’re interested in these things!  We should teach them about it.  One of the strongest findings in modern science education is that inquiry works. Students learn science well if it’s based in the things that they want to know. Judy argues that kids want to know about the computer and how code executes on the computer. We shouldn’t be abstracting away from that. We should be teaching what the kids most want to learn.

To be clear, I am not criticizing the children, who were curious, interested and made perfectly reasonable inferences based on the facts they picked up in their everyday lives. But I think that computer science educators can do better here. Our discipline is built upon the remarkable fact that we can write instructions in a representation which makes sense to humans and then automatically translate them into an equivalent representation which can be followed by a machine dumbly switching electrical pulses on and off. Children are not going to be able to figure that out for themselves by dissecting old computers or by making the Scratch cat dance. We need to get better at explicitly explaining this in interesting ways.

December 10, 2018 at 7:00 am 2 comments

MicroBlocks Joins Conservancy #CSEdWeek

This is great news for fans of GP and John Maloney’s many cool projects. MicroBlocks is a form of GP. This means that GP can be funded through contributions to the Conservancy.

We’re proud to announce that we’re bringing MicroBlocks into the Conservancy as our newest member project. MicroBlocks provides a quick way for new programmers to jump right in using “blocks” to make toys or tools. People have been proclaiming that IoT is the future for almost a decade, so we’re very pleased to be able to support a human-friendly project that makes it really easy to get started building embedded stuff. Curious? Check out a few of the neat things people have already built with MicroBlocks.

MicroBlocks is the next in a long line of open projects for beginners or “casual programmers” lead by John Maloney, one of the creators of Squeak (also a Conservancy project!) and a longtime Scratch contributor. MicroBlocks is a new programming language that runs right inside microcontroller boards such as the micro:bit, the NodeMCU and many Arduino boards. The versatility and interactivity of MicroBlocks helps users build their own custom tools for everything from wearables to model rockets or custom measuring devices and funky synthesizers.

Source: MicroBlocks Joins Conservancy

December 5, 2018 at 7:00 am Leave a comment

The systemic factors that limit Black participation in the Tech sector

I learned a lot from Kamau Bobb’s recent Atlantic article, “The Black Struggle for Technology Jobs.”  In it, he details the systemic factors that limit Black participation in the Tech sector.  He uses the possibility of Amazon’s HQ2 going to Atlanta as a framing.

After Atlanta made the shortlist of cities vying for Amazon’s second global headquarters, HQ2, it submitted a multibillion-dollar investment to try to seal the deal. (Other cities’ proposals were even bigger.) At stake is nothing less than the city’s economic future: HQ2 promises more than 50,000 high-tech jobs with an average salary of more than $100,000. With the tech industry looking like the future of all industry, Atlanta landing Amazon’s HQ2 would be a dream come true.

But a dream for whom? Highly educated people, particularly those with technical skills, are the ones who are really eligible for these prized jobs. People without that kind of education risk becoming even more marginalized in an increasingly tech-driven economy. In Atlanta, one of the most segregated cities in the United States, history has already largely determined who gets to benefit from the potential of Amazon.

In 2016, there was only one census tract in Atlanta where the population was more than 65 percent black, and where more than half the population age 25 or older had a bachelor’s degree or higher. In 2000, there were 10. Here, many black and brown students, and poor students of all backgrounds, receive a substandard education that does not prepare them for entry to the select colleges and universities tech companies draw their workforces from. Consequently, with or without Amazon’s investment, the city’s black population likely won’t land stem jobs unless they can gain access to the rigorous educational paths required to compete for them. In Atlanta and the many other American cities still scarred by decades of racist education policies, the future of work is still largely defined by a past from which their residents of color can’t seem to break free.

I’m biased in favor of this article because one of the students he interviews in this piece is my daughter, Katie. I learned from Katie’s comments, too.  I knew that the public high school where we sent all three of our children was unusually diverse, yet it was a family conversation how the gifted/accelerated classes were almost all white and Asian.  Because of what Barb and I do, we kept an eye on the AP CS class at that high school, and were surprised every year at how few Blacks ever entered the class, despite the significant percentage of Black students in the school. I’m glad that, years later, Katie still thinks about those issues and why so few Black students made it into her AP classes.

 

December 3, 2018 at 8:00 am 2 comments

Literature is to Composition, as Computer Science is to Computational Literacy/Thinking

Coding_Literacy___The_MIT_Press

Annette Vee was visiting in Ann Arbor, and looked me up. We had coffee and a great conversation.  Annette is an English Professor who teaches Composition at University of Pittsburgh (see website here). She published a book last year with MIT Press, Coding Literacy: How Computer Programming is Changing Writing. (I’m part way through it and recommend it!) She knew me from this blog and my other writing about computational literacy. I was thrilled to meet someone who makes the argument for code-as-literacy with a real claim to understanding literacy.

One of the themes in our conversation was the distinction between literature and composition.  (I’m going to summarize something we were talking about — Annette is not responsible for me getting things wrong here.) Literature is about doing writing very well, about writing great works that stand the test of time. It’s about understanding and emulating greater writers.  Composition is about writing well for communicationIt’s about letters to Grandma, and office memos, and making your emails effective.  Composition is about writing understandable prose, not great prose as in literature. People in literature sometimes look down on those in composition.

There’s a similar distinction to be made between computer science as it’s taught in Universities and what Annette and I are calling coding/computational literacy (but which might be what Aman Yadav and Shuchi Grover are calling computational thinking).  Computer science aims to prepare people to engineer complex, robust, and secure systems that work effectively for many users. Computational literacy is about people using code to communicate, to express thoughts, and to test ideas. This code doesn’t have to be pretty or robust. It certainly shouldn’t be complex, or nobody will do it. It should be secure, but that security should probably be built into the programming system rather than expecting to teach people about it (as Ben Herold recently talked about).  People in computer science will likely look down on those teaching computational literacy or computational thinking. That’s okay.

Few people will write literature. Everyone will compose.

November 23, 2018 at 7:00 am 40 comments

When do we know that a programming course is not working for non-CS majors?

There’s a good discussion going on in Facebook that I wanted to make more public and raise as a question here.  The crush of undergraduates in CS today is making it difficult to offer tailored introductory CS courses to different majors.  The problem is particularly acute when designing instruction for future CS teachers.  If you put the CS teachers in the same course as the CS majors, it’s cheaper and easier — you just teach one big course, rather than multiple smaller courses. But is it as effective?

Some of my colleagues suggest that we can design undergraduate introductory computing courses that are effective for both non-CS and CS majors.  Here’s my question: How do you know when it’s not working?  At what point would you admit that the one course option isn’t working? It’s an interesting empirical question.

Here are some possible measures:

  • Learning is a tricky measure.  For any discipline, the majors in that discipline are more motivated to learn more than the outside-the-discipline majors. You can’t expect the non-CS majors to learn more than the CS majors.  Then again, the non-CS majors probably come in knowing less.  If you do pre- and post-tests on CS knowledge, do non-CS majors have as large of a gain as the CS majors?  I don’t know, but in any case, it’s not a great measure for deciding if a class is succeeding for the non-CS majors.
  • Taking more CS courses may be an effective measure, but only if you have more than one course that’s useful to non-CS majors.  If the rest of the classes are about software development, then non-CS majors will probably not want to go on, even if the intro course was effective and well-designed.
  • Retention is a reasonable measure.  If more of the non-CS majors are dropping out from the course than the CS majors, you may not be meeting their needs.
  • My favorite measure is relevance I argued in my blog post on Monday that programming is a practice that is relevant to many communities. Do the non-CS majors see the relevance of computing for them and their community after the introductory course?  If not, I don’t think it’s meeting their needs.
  • Another tricky measure is use. Should non-CS majors be able (after their first course) to build some program that they find useful?  Certainly, if you achieve that goal, you have also achieved relevance.  How do you judge useful?  CS faculty may not be good judges of what a non-CS major would find useful, and CS faculty are most likely going to assess in terms of code quality (e.g., modularization, appropriate variable and function/module names, commenting, code style, etc.), which I consider pretty unimportant for as a measure for the non-CS students’ experience in the first course.

What do you think?  How would you know if your intro course was meeting non-CS students’ needs?

November 9, 2018 at 7:00 am 13 comments

What would convince faculty in other disciplines that programming is useful?

Recently I came across an article from the journal Issues in Information Systems, “Faculty perspectives on the information technology and analytics requirements of business students.” The authors surveyed 204 business faculty from 20 different universities.  They found that “[N]early a third of respondents (32.6%) felt that computer programming skills should not be required at all. Interestingly, the same number (32.6%) also believe that Calculus should not be required of business students.”  Below is the table with the results.  About a third of faculty actually thought that all business students should take a three credit hour course in programming, but a third also felt that it shouldn’t be required at all. Details in the table below:

business-faculty

I’ve been working with the Georgia Department of Education on a new kind of pre-calculus course that uses computing to demonstrate the pre-calc concepts in a variety of contexts, e.g., scalar multiplication of a vector by reducing red in all the pixels in a picture, matrix multiplication by doing transforms of objects in 3-D space, periodicity of functions (like trigonometric functions) to generate sounds, etc. We did a careful mapping of each pre-calculus learning objective to relevant computing demonstrations, with multiple possible computing contexts for each pre-calculus learning objective. The course was rejected by the mathematics oversight board today. They didn’t buy it at all.  Among the responses: “The description of the course states that it is ‘designed to prepare students for calculus and other college level mathematics courses,’ which they believe it does not” and “Members feel that computer science is not mathematics and should not be replacing a mathematics course.”

I’m struck by these two stories.  For me, programming is this useful new notation that can enhance learning in many disciplines.  I’m swayed by the results with Bootstrap and with the CT-STEM effort at Northwestern. I hadn’t realized the extent to which the teachers in the non-CS disciplines were not buying the story.

  • Business faculty are clearly dubious about the benefits of programming for business students.  I wonder if they’ve done the studies about how many business school graduates use programming (from SQL queries and spreadsheet macros, to data analysis and even modeling and simulation) in their daily jobs.
  • Mathematics faculty are clearly dubious that (a) programming to apply mathematics topics leads to more mathematics learning and (b) computer science is even related to mathematics.

These create an interesting set of research questions to me. Why are faculty in non-CS disciplines dubious about the advantages of programming for their students?  What do they think programming is?  Maybe they’re right — maybe “programming” as we are currently defining it isn’t worth the credit hours for their students. How could we re-define programming (and programming languages and tools) to make it more useful?

October 26, 2018 at 7:00 am 33 comments

US National Science Foundation increases emphasis on broadening participation in computing

The computing directorate at the US National Science Foundation (CISE) has increased its emphasis on broadening participation in computing (BPC).  (See quote below and FAQ here.) They had a pilot program where large research grants were required to include a plan to increase the participation of groups or populations underrepresented or under-served in computing. They are now expanding the program to include medium and large scale grants. The idea is to get more computing researchers nationwide focusing on BPC goals.

CISE recognizes that BPC requires an array of long-term, sustained efforts, and will require the participation of the entire community. Efforts to broaden participation must be action-oriented and must take advantage of multiple approaches to eliminate or overcome barriers. BPC depends on many factors, and involves changing culture throughout academia—within departments, classrooms, and research groups. This change begins with enhanced awareness of barriers to participation as well as remedies throughout the CISE community, including among principal investigators (PIs), students, and reviewers. BPC may therefore involve a wide range of activities, examples of which include participating in professional development opportunities aimed at providing more inclusive environments, joining various existing and future collective impact programs to helping develop and implement departmental BPC plans that build awareness, inclusion, and engagement, and conducting outreach to underrepresented groups at all levels (K-12, undergraduate, graduate, and postgraduate).

In 2017, CISE commenced a pilot effort to increase the community’s involvement in BPC, by requiring BPC plans to be included in proposals for certain large awards [notably proposals to the Expeditions in Computing program, plus Frontier proposals to the Cyber-Physical Systems and Secure and Trustworthy Cyberspace (SaTC) programs]. By expanding the pilot to require that Medium and Large projects in certain CISE programs [the core programs of the CISE Divisions of Computing and Communication Foundations (CCF), Computer and Network Systems (CNS), and Information and Intelligent Systems (IIS), plus the SaTC program] have approved plans in place at award time in 2019, CISE hopes to accomplish several things:

  • Continue to signal the importance of and commitment to BPC;
  • Stimulate the CISE community to take action; and
  • Educate the CISE community about the many ways in which members of the community can contribute to BPC.

The long-term goal of this pilot is for all segments of the population to have clear paths and opportunities to contribute to computing and closely related disciplines.

Read more at https://www.nsf.gov/pubs/2018/nsf18101/nsf18101.jsp

August 31, 2018 at 7:00 am 1 comment

Older Posts


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

Join 4,352 other followers

Feeds

Recent Posts

Blog Stats

  • 1,587,048 hits
December 2018
M T W T F S S
« Nov    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

CS Teaching Tips