Archive for November, 2015

Require CS at Universities before K-12: Building a computational community for everyone

The argument made in Wired is an interesting one, and I partially buy it.  Are high school and elementary schools the right places to teach programming to everyone?  Does everyone at that level need to learn to program?  What are we giving up by teaching coding? Here’s one possible scenario, a negative one but a likely one:  We push CS into K-12 schools, but we can’t get everywhere.  The rich schools are getting it first, so we run out of money so that we get to all rich schools and no poor schools.  Computing education is now making larger the difference between the rich and the poor.

So is it wrong to teach a person to code? No. I don’t deny that coding is a useful skill to have in a modern ubiquitous computing society. It can help people personalize and understand the devices and services they use on a daily basis. It’s also good news that methods for teaching kids how to code are improving and becoming more effective, or that kids can ostensibly learn on their own when left to their own devices. The problem is elevating coding to the level of a required or necessary ability. I believe that is a recipe for further technologically induced stratification. Before jumping on the everybody-must-code bandwagon, we have to look at the larger, societal effects — or else risk running headlong into an even wider inequality gap. For instance, the burden of adding coding to curricula ignores the fact that the English literacy rate in America is still abysmal: 45 million U.S. adults are “functionally illiterate” and “read below a 5th grade level,” according to data gathered by the Literacy Project Foundation. Almost half of all Americans read “so poorly that they are unable to perform simple tasks such as reading prescription drug labels.” The reading proficiency of Americans is much lower than most other developed countries, and it’s declining.

Source: Pushing People to Code Will Widen the Gap Between Rich and Poor | WIRED

Computational literacy is important, and school age is where to develop it. Programming can be a useful medium for learning the rest of STEM, so learning programming early can support later learning.

Eventually. That is the desired end-state.

We should focus on universal computing education in higher-ed before putting CS into K-12 classrooms: The problem is that we’re nowhere near that goal now.  Less than 10% of NYC schools offer any kind of computer science, and less than 10% of US high schools offer AP CS.  I argue that we should require computer science in colleges and universities in the US first, and then in K-12 classrooms, so that the teacher come out of undergraduate already knowing how to program and use it in their classes.  I worry that if we can’t make required computer science happen in higher ed, the costs for getting it into all of K-12 are too large — so only the rich will get it. I worry also about the kinds of arguments we make.  If we can’t make universal computational literacy happen in higher ed, what right do we have to force it on all the high schools and elementary schools?  “This isn’t good for us, but it’s good for you”?

The biggest challenge in growing computing education in K-12 is finding enough teachers.  Programs like TEALS are stop-gap measures.  We need to recruit teachers to meet the needs in NYC.  Most professional development programs are under-subscribed — there are lots of empty seats.  How do we convince teachers to go take extra classes in computing, especially if they’re already an established teacher in some other discipline?  If we taught everyone computing in undergraduate, we’d teach all the pre-service teachers.  We wouldn’t have to do extra in-service professional development.  (Pre-service education is much less expensive to implement than in-service.  In-service teachers get paid to attend workshops. Pre-service is funded by tuition.)

We absolutely should be doing research on how to put computing into K-12 schools. I am concerned about the costs of large scale implementation before we know what we’re doing — both in terms of making it work, and in what happens when it doesn’t.

Literacy starts with community: Situated learning is a theory which explains why people learn.  Students learn to join a community of practice.  They want to be like people that they admire, to adopt their values and practices.  Think about computing education from a situated learning perspective. Let’s imagine that reading has just been invented.  It’s a powerful literacy, and it would be great to teach it to young kids so that they can use it for their whole lives and all their years of schooling.  But if we try to teach it to them before many adults are reading and writing, it comes off as inauthentic.  You can imagine a child thinking, “Why should I learn to read?  The only people who read are monks and professors. I don’t want to be like that.”  If few people read, then few people write.  There’s not even much for the children to read.

I suspect that textual literacy was first learned by adults before it became a school subject.  Adults learned to read and write.  They wrote books and newspapers, and used reading in their daily lives.  Eventually, it became obvious that children should be taught to read.

Today, children don’t see a world of computational literacy.  Children don’t see many adults writing bits of code to do something useful or something beautiful or something enlightening.  You can imagine a child thinking, “Why should I learn to program?  The only people who program are geeky software developers and professors. I don’t want to be like that.  And even if I did want to be like them, the geeky software developers don’t use Scratch or Blockly or App Inventor.” Students today are not immersed in a world of code to explore and learn from. Most programs that are available to study are applications. Studying existing programs today is like learning to read only with legal documents or the Gutenberg Bible. Where are the McGuffy Readers of code, or the Dr Seuss of imaginative programs?  Those would be expected produces from a computationally literate society.  A generation of college-educated programming professionals would help to create that society.

If you want students to gain literacy, place them in a community that is literate.  That’s what Seymour Papert was talking about when he described Logo as a Mathland. We need a community of adults who program if we want children to grow up seeing programming as something natural, useful, and desirable.

The importance of getting it right: I was recently at a meeting for establishing a Framework for K-12 Computer Science Education, and Michael Lach spoke (see a description of him here). He warned curriculum writers and state/district leaders to go slow, to get it right.  He pointed out that if we get it wrong, administrators and principals will decide that “Computing can’t be taught to everyone. It really is just for the geeky white boys.”  And we’ll lose decades towards making computing education available to everyone.  (Lach’s talk was deep and insightful — I’ll say more about it in a future blog post.)  We have to get it right, and it’s better to go slow than to create computing education just for the rich.

November 30, 2015 at 8:10 am 23 comments

How many schools will honor the AP CSP attestation?

My Blog@CACM post this month is A Call to Action for Higher Education to make AP CS Principles Work. The Advanced Placement course on CS Principles becomes “real” this Fall 2016, and the first offering of the exam will be Spring 2017.  I expect that we in academic CS departments in the United States will soon be getting phone calls, “If we offer AP CSP and our students pass the exam, what will it count for at your school?”

When I talk to people who have worked on CSP about this issue, the question I get back in response is, “But there’s the attestation!”  Over 80 schools supported creation of the AP CS Principles course — see the list here.  The wording of the attestation varied by school, but makes these five points (taken from Larry Snyder’s page):

  1. It’s a substantive, important project — keep up the good work!
  2. We intend to give successful students credit at our school
  3. We intend to offer a comparable, content-rich course
  4. We intend to give successful students placement in a sequent course at our school
  5. [Optional] We are willing to have our school listed as supporting AP CS Principle

I don’t know.  My school currently has no plans for #2, 3, or 4, but we did sign the attestation.  (I’m working on coming up with a plan at Georgia Tech, but am not getting much traction.)  I don’t know about the status at other schools that signed the attestation.  I expect that Duke and Berkeley are going to follow-through, since they have done #3.  Some schools don’t give any or much credit for AP, so #2 may be out of the CS departments hands. I don’t know if there’s any legal requirement to follow through on the attestation.

November 27, 2015 at 8:13 am 14 comments

No Rich Child Left Behind, and Enriching the Rich: Why MOOCs are not improving education

When I talk to people about MOOCs these days, I keep finding myself turning to two themes.

Theme #1. Our schools aren’t getting worse.  The gap between the rich and the poor is growing.  We have more poorer kids, and they are doing worse because of everything, not just because of school.

Before we can figure out what’s happening here, let’s dispel a few myths. The income gap in academic achievement is not growing because the test scores of poor students are dropping or because our schools are in decline. In fact, average test scores on the National Assessment of Educational Progress, the so-called Nation’s Report Card, have been rising — substantially in math and very slowly in reading — since the 1970s. The average 9-year-old today has math skills equal to those her parents had at age 11, a two-year improvement in a single generation. The gains are not as large in reading and they are not as large for older students, but there is no evidence that average test scores have declined over the last three decades for any age or economic group.

The widening income disparity in academic achievement is not a result of widening racial gaps in achievement, either. The achievement gaps between blacks and whites, and Hispanic and non-Hispanic whites have been narrowing slowly over the last two decades, trends that actually keep the yawning gap between higher- and lower-income students from getting even wider. If we look at the test scores of white students only, we find the same growing gap between high- and low-income children as we see in the population as a whole.

It may seem counterintuitive, but schools don’t seem to produce much of the disparity in test scores between high- and low-income students. … It boils down to this: The academic gap is widening because rich students are increasingly entering kindergarten much better prepared to succeed in school than middle-class students. This difference in preparation persists through elementary and high school.

Source: No Rich Child Left Behind – The New York Times

Theme #2:  There are definitely tangible effects of MOOCs, as seen in the study linked below. They help rich white men find better jobs.  They help educate the rich.  They help a small percentage of the poor.

All the money being poured into developing MOOCs fuels the gap between the rich and the poor.  If you want to improve education generally, nationally or worldwide, aim at the other 90%.  MOOCs aren’t improving education. They enrich those who are already rich.

Using data from MOOCs offered by the University of Pennsylvania, Alcorn, Christensen and Emanuel were some of the first to suggest that MOOC learners were more likely to be employed men in developed countries who had previously earned a degree — countering the early narrative that MOOCs would democratize higher education around the world.

Source: Study finds tangible benefits for learners from Coursera’s massive open online courses | InsideHigherEd

Addendum:

Commenters pointed out that I didn’t make my argument clear.  I’m posting one of my comment responses here to make clearer what I was trying to say:

 

As Alan pointed out, the second article I cited only once says that MOOC learners are “more likely to be employed men in developed countries.” I probably should have supported that point better, since it’s key to my argument. All the evidence I know suggests that MOOC learners are typically well-educated, more affluent from the developed world, and male.

  • In the original EdX MOOC, 78% of the attendees had already taken the class before. (See full report here.)
  • Tucker Balch released demographics on his MOOC: 91% male, 73.3% from OECD countries, and over 50% had graduate degrees. (See post here.)
  • Still the most careful analysis of MOOC demographics that I know is the 2013 Penn study (see article here) which found, “The student population tends to be young, well educated, and employed, with a majority from developed countries. There are significantly more males than females taking MOOCs, especially in developing countries.”
  • As you know, Georgia Tech’s Online MS (OMS) in CS is 85% domestic (the opposite of our face-to-face MS, which actually serves more students from the developing world). (See one page report here.)

If your MOOCs have significantly different demographics, I’d be interested in hearing your statistics. However, given the preponderance of evidence, your MOOC may be an outlier if you do have more students from the developing world.

The argument I’m making in this post is that (a) to improve education, we have to provide more to the underprivileged, (b) most MOOC students are affluent, well-educated students from the developing world, and (c) the benefits of MOOCs are thus accruing mostly to people who don’t need more enrichment. Some people are benefitting from MOOCs. My point is that they are people who don’t need the benefit. MOOCs are certainly not “democratizing education” and are mostly not providing opportunities to those who don’t have them anyway.

 

November 25, 2015 at 8:38 am 23 comments

It’s not about “fixing women”! How Lucy Sanders tackles gender inequity: Data, research, humor

Lucy Sanders is one of my heroes, so I’m always happy to link to articles about her.  The point she’s making below is particularly interesting, and relates to previous posts about “grit” (see link here), and to the “lean in” phenomenon.

NCWIT isn’t just about getting women into tech jobs. It’s about getting women to share their perspective and knowledge. It’s about making sure women are not avoiding those leadership jobs or shirking from innovation because of something called unconscious bias.”There’s a big conversation going on now with what we call ‘fixing women.’ You hear things like ‘If women were just more confident.’ Or ‘If women were only better risk takers.’ We don’t subscribe to that. And we don’t subscribe to men being the biased, evil ones because research shows that all of us have this bias about who does technology,” Sanders said. “The ultimate goal, of course, is to make sure women and men are innovating equally in technology.”

Source: How Lucy Sanders tackles gender inequity: Data, research, humor – The Denver Post

November 23, 2015 at 8:46 am Leave a comment

Research Questions from CS Ed Research Class

CSEd-research-class

My CS Ed research class did lots of reading in the first half, and then are developing research plans in the second half.  In between, I asked the students to develop research questions (faces deliberately obscured in picture of the class above), and several colleagues asked me, “Please share what they came up with!”

  • Do we need to teach CS to everyone?
  • How do we make CS education ubiquitous, and what are the costs and benefits of doing so?
  • How effective is Media Computation (and like courses) in “tech” schools vs. liberal arts schools?
  • How do we make individualistic (contextualized, scaffolded, etc.) CS experiences for everyone?
  • What are equal vs just interventions?
  • What is the economic cost of not teaching computing to all?
  • How do we create a community of practice among non-practitioners?
  • How to make CS teachers adopt better teaching practices?
  • How we incorporate CS learning into existing engineering courses vs. create new courses for engineers?
  • How does teaching to all high school students differ from teaching undergraduates?
  • How do people learn CS? Define a CS learning progression.
  • Are those AP CS Principles skills transferable to college CS courses? Or anywhere else?
  • How does programming apply to everyone?
  • What are the enduring computer science/splinter areas?
  • How does the content and order of teaching computing concepts affect retention and transfer to other disciplines?
  • How do we scaffold from problem-based learning to culturally relevant computing projects?
  • What characteristics do successful CS teachers who transition from other disciplines exhibit?
  • Is metaphor useful in learning CS?  Which metaphors are useful?

 

November 20, 2015 at 8:30 am 16 comments

A CS Education Research Class Syllabus

I’m teaching a graduate special-topics course on Computer Science Education Research this semester.  Several folks have asked me about what goes into a class like that.  Here’s the syllabus (from our “T-Square” Sakai site).  The references to “Guzdial” below are to my new book, Learner-Centered Design for Computing Education that I just turned in to Morgan & Claypool on Nov. 15. Should be available by the end of the year.

This class would look different if it was in Education, rather than in Computer Science.  For example, there might be less on tools.  The sessions where we consider how CS Ed Research appears at CHI and IDC may no longer be relevant.  Instead, I could imagine work contextualizing CS Education Research in mathematics education or science education.  I would expect to see sessions on equity, on teacher development, and on computing in schools.

 

CS8803: Computer Science Education Research

College of Computing Building Room 52, 9:35-10:55 T/Th

Teacher: Mark Guzdial, guzdial@cc.gatech.edu, TSRB 324/329

Office Hours:: By appointment

Course Overview: Introduction to computing education research (CER). History and influential early work. Learning goals for different populations, with particular attention to broadening participation in computing. Connections to research in learning sciences, educational psychology, science education. Design of research studies in CER, including Multi-Institutional Multi-National, laboratory, and classroom studies.

Textbook: We’ll be using readings from the ACM Digital Library (feely available on campus), and Guzdial’s new monograph Learner-Centered Design of Computing Education (draft available here in Resources, and eventually at the Morgan & Claypool site http://www.morganclaypool.com/toc/hci/1/1). We’ll use other readings that are available on the Web or via the Resources folder on T-Square.

Grades

  • 30%: Do 5 Reading Reflections. There are 6 opportunities for reading assignments. Students can skip one. Reading reflections are marked check or minus (something needs to be fixed). All reading reflections should be typed, with font >= 11 pt. No reading reflection should be longer than 3 pages typed and single spaced.
  • 15%: Class participation. Class time will be interactive, with little lecture. It’s a significant part of the learning in the class to participate. (The programming assignment is part of class participation.)
  • 10%: Research Study Re-Design. Redesign a research study from a published paper (referenced in Guzdial or published in ICER, SIGCSE, RESPECT, or ITICSE), to improve on the scope and findings. Due Oct 20.
  • 10% Where would you use this?. Try out any of Scratch, Alice, App Inventor, Snap, StarLogo, NetLogo, Blockly, or Pencil Code. Knowing what you know from class, would you recommend this environment? When? For whom? To learn what? Write a short (2-3 page) paper. Due Nov. 19.
  • 10%: Research Question White Paper. Write a short (3-4 pages) white paper defining a research question that’s worth exploring in CER. Explain why it’s an important, interesting, and answerable question. Identify the research community that you are speaking to with this research question. Think first section of an NSF proposal. Due Nov 12.
  • 25%: Research Study Design. Propose a study to explore the your unique research question. Think NSF proposal. Plan on 6-10 pages. 15% on paper due Nov 24. 10% on 10 minute presentation (5 minute Q&A) during last week of class.

Syllabus

Week 1

Aug 18: Introduction to class

  • Who are you and what is your experience with computing education?
  • Small Group Discussion: What do you want to know about computing education research? What do you think is unknown and worth exploring?

Aug 20: Computing for Everyone. Read Chapter 1 of Guzdial.

  • Come in with a quote that’s “interesting”
  • Pro/Con Debate: “We should teach computing to everyone.”

Week 2

Aug 25: Learning Sciences

Aug 27: The Challenges of Learning Programming. Read Chapter 2 of Guzdial.

  • Come in with a quote that’s “interesting”
  • Small group activity: What’s your hypothesis for why programming is hard? How would you test your hypothesis?
  • Reading Reflection: Using ideas and quotes from Chapter 1 and 2 of “How People Learn” to explain what’s hard about learning to program.

Week 3

Sep 1: Read Multi-institutional, multi-national studies in CSEd Research: some design considerations and trade-offs (ACM DL link)

  • Come in with a quote that’s “interesting”
  • Compare and contrast: Randomized-control trials (see definition) vs. longitudinal studies (see definition) vs. MIMN studies.
    • What are each good for?
    • Why not use more RCT and longitudinal studies in computing education?

Sep 3: Read Computational Thinking and Using Programming to Learn in Guzdial

  • Generate a list: What are examples of computational thinking?
  • Small group activity: Have you ever used programming to help you learn something else? What are the characteristics of when programming helps and when it gets in the way?

Week 4

Sep 8: Read the first Chapter of Changing Minds at this link and Weintrop and Wilensky from ICER 2015 (ACM DL link)

  • Generate a list: What are characteristics of programming environments that support learning?
  • Small group activity: How do characteristics of programming for software development and for learning differ?
  • Reading Reflection: Identify some testable claims about Boxer in diSessa’s chapter. How would you test that claim?

Sep 10: Read Media Computation and Contextualized Computing Education in Guzdial

  • Come in with a quote that’s “interesting”
  • A mini-lecture with peer instruction and prediction using Media Computation.
  • Reading Reflection: When might contextualized computing help, and where might it not?

Week 5

Sep 15: Write a program to create something of interest or answer a question of interest before coming to class.

  1. Either download JES (from Github link) and create a picture or sound that you find interesting.
  2. Or Download Python (recommend using the Enthought install) and use the Computational Freakonomics website and course notes to answer a question of interest.
  3. Or use the CSPrinciples Ebook Data Chapters to answer a question about pollution in states.

Be prepared to show what you made or what you learned in class.

Come to class ready to answer two questions:

  • Did this motivate you to learn more about CS or the context?
    • Where did programming get in the way, and where did it help?

Sep 17: Read Adults as Computing Learners in Guzdial.

  • Come in with a quote that’s “interesting”
  • Small group activity: What’s similar and dissimilar between the teachers and the graphic designers? Identify another class of adults who might need to learn computing. Which group are they more like?

Week 6

Sep 22: Read The state of the art in end-user software engineering (ACM DL link)

  • Come in with a quote that’s “interesting”
  • Build two lists: Features of a programming environment that support end-user programming and those that support learning about computing by end-user programmers.

Sep 24: Read Learner-Centered Computing Education for CS Majors by Guzdial

  • Come in with a quote that’s “interesting”
  • Small group activity: Come up with examples from your own experience of (a) CS education that you see as learner-centered and (b) CS education that was not learner-centered.
  • Reading Reflection: Contrast the adults in Chapter 5 and the non-majors in Chapter 6 with the CS majors in Chapter 7. What’s similar and what’s different about their learning and the support that they need?

Week 7

Sep 29: Read one of:

  • Spatial Skills Training in Introductory Computing (see ACM DL link)
  • Subgoals, Context, and Worked Examples in Learning Computing Problem Solving (see ACM DL link)
  • Boys’ Needlework: Understanding Gendered and Indigenous Perspectives on Computing and Crafting with Electronic Textiles (see ACM DL link)

Come to class ready (a) to summarize your paper and (b) to support/refute these three hypotheses:

  • We ought to add spatial skills training in all introductory CS courses.
  • We ought to use subgoal-labeled worked examples in all introductory CS courses.
  • We have to consider gender and cultural relevance in designing all introductory CS courses.
  • Reading Reflection: You are the Director of Georgia Tech’s Division of Computing Instruction. You may implement one change across all of your introductory courses, and you have very little budget. What will you change?

Oct 1: Read Towards Computing for All in Guzdial.

  • Come in with a quote that’s “interesting”
  • BIG list: What do we most need to know to advance computing for all? Where are the research gaps?
  • Everyone leave with a personal list of the top three research gaps that you find most interesting.
  • Reading Reflection: Pick any paper referenced in Guzdial that we did not read separately in this class. Read it and summarize it for me.

Week 8

Oct 6: Read Margulieux and Madden’s “Educational Research Primer” (in class Resources)

  • Small group activity: For your favorite research gaps, what research methods would you use to fill some of that gap?
  • Group activity list: What are the research methods that we need to learn more about?

Oct 8: RESEARCH METHODS: Based on the Oct 6 discussion, we’ll pick a paper or two to read here to inform our knowledge of research methods.

Newer Research

Week 9

Oct 13: No class! Fall Break.

Oct 15: RESEARCH METHODS: Based on the Oct 6 discussion, we’ll pick a paper or two to read here to inform our knowledge of research methods.

  • Discussion of Research Project: You don’t have to do it. You do have to design it.
    • First step: Define your question (due Nov 10), and make it answerable.
    • Second step: Tell us how you’d answer it.

Older Research

Week 10

Oct 20: Research Re-Design Due Here By 5 pm.

Oct 22: Read CE21 and IUSE proposals in Resources. (Note: They both weren’t funded in this form.)

  • Group Dissection:
    • What are the research questions?
    • What are the hypotheses?
    • What are the research methods?
  • Small group: Is this do-able? Would you give it a thumbs-up or a thumbs-down?

Week 11

Oct 27: What’s involved in reaching and studying populations at large-scale? Large scale: Read 37 Million Compilations: Investigating Novice Programming Mistakes in Large-Scale Student Data (ACM DL link) and Programming in the wild: trends in youth computational participation in the online scratch community (ACM DL link)

  • Come in with a quote that’s “interesting”
  • Two lists: What can we know from looking at these kinds of data, and what can’t we know?

Oct 29: What’s involved in reaching and studying populations at small-scale? Small scale interviews/phenomenography: Read Graduating students’ designs: through a phenomenographic lens (ACM DL link)

  • Come in with a quote that’s “interesting”
  • Small group discussion: What can we answer with a phenomengraphic approach that we can’t learn (easily) in other ways?

Week 12

Nov 3: What’s involved in reaching and studying populations in high school? In the High School: Read A Crafts-Oriented Approach to Computing in High School: Introducing Computational Concepts, Practices, and Perspectives with Electronic Textiles (ACM DL link)

  • Come in with a quote that’s “interesting”
  • Storytime: Sharing stories about getting into K-12 schools.

Nov 5: CS Education Research in CHI. Read Learning on the job: characterizing the programming knowledge and learning strategies of web designers (ACM DL link) and Programming in the pond: a tabletop computer programming exhibit (ACM DL link)

  • Come in with a quote that’s “interesting”
  • Group list: What makes a CHI paper different from an ICER paper?

Week 13

Nov 10: CS Education Research in IDC. Read Strawbies: explorations in tangible programming (ACM DL link) and “Let’s dive into it!”: Learning electricity with multiple representations (ACM DL link)

  • Come in with a quote that’s “interesting”
  • Group list: What makes an IDC paper different?

Nov 12: Research White Paper Due Here

CS Ed Research at Georgia Tech. Read one of Betsy DiSalvo’s papers — your choice.

  • Come in with a quote that’s “interesting”
  • Small group: Contrast Betsy’s research questions and methods with those of Mark’s and his students.

Week 14

Nov 17: CS Ed Research at Georgia Tech. Read Engaging underrepresented groups in high school introductory computing through computational remixing with EarSketch (ACM DL link) and EarSketch: A Web-based Environment for Teaching Introductory Computer Science Through Music Remixing (ACM DL link)

  • Group list:
    • What are the research questions for EarSketch?
    • What are the research hypotheses?
    • What are the research methods?

Nov 19: Try it out! Hand in your Where would you use this? papers before class. Come to class prepared to demo the environment you picked.

  • Debate: For a set of audiences and learning goals that we define in class, argue for your environment to meet that need.

Week 15

Nov 24: Research Design Paper Due Here.

Nov 26: No Class! Eat Turkey.

Week 16

Dec 1: Present Research Designs

Dec 3: Present Research Designs

November 18, 2015 at 8:22 am 3 comments

You Don’t Have to Be Good at Math to Learn to Code – The Atlantic

It’s an interesting and open question.  Nathan Ensmenger suggests that we have no evidence that computer scientists need a lot of mathematics (math background has been correlated with success in CS classes, not in success in a CS career), but the emphasis on mathematics helped computing a male field (see discussion here).  Mathematics has both been found to correlate with success in CS classes, and not correlate with success in object-oriented programming (excellent discussion of these pre-requisite skill studies in Michael Caspersen’s dissertation).  It may be true that you don’t have to be good at mathematics to learn to code, but you may have to be good at mathematics to succeed in CS classes and to get along with others in a CS culture who assume a strong math background.

People who program video games probably need more math than the average web designer. But if you just want to code some stuff that appears on the Internet, you got all the math you’ll need when you completed the final level of Math Blaster. (Here’s a good overview of the math skills required for entry-level coding. The hardest thing appears to be the Pythagorean theorem.)

Source: You Don’t Have to Be Good at Math to Learn to Code – The Atlantic

November 16, 2015 at 8:10 am 16 comments

New Federal Law Means CS Is Legally Part of STEM

This is a big deal for several reasons.  The article below points out the funding that is now available for computing education research.  I met someone from a big science education firm a few weeks ago who said that they were now gearing up to address issues in CS, because it’s now in their purview.  That’s a good thing — more people paying more attention to computing education research can help us advance our goals of greater access.

The STEM Education Act of 2015, which expands the definition of STEM—an acronym for science, technology, engineering, and mathematics—to include computer science programs, was signed into law yesterday.The bill that became the STEM Education Act was introduced in the House of Representatives by Lamar Smith, a Republican from Texas, and Elizabeth Esty, a Democrat from Conneticut, both members of the Science, Space, and Technology Committee.The new law does not add funding, but it does expand the kinds of STEM programs that can be run and funded by federal government agencies to include computer science. It also makes people who are pursuing a master’s degree and those with a background in computer science eligible for Robert Noyce Teacher Scholarships, which support science and math graduates and professionals who hope to teach.

Source: New Federal Law Means Computer Science Is Officially Part of STEM – Curriculum Matters – Education Week

November 13, 2015 at 8:53 am 6 comments

Cognitive Load as a Significant Problem in Learning Programming: Briana Morrison’s Dissertation Proposal

Briana Morrison is defending her proposal today.  One chapter of her work is based on her ICER 2015 paper that won the Chairs Award for best paper (see post here). Good luck, Briana!

Title: Replicating Experiments from Educational Psychology to Develop Insights into Computing Education: Cognitive Load as a Significant Problem in Learning Programming

Briana Morrison
Ph.D. student
Human Centered Computing
College of Computing
Georgia Institute of Technology

Date: Wednesday, November 11, 2015
Time: 2 PM to 4 PM EDT
Location: TSRB 223

Committee
————–
Dr. Mark Guzdial, School of Interactive Computing (advisor)
Dr. Betsy DiSalvo, School of Interactive Computing
Dr. Wendy Newstetter, School of Interactive Computing
Dr. Richard Catrambone, School of Psychology
Dr. Beth Simon, Jacobs School of Engineering at University of California San Diego and Principal Teaching and Learning Specialist, Coursera

Abstract
———–
Students often find learning to program difficult. This may be because the concepts are inherently difficult due to the fact that the elements of learning to program are highly interconnected. Instructors may be able to lower the complexity of learning to program by designing instructional materials that use educational psychology principles.

The overarching goal of this research is to gain more understanding and insight into the optimal conditions under which learning programming can be successful which is defined as students being able to apply their acquired knowledge and skills in new or familiar problem-solving situations. Cognitive load theory (CLT), and its associated effects, describe the role of the learner’s memory during the learning process. By minimizing undesirable loads within the instructional materials the learner’s memory can hold more relevant information, thereby improving the effectiveness of the learning process.

This proposal uses cognitive load theory to improve learning in programming.  First an instrument for measuring cognitive load components within introductory programming was developed and initially validated. We have explored reducing the cognitive load by changing the modality in which students receive the learning material. This had no effect on novices’ retention of knowledge or their ability to transfer knowledge. We then attempted to reduce the cognitive load by adding subgoal labels to the instructional material. This had some effect on the learning gains under some conditions. Students who learned using subgoal labels demonstrated higher learning gains than the other conditions on the programming assessment task. We also explored using a low cognitive load assessment task, a Parsons problem, to measure learning gains. This low cognitive load assessment task proved more sensitive than the open ended programming assessment tasks in capturing student learning. Students who were given subgoal labels regardless of context transfer condition out performed those in the other conditions.

In my final, proposed study I change how we teach a programming construct through its format and content in order to reduce cognitive load. The changed construct is presumed to be a more natural cognitive fit for students based on previous research.

November 11, 2015 at 8:48 am 4 comments

Barbara Ericson’s 2015 AP CS demographics analysis: Still No African-Americans Taking the AP CS Exam in 9 States

Cursor_and_Still_No_African-Americans_Taking_the_AP_Computer_Science_Exam_in_Nine_States_-_Curriculum_Matters_-_Education_Week

Normally, this is the time of the year when Barb writes her guest post about the AP CS exam-taker demographics.  She did the analysis, and you can get the overview at this web page and the demographics details at this web page.

But before we got a chance to put together a blog post, Liana Heitin of EdWeek called her for an interview.  They did a nice job summarizing the results (including interactive graphs) at the article linked below.

Some of the more interesting points (from Liana’s article):

No girls took the exam in Mississippi, Montana, or Wyoming. (Though Montana had no test-takers at all, male included, this year. Wyoming, which previously had no students take the test, had three boys take the exam in 2015).

Hawaii had the largest percentage of female test-takers, with 33 percent.

The overall female pass rate went up 3 percentage points, to 61 percent, from the year before.

Twenty-four girls took the test in Iowa, and 100 percent of them passed.”You don’t usually see 100 percent passing with numbers that big,” said Ericson. “Maybe five out of five pass. But 24 out of 24 is pretty cool.”

No African-American students took the exam in nine states: Idaho, Mississippi, Montana, New Hampshire, New Mexico, North Dakota, South Dakota, Utah, and Wyoming. That’s better than last year, though, when 13 states had no African-American test-takers.

Notably, Mississippi has the highest population of African-Americans—about half of the state’s high school graduates last year were black, according to the Western Interstate Commission for Higher Education. Yet of the five AP computer science test-takers, all were white or Asian and male.

Source: Still No African-Americans Taking the AP Computer Science Exam in Nine States – Curriculum Matters – Education Week

November 9, 2015 at 7:28 am 8 comments

Preview for WiPSCE 2015: Usability and usage of interactive features in an online ebook for CS teachers

Next week in London, at WiPSCE 2015, the 10th Workshop in Primary and Secondary Computing Education, Barbara Ericson is going to present the pilot study of our teacher CSP ebook that Steven Moore (undergrad researcher here at Georgia Tech) ran last year.  This is the pilot that came before our Spring trial (see post here) and which led to our student and teacher ebooks that we recently released (see post here).  The authors of the paper are Barbara, Steven, Brianna Morrison, and me.

Steven’s study had two parts to it.  The first was a usability survey comparing three different ebook platforms: Runestone Interactive, Zyante, and CS Circles.  You may recall the post here where I invited you to participate in that survey.  Runestone did well in the survey, just beating out Zyante, and both were far ahead of CS Circles.

The meat of the paper is the study of 10 teachers who qualified for our study (got less than 40% on a pretest) and read the 8 chapters we had ready for them.  Every two chapters, there was a post-test on those two chapters.  Some of the findings:

  • 50% of the study participants finished all 8 chapters.  That’s pretty good, but isn’t directly comparable to MOOC studies because we did offer them a $50 gift card for completing.
  • As we expected and designed for, teachers read the books in chunks of time when they could fit it in.
  • Those who used the book (e.g., did the Parson’s problems, ran the code, etc.), gained confidence in teaching CS and performed well on the post-tests. This is a big deal!  The teachers are not just writing code.  They are using a variety of different kinds of learning activities (see our ICER ebook paper) — and successfully learning and gaining confidence.  Writing code is not the only way to learn CS.  This has been one of the more controversial hypotheses. Many CS teachers believe that apprenticeship is the only way to learn CS, but we believe that we can successfully use a range of pedagogical practices.

Barbara did an extensive log file analysis of the participants, and we learned a lot from that. We learned where our books were not usable, e.g., when participants skipped over interactive features, or when they used the features wrong (e.g., clicking “Check Me” on a Parson’s problem, without ever moving pieces around). We used these findings in designing the current ebooks.

This paper is exciting for us — it’s the first where we test our design claims.

 

November 6, 2015 at 8:20 am 2 comments

What does a CS methods class look like?

There are only a couple of universities in Georgia where you can get a CS teaching endorsement (a kind of credential that is an add-on to an initial certification).  In both of them, you have to have a CS methods class, where students learn how to teach CS.  One of them needed a CS methods course taught, but didn’t have anyone available to teach it.  The problem was that it was needed by a single student (these endorsement programs are woefully undersubscribed).  I offered to teach it — though not officially, since I’m a GT professor and not a professor at these other schools.  So, someone else was signed up to be the instructor-of-record, and I ran the course, all on-line with weekly Skype chats.

Folks might be interested in what’s in a Methods course, so I’m sharing my draft syllabus here. Since there was only one student, I made up a syllabus to submit to check that it met the requirements of the course, and we didn’t update it afterwards. I make no claims about quality of the course.  It was a class for one student to meet a requirement, and I wanted the experience of teaching a CS methods course.  It did meet all the requirements of the program (which were more prescribed and substantial than most CS courses I teach).  Not all the links here are live — some went to servers inside firewalls, and others were sent out via email.

Syllabus for CS Methods Course

Learning objectives:

  • Be able to describe use and when one should use different CS teaching approaches like live coding, peer instruction, pair programming, worked examples, and kinesthetic learning activities.
  • Be able to describe and diagnose common student misconceptions, e.g., with assignments, with while vs. if, and so on.
  • Be able to describe approaches to teaching computer science, including constructionist, objects-first, functions-first, media computation.
  • Write a lesson plan to teach a CS topic for a specific grade level, including assessments.

Assignments (and distribution for final grade):

  • Reading reflections (4): 25% of grade
  • Lesson plan: 25%
  • Exam and grading rubric: 15%
  • HW assignment design and grading rubric: 15%
  • Project: Create all the teaching material for a single unit within a Computing Pathway class, including lessons plans, homework assignments, grading rubrics, and tests: 30%

Course Outline:

Week 1

Week 2

  • Write Reading Reflection #1: Do you agree with the challenges to learning programming that you read there? What additional challenges have you seen?

Week 3

  • Read Juha Sorva appendix A. Link to whole thing.
  • Discuss: How would you identify these misconceptions? How would correct them?

Week 4

  • Read a paper on Pair Programming (probably this one).
  • Write Reading Reflection #2: Why do you think Pair Programming works as well as it does in this study? Do you think it would work as well in a high school setting?

Week 5

  • Read a paper on Peer Instruction: Pick any one that you like on this site.
  • Review KLA website.
  • Read four blog posts on worked examples in classroom from this site.
  • Discuss: Peer instruction, KLA, worked examples, gesture: When are they useful and when aren’t they?

Week 6

  • Two readings on CS assessment: On concept inventories, and how do we assess CS.
  • Write Reading Reflection #3: These papers are both undergraduate computer science. How would it be different when accessing computer science at the high school level? Would the issues be the same or different?

Week 7

  • How we design CS curricula.
  • Discuss: Which of these approaches would work best for high school students and why? When would one work better than another?

Week 8

  • Write Reading Reflection #4: Based on all of these readings, come up with a philosophy of teaching K-12 computer science. Pick a grade range you prefer (elementary, middle school, secondary), and describe: What do you think ought to be taught? How do you think it ought to be taught? How do you think it ought to be assessed?
  • Discuss the reflection, and pick a topic to write a lesson plan on

Week 9

  • Write a lesson plan: How would you teach the CS topic?
  • Discuss afterwards.

Week 10

  • Write a homework description and grading rubric: What would you want students to do, to learn this topic? What misconceptions would you expect? How would you assure yourself they got it right?
  • Discuss afterwards.

Week 11

  • Write an exam to test knowledge of that topic and the grading rubric for that exam.
  • Discuss afterwards

Week 12

  • Discuss Planning for project. What worked, and what didn’t work? Are there additional things you need to know?

Week 13

  • Week to do additional reading, or to identify a topic for the project.

Week 14

  • Work week on Project

Week 15: Project completed

  • Project: Create all the teaching material for a single unit within a Computing Pathway class, including lessons plans, homework assignments, grading rubrics, and tests

November 4, 2015 at 8:13 am 15 comments

Are there some students who can’t learn how to code? Teachers must always answer “No!”

The below-linked article does a good job of considering the argument about whether everyone can learn to program, and comes to the same conclusion that I do — a CS teacher must always believe that everyone can learn to program.

Indeed, one can find a good number of opinionators weighing in on the subject. In “Separating Programming Sheep from Non-Programming Goats,” Stack Exchange co-founder Jeff Atwood cites Bornat’s initial paper and concludes, “the act of programming seems literally unteachable to a sizable subset of incoming computer science students.” Linux creator Linus Torvalds has been quoted as saying, “I actually don’t believe that everybody should necessarily try to learn to code” — although, he does propose that people be exposed to it to see if they have “the aptitude.” Clayton Lewis of the University of Colorado at Boulder conducted a survey in which 77% of responding computer science faculty strongly disagreed with the statement “Nearly everyone is capable of succeeding in the computer science curriculum if they work at it.” As a “bright-eyed beginner” (with a scant 15 years of introductory programming teaching under my belt), it’s hard for me to accept the assertion that there are “some who can’t.” Such reasoning smacks of elitism and prejudice, even if such attitudes aren’t expressed consciously.

Of course, I’ll be the first to admit that my own opinion rests heavily on my own preconceptions: I’ve always had that “Montessori feeling” — every interested student should be given a chance to try, and sometimes fail, in a supportive environment.So, rather than give up on some, shouldn’t educators themselves keep trying? The inverse to the question “are there some students who can’t learn?” is this question, “are there some students whom our (current) teaching methods can’t reach?” The first question by itself implies a “yes,” and thus closes a door on some students. The second question opens up a world of inquiry: if basic coding concepts are truly so simple (as they truly are once the abstraction is understood), what do we need to do to bring the hard cases home?

Source: Are there some students who can’t learn how to code? – O’Reilly Radar

November 2, 2015 at 8:03 am 14 comments


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

Join 9,002 other followers

Feeds

Recent Posts

Blog Stats

  • 1,875,054 hits
November 2015
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
30  

CS Teaching Tips