Let’s program in social studies classes: NSF funding for our work in task-specific programming languages

September 14, 2020 at 7:00 am 16 comments

If we want all students to learn computer science (CS for All), we have to go to where the students are. Unfortunately, that’s not computer science class. In most US states, less than 5% of high school students take a course in computer science.

Programming is applicable and useful in many domains today, so one answer is to use programming in science, mathematics, social studies, and other non-CS classes. We take programming to where the students are, and hope to increase their interest and knowledge about CS. I love that idea and have been working towards that goal for the last four years. But it’s a hard sell. I told the story in 2018 (see post here) about how the mathematics teachers rejected our pre-calculus course that integrated computing. How do we help non-CS teachers to see value in computing integrated into their classes?

That’s the question Tammy Shreiner at Grand Valley State and I get three years to explore, thanks to a new grant from the US National Science Foundation in the research strand of the “CS for All” Program. Tammy teaches a course on “Data Literacy for Social Studies Teachers” at GVSU, and she (with her colleague Bradford Dykes) have been building an open educational resource (OER) to support data literacy education in social studies classes. We have been working with her to build usable and useful data visualization tools for her curriculum. Through the grant, we’re going to follow her students for three years: From taking her pre-service class, out into their field experiences, and then into their first classes. At each stage, we’re going to offer mentoring and workshops to encourage teachers to use the things we’ve showed them. In addition, we’ll work on assessments to see if students are really developing skills and positive attitudes about data literacy and programming.

Just a quick glimpse into the possibilities here. AP CS Principles exam-takers are now about 25% female. AP US History is 56% female exam takers. There are fives times as many Black AP US History exam-takers as AP CSP exam-takers. It’s a factor of 14 for Hispanic students. Everyone takes history. Programming activities in a history class reach a far more diverse audience.

I have learned so much in the last couple of years about what prevents teachers from adopting curriculum and technology — it’s way more complicated than just including it in their pre-service classes. Context swamps pre-service teaching. The school the teacher goes to influences what they adopt more than what they learned pre-service. I’ve known Anne Ottenbreit-Leftwich for years for her work in growing CS education in Indiana, but just didn’t realize that she is an expert on technology adoption by teachers — I draw on her papers often now.

Here’s one early thread of this story. Bahare Naimipour, an EER PhD student working with me, is publishing a paper at FIE next month about our early participatory design sessions with pre-service social studies teachers. The two tools that teachers found most interesting were CODAP and Vega-Lite. Vega-Lite is interesting here because it really is programming, but it’s a declarative language with a JSON syntax. The teachers told us that it was powerful, flexible — and “overwhelming.” How could we create a scaffolded path into Vega-Lite?

We’ve been developing a data visualization tool explicitly designed for history inquiry (you may remember seeing it back here). We always show at least two visualizations, because historical problems start from two accounts or two pieces of data that conflict.

As you save graphs in your inquiry to the right, you’re likely going to lose track of what’s what. Click on one of them.

This is a little declarative script, in a Vega-lite-inspired JSON syntax. It’s in a task-specific programming language, but this isn’t a program you write. This is a program the describes the visualization — code as a concise way of describing process.

We now have a second version where you can edit the code, or use the pull-down menus. These are linked representations. Changing the menu changes the code and updates the graph. Changing the code updates the menu and the graph. Now the code is also malleable. Is this enough to draw students and teachers into programming? Does it make Vega-Lite less overwhelming? Does it lead to greater awareness of what programming is, and greater self-efficacy about programming tasks?

We just had our first in-service teacher workshop with these tools in August. One teacher just gushed over them. “These are so great! How did I not know that they existed before?” That’s easy — they didn’t exist six months ago! We’re building things and putting them in front of teachers for feedback as quickly as we can, in a participatory design process. We make lots of mistakes, and we’re trying to document those, too. We’re about applying an HCI process to programming experience design — UX for PX.


If you know a social studies teacher who would want to keep informed about our work and perhaps participate in our workshops, please have them sign up on our mailing list. Thank you!

Entry filed under: Uncategorized. Tags: , , , , , .

Proposal #3 to Change CS Education to Reduce Inequity: Call a truce on academic misconduct cases for programming assignments Award-winning papers at ICER 2020 explore new directions and point towards the next work to do

16 Comments Add your own

  • 1. Robin Andrews  |  September 14, 2020 at 7:16 am

    It often surprises me how little cross-curricula coding happens in education, even in the obvious places like Maths. Why in the modern era this topic at least explored with programming? And of course all the other areas mentioned here. Seems very un-progressive to me.

    Reply
    • 2. Mark Guzdial  |  September 14, 2020 at 9:43 am

      There are many blog posts to be written on this topic, Robin. I have found very few non-CS teachers who are willing to work with me to develop programming activities for their classrooms. There are lots of reasons. We don’t have very good tools for use in non-CS contexts. For a teacher to invite in a programming activity, they have to see programming as a tool that might improve their students’ learning — which requires recognizing that some learning activities could use improvement. The reasons that we don’t see more cross-curricula coding are technical, social, and human.

      Reply
  • 3. Anders S  |  September 14, 2020 at 9:23 am

    Very cool work! Congratulations, Mark!

    What I also like about it is that it’s not hard to imagine how this could be used for adults. For example, I could see how a variant of this could be used with office workers.

    I can also see how you might be able to do something similar w Web AR/VR/XR — eg, building a similar framework on top of A-Frame

    Reply
  • 4. alanone1  |  September 14, 2020 at 9:42 am

    I’ve been holding off to see if anyone will complain about the UI and UX for this system and these users. (And about the documentation, etc.) ….

    Reply
    • 5. Mark Guzdial  |  September 14, 2020 at 9:51 am

      Hi Alan,

      I see the complaints as part of the process. My collaborator, Tammy, is producing some amazing “documentation” (which seems an inadequate word — closer to “learning materials). She’s building a complete curriculum to support social studies teachers in teaching data literacy. We’re building our tools to support her curriculum, minimizing friction where ever possible. We have hours of transcripts from teachers that we’re analyzing, to document the complaints because those are part of a participatory design process. We’re also identifying needs for other tools, e.g., teachers telling us what they try to do with computing in their classrooms and where it breaks. I’m drawing on HCI methods and research more than I ever have before.

      Reply
      • 6. alanone1  |  September 14, 2020 at 10:14 am

        For example: do you want the code to look like this? Do you want the students to have to type? To remember what they should type?

        However, perhaps it is the manipulation of the UI to the extreme left that produces the code? It’s hard to tell from the above …

        Reply
        • 7. Mark Guzdial  |  September 14, 2020 at 10:45 am

          Yes, manipulation of the UI to the extreme left produces the code and updates the graph. Editing the code updates the UI and the graph. These are multiply-linked representations.

          Yes, I explicitly did not go into detail on the tool, nor provide links to them. This is a snapshot of work in progress.

          Reply
  • 8. Briana Morrison  |  September 14, 2020 at 11:22 am

    Congrats on the grant – I have no doubt that another great strand of research will be produced – maybe something to rival Media Comp!

    Reply
  • 9. Rebecca Luebker  |  September 15, 2020 at 3:19 pm

    I am a high school social science teacher that teaches 8th grade coding. I have seen a shift in how I teach government, economics, and history from my experience in teaching coding. I find that computational thinking lends to different critical view of social science. Data science is an area where I see so much potential for my students to connect the two. Several of my former students are pursuing degrees in Computer Science and Economics, it just seems like there is an awesome opportunity here. Congratulations on this grant!

    Reply
  • […] Let’s program in social studies classes: NSF funding for our work in task-specific programming lan…: […]

    Reply
  • […] me, and Tammy Shreiner. This work came long before the NSF work that we just got funded for (see blog post here), but it’s in the same line of […]

    Reply
  • […] available here.) This paper is the first one about our work with social studies teachers since we received NSF funding. It was also a report on our last face-to-face participatory design session (in March 2020) before […]

    Reply
  • […] the chunks — but they were not doing much reasoning about Python. In some sense, she defined a task-specific programming language whose components happened to be defined in terms of visible lines of Python […]

    Reply
  • […] Programming languages, which I’ve blogged about here (here’s a thread of examples here and here’s an announcement of funding for the work in social studies). We now refer to the project as Teaspoon Computing or […]

    Reply
  • […] computational supports for helping social studies teachers to teach data literacy and computing(see post here). We’re excited about what we’re doing and what we’re learning. Here’s an update on where […]

    Reply

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed


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

Join 11.4K other subscribers

Feeds

Recent Posts

Blog Stats

  • 2,096,612 hits
September 2020
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  

CS Teaching Tips