{"id":1571,"date":"2017-01-09T08:00:43","date_gmt":"2017-01-09T13:00:43","guid":{"rendered":"http:\/\/blogs.ams.org\/matheducation\/?p=1571"},"modified":"2016-12-21T11:10:08","modified_gmt":"2016-12-21T16:10:08","slug":"integrating-computer-science-in-math-the-potential-is-great-but-so-are-the-risks","status":"publish","type":"post","link":"https:\/\/blogs.ams.org\/matheducation\/2017\/01\/09\/integrating-computer-science-in-math-the-potential-is-great-but-so-are-the-risks\/","title":{"rendered":"Integrating Computer Science in Math: The Potential Is Great, But So Are The Risks"},"content":{"rendered":"<p><i><span style=\"font-weight: 400\">By Emmanuel Schanzer, <\/span><\/i><a href=\"http:\/\/www.bootstrapworld.org\/\"><i><span style=\"font-weight: 400\">Bootstrap<\/span><\/i><\/a><\/p>\n<p><span style=\"font-weight: 400\">Recent calls to bring Computer Science to K-12 schools have reached a fever pitch. Groups like Code.org and Girls Who Code have become household names, having raised tens of millions in funding from Silicon Valley luminaries and small donors alike. In February of 2016, President Obama announced the \u201cCSforAll\u201d initiative, and asked for $4 billion of funding from Congress to pay for it. Even in today\u2019s divided climate, this initiative found bipartisan support, and mayors and governors from coast to coast have made sweeping commitments to bring CS Education to all students. <\/span><\/p>\n<p><span style=\"font-weight: 400\">This effort has serious consequences for math education. Adding a new subject is easier said than done: recruiting, training, hiring and retaining tens of thousands of new CS Teachers will take decades and cost billions, and the finite number of hours in the school day and rooms in the school building make it difficult to find space for these courses. To meet these commitments, many schools and districts have employed three strategies: (1) take time out of existing math classes for CS, (2) take math classes out of a teacher\u2019s schedule, and instead have them teach a CS class, and\/or (3) have CS classes count as a math credit [1]. All of this is done because there\u2019s a widespread misconception that \u201ccomputer science is just like math\u201d, and that skills from one will transfer to the other. Unfortunately, most of the programming languages being taught in these classes have little to do with mathematics, and embrace concepts that are explicitly <\/span><i><span style=\"font-weight: 400\">math-hostile.<\/span><\/i><span style=\"font-weight: 400\"> In this article, I will discuss some of the challenges and opportunities faced by K-12 mathematics educators in our efforts to develop an authentic incorporation of CS into the K-12 curriculum.<\/span><!--more--><\/p>\n<p><b>Some Challenges<\/b><\/p>\n<p><span style=\"font-weight: 400\">A core example of a challenge facing math teachers is that numbers themselves behave differently in most programming languages. Math places no limit on how small or large a number can be, yet programming languages frequently truncate values without warning, leading to unpredictable results. Any 5<\/span><span style=\"font-weight: 400\">th<\/span><span style=\"font-weight: 400\"> grader should know that 2 \u00f7 4 equals \u00bd\u2026 but in Java the teacher will have to explain why the same expression evaluates to zero!<\/span><\/p>\n<p><span style=\"font-weight: 400\">Making matters worse, programming languages like Java, JavaScript, Python, Scratch and Alice all rely on the concept of <\/span><i><span style=\"font-weight: 400\">assignment<\/span><\/i><span style=\"font-weight: 400\">. Assignment means that a value is \u201cstored in a box\u201d, and that the value in that box can be changed. Here\u2019s a simple JavaScript program that demonstrates this:<\/span><\/p>\n<blockquote><p><em><span style=\"font-weight: 400\">x = 10<\/span><\/em><\/p>\n<p><em><span style=\"font-weight: 400\">x = x + 2<\/span><\/em><\/p><\/blockquote>\n<p><span style=\"font-weight: 400\">The first line of code <\/span><i><span style=\"font-weight: 400\">assigns<\/span><\/i><span style=\"font-weight: 400\"> the value 10 into a box named \u201cx\u201d. The second line reads the value back out, adds 2, and assigns the new value back into x. When the program finishes, x contains the value 12. Unfortunately, the semantics and syntax are completely incompatible with mathematics! In math, names are given to <\/span><i><span style=\"font-weight: 400\">values<\/span><\/i><span style=\"font-weight: 400\">, not boxes. In fact, there\u2019s no notion of \u201cboxes\u201d in algebra (or \u201cassigning\u201d values into them) at all! Moreover, the written syntax of \u201cx= x + 2\u201d translates to a statement that is mathematically wrong. Adding insult to injury, computer scientists refer to <\/span><span style=\"font-weight: 400\">x<\/span><span style=\"font-weight: 400\"> as a <\/span><i><span style=\"font-weight: 400\">variable<\/span><\/i><span style=\"font-weight: 400\">, despite the fact that it behaves nothing like a variable in math. The problem is made even worse when it comes to <\/span><i><span style=\"font-weight: 400\">functions<\/span><\/i><span style=\"font-weight: 400\">. In most programming languages, functions can (and often do) fail the vertical line test, producing different values for the same input or perhaps <\/span><i><span style=\"font-weight: 400\">no <\/span><\/i><span style=\"font-weight: 400\">value for <\/span><i><span style=\"font-weight: 400\">any<\/span><\/i><span style=\"font-weight: 400\"> input. Students typically struggle with the concepts of function and variable when they get to algebra. Now, they are confronted with incompatible definitions of the same terms \u2013 in a class taught by a math teacher, for math credit.<\/span><\/p>\n<p><span style=\"font-weight: 400\">It should come as no surprise that there is little evidence supporting the proposition that programming leads to higher performance in critical classes like algebra. Asking math teachers to cut back on math to make room for programming is problematic in and of itself. When numbers, variables and functions behave contradictory ways, all in the context of a \u201cmath-credit class\u201d, the problems are far greater.<\/span><\/p>\n<p><b>Some Opportunities<\/b><\/p>\n<p><span style=\"font-weight: 400\">While the risks of bad integration are significant, the opportunities for an <\/span><i><span style=\"font-weight: 400\">authentic<\/span><\/i><span style=\"font-weight: 400\"> integration are tremendous. I would argue that an \u201cauthentic integration\u201d between math and programming has three characteristics:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Tools<\/span><\/i><span style=\"font-weight: 400\"> \u2013 The language itself must include (and enforce) basic mathematical concepts like Numbers, Variables, and Functions. At the very least, we need to get our tools right (within reasonable limits).<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Curriculum<\/span><\/i><span style=\"font-weight: 400\"> \u2013 The curriculum offered alongside the tools must be aligned to national and\/or state standards for <\/span><i><span style=\"font-weight: 400\">mathematics<\/span><\/i><span style=\"font-weight: 400\">, with a clear scope and sequence that addresses the needs of a mainstream math teacher. It should include homework assignments, rubrics, assessments, and handouts that address mathematical concepts. Demanding that a math teacher find the time to figure out the alignment and make these resources on their own is a non-starter.<\/span><\/li>\n<li style=\"font-weight: 400\"><i><span style=\"font-weight: 400\">Pedagogy<\/span><\/i><span style=\"font-weight: 400\"> \u2013 There is more to great teaching than having a great curriculum. A CS course that aims to address math content must also address pedagogical techniques that matter in a math class. How is an activity differentiated? How is a concept scaffolded? How should student break down a word problem broken down? The answers to all of these questions (and more) must be explicit, and must also fit within recognized best-practices for math instruction.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">I firmly believe there are ways to do it right, and there\u2019s tremendous potential for teachers who are able to do so. Authentic alignment of mathematics and computer science requires significant time to develop materials and integrate them with existing math curricula, and significant intersectional experience between computer science, mathematics, math instruction, curriculum development, software engineering, and teacher professional development. And while there are almost certainly multiple pathways to get here, I can speak from experience about one of them. <\/span><\/p>\n<p><span style=\"font-weight: 400\">I\u2019m a former math teacher, math-ed researcher, and the co-director of an organization that has spent nearly a decade researching this challenge and developing evidence-based solutions. Bootstrap (<\/span><a href=\"http:\/\/www.bootstrapworld.org\"><span style=\"font-weight: 400\">http:\/\/www.BootstrapWorld.org<\/span><\/a><span style=\"font-weight: 400\">) is a research project at Brown University that offers a series of curricular modules built around <\/span><i><span style=\"font-weight: 400\">purely mathematical programming<\/span><\/i><span style=\"font-weight: 400\">. Our introductory module is carefully aligned to standard algebra, and after a decade of research has been shown to significantly improve students\u2019 performance on standard, pencil-and-paper algebra tasks (<\/span><a href=\"http:\/\/www.bootstrapworld.org\/impact\"><span style=\"font-weight: 400\">http:\/\/www.BootstrapWorld.org\/impact<\/span><\/a><span style=\"font-weight: 400\">). The win for students is twofold: they\u2019re learning real algebra, and they\u2019re doing it in a way that is 100% hands-on and applied. Bootstrap gives math teachers a chance to teach algebra in a new way, and to makes their experience teaching math an asset rather than a liability when it comes to teaching programming. By leveraging the experience math teachers already have, Bootstrap makes it possible for math teachers to deliver rigorous programming education without years of re-training. And since every student takes algebra, it allows schools to bring computer science to <\/span><i><span style=\"font-weight: 400\">every child <\/span><\/i><span style=\"font-weight: 400\">without having to find room in the budget for a new teacher or room in the schedule for a new class.<\/span><\/p>\n<p><b>Conclusion<\/b><\/p>\n<p><span style=\"font-weight: 400\">Computer Science is coming, most likely in a form that finds its way into math classes across the country. As members of the math-ed community, we have a responsibility to make sure this integration happens authentically, and in a way that supports math instruction instead of undermining it. Doing this takes careful attention to the tools we use, the curricula we teach, and the pedagogical techniques we employ. If we withdraw from this conversation, it will happen without us &#8211; and recent history shows that it is likely to happen in a way that risks harming math education. If we are active participants in the conversation, the enthusiasm and energy surrounding CS education bring enormous potential to math classrooms everywhere. <\/span><\/p>\n<p><span style=\"font-weight: 400\">[1] &#8211; <\/span><a href=\"http:\/\/www.advancekentucky.com\/114-kycoders\/160-cs-educ?showall=1&amp;limitstart=\"><span style=\"font-weight: 400\">Kentucky counts CS as a math credit<\/span><\/a><span style=\"font-weight: 400\">, <\/span><a href=\"https:\/\/computinged.wordpress.com\/2014\/08\/26\/georgia-governor-calls-for-cs-to-count-as-core-science-math-and-foreign-languages\/\"><span style=\"font-weight: 400\">Georgia counts CS as a math credit<\/span><\/a><span style=\"font-weight: 400\">, <\/span><a href=\"http:\/\/www.media.pa.gov\/Pages\/Education-Details.aspx?newsid=242\"><span style=\"font-weight: 400\">Pennsylvania counts CS as a math credit<\/span><\/a><\/p>\n<div style=\"margin-top: 0px; margin-bottom: 0px;\" class=\"sharethis-inline-share-buttons\" ><\/div>","protected":false},"excerpt":{"rendered":"<p>By Emmanuel Schanzer, Bootstrap Recent calls to bring Computer Science to K-12 schools have reached a fever pitch. Groups like Code.org and Girls Who Code have become household names, having raised tens of millions in funding from Silicon Valley luminaries &hellip; <a href=\"https:\/\/blogs.ams.org\/matheducation\/2017\/01\/09\/integrating-computer-science-in-math-the-potential-is-great-but-so-are-the-risks\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div style=\"margin-top: 0px; margin-bottom: 0px;\" class=\"sharethis-inline-share-buttons\" data-url=https:\/\/blogs.ams.org\/matheducation\/2017\/01\/09\/integrating-computer-science-in-math-the-potential-is-great-but-so-are-the-risks\/><\/div>\n","protected":false},"author":73,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[27,207,198],"tags":[141,242],"class_list":["post-1571","post","type-post","status-publish","format-standard","hentry","category-classroom-practices","category-curriculum","category-k-12-education","tag-computer-science","tag-high-school"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p6C2AC-pl","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blogs.ams.org\/matheducation\/wp-json\/wp\/v2\/posts\/1571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ams.org\/matheducation\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ams.org\/matheducation\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ams.org\/matheducation\/wp-json\/wp\/v2\/users\/73"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ams.org\/matheducation\/wp-json\/wp\/v2\/comments?post=1571"}],"version-history":[{"count":3,"href":"https:\/\/blogs.ams.org\/matheducation\/wp-json\/wp\/v2\/posts\/1571\/revisions"}],"predecessor-version":[{"id":1574,"href":"https:\/\/blogs.ams.org\/matheducation\/wp-json\/wp\/v2\/posts\/1571\/revisions\/1574"}],"wp:attachment":[{"href":"https:\/\/blogs.ams.org\/matheducation\/wp-json\/wp\/v2\/media?parent=1571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ams.org\/matheducation\/wp-json\/wp\/v2\/categories?post=1571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ams.org\/matheducation\/wp-json\/wp\/v2\/tags?post=1571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}