Math/CS Education Reform
- 1 Pros/Cons of Teaching Computer Science Before High School
- 2 The Case for Computer Science in Primary School
- 3 The Case for Computer Science in High School
- 4 Our Recommendation
- 5 References
- 6 Sources
Pros/Cons of Teaching Computer Science Before High School
In the majority of the United States, most students have their first, if any, exposure to computer science topics in high school. However, some educators have suggested incorporating computing education at the primary school level as a means of addressing the technological illiteracy that is widespread among high school graduates.
The most prominent advantage of teaching elementary and middle schoolers computer science is, in the words of Seymour Papert (founder of the Logo movement of the 90s), "to [give] kids the opportunity to engage with powerful ideas". Computer literacy is starting to prerequisite many jobs and even careers, and to encourage technology literacy at the pre-high school level would be to encourage students to seek out new ways of solving standard problems, a common paradigm in computer science, early on. Furthermore, computer science requires of its students a certain kind of problem-solving ability unique even in the STEM fields, as computer science limits itself to the somewhat limited set of things a computer can do, and so encouraging a head start on CS education would allow students to immerse themselves in this paradigm at a formative age, and be able to think in the paradigm of computer science throughout their primary and secondary school experiences. Finally, encouraging students to pursue computer science at an early age would presumably lead to more interest generated in the field through college, increasing the number of competent coders in the workforce to fill the estimated 1.8 million open CS jobs.
Although adding computer science to elementary and middle school curricula has many apparent benefits, it comes with additional costs. Some educators fear that the additional time required to add CS courses at the elementary level would take time away from other critical topics such as fundamental mathematics and writing. Cost is another concern: primary schools may not be able to afford the lab equipment required to teach basic computer science effectively. Finally, some educators<ref>ISTE: Should we teach computer science in elementary schools?</ref> fear that adding CS to an already full curriculum would tax students too much, and that these students should instead be allowed to focus on more basic skills.
The Case for Computer Science in Primary School
code.org<ref>http://code.org</ref> is a private nonprofit dedicated to teaching people of all ages how to code. Started in 2013, their programs now support everyone, from the very old to the very young. Recently, code.org launched K5<ref>https://code.org/educate/k5</ref>, a program dedicated to teaching students ages 4 and up how to code. K5 is designed as a workshop for teachers to help their students get started on coding. The program is structured into three levels -- the first for students ages 4-6, which covers topics like problem solving and sequences, the second for students 6 and up, covering topics like functions and debugging, and the third, also for ages 6 and up, covering topics like nested loops and conditionals. Each section also includes a section on a social aspect of coding -- internet safety, the impact of coding on society, and digital citizenship.
Each section conforms to the standards set by the Computer Science Teachers Association (CSTA)<ref>http://csta.acm.org/Curriculum/sub/K12Standards.html</ref> and the ISTE<ref>http://www.iste.org/standards/ISTE-standards/standards-for-students</ref>. Furthermore, the workshop integrates other subject areas, focusing on Math, English Language Arts (ELA), and Science. Workshops are held nationally, and are held at no cost to schools.
Scratch Jr. is a programming language created specifically for children ages 5-7. Scratch Jr. is based on Scratch, a programming language designed by MIT to help students ages 8 and up get accustomed to the basics of programming. Scratch Jr. argues, in essence, that coding is the "new literacy" -- that knowing how to code is going to be just as important in the future as knowing how to read or do math. The language is specifically designed to allow children to "create and express themselves with the computer, not just to interact with it". Scratch Jr. is a collaboration between the DevTech Research Group at Tufts University, the Lifelong Kindergarten group at MIT, and the Playful Invention Company. Scratch Jr. uses iPad and Android apps, the latter developed by Two Sigma. All of their technology is available for free.<ref>http://www.scratchjr.org/about.html</ref>
Computer Science Teachers Association
The Computer Science Teachers' Association, or CSTA, is an branch of the Association for Computing Machinery (ACM)<ref>http://acm.org</ref> focused on expanding pre-college CS education through a variety of means. First, the CSTA has conducted numerous studies helping to highlight the issues currently facing such education, such as the under-representation of women and minorities<ref>http://csta.acm.org/Research/sub/KeyResearch.html</ref>. Next, the CSTA offers resources and standards for educators targeted at specific age groups to help teachers improve the quality of their lesson material<ref>http://csta.acm.org/Curriculum/sub/CSK8.html</ref><ref>http://csta.acm.org/Curriculum/sub/K12Standards.html</ref>. Finally, the CSTA serves as a professional development organization, and offers workshops and chapter meetings intended to help teachers to develop their skills.
International Society for Technology in Education
The International Society for Technology in Education, or ISTE, is an international nonprofit dedicated to preparing teachers at all levels to teach and integrate technology into their classrooms. Similar to the CSTA, ISTE provides education materials, curriculum standards, and networking opportunities<ref>http://www.iste.org/</ref>.
Some educators believe that the most critical part of computer science education at the primary school level is "its ability to encourage and support creative expression and problem solving"<ref>https://www.iste.org/explore/articledetail?articleid=216</ref>. Furthermore, they argue, the main goal is not to create programmers to fill jobs that may or may not exist when they graduate from college in 15 years. Rather, it is to "[give] them the thinking skills that will help them become proactive learners and citizens", and moreover, "[creativity], collaboration, persistence and abstraction are all thinking skills that coding builds". Computer science also builds interdisciplinary skills, as exemplified by the cross-curricular programs code.org's K5 initiative is building.
Although adding computer science to elementary and middle school curricula has many apparent benefits, it comes with additional costs. Some educators fear that the additional time required to add CS courses at the elementary level would take time away from other critical topics such as fundamental mathematics and writing. Cost is another concern: primary schools may not be able to afford the lab equipment required to teach basic computer science effectively. Finally, some educators fear that adding CS to an already full curriculum would tax students too much, and that these students should instead be allowed to focus on more basic skills.
The Case for Computer Science in High School
Currently, computer science courses are only offered in about 10% of American High Schools.<ref name="time" /> In addition, many students don't have time to incorporate an elective computer science course into schedules that are already filled with core requirements. The result of this system is that many high school graduates are unprepared to pursue computer science at a higher level, and may never realize that they are even interested in the subject.
Israeli Method: Centralized Nationwide C.S. Standards
Over the last 20 years, Israel has become a leader in high school computer science education.<ref name="time" /><ref name="nextgen" /> In the mid-90s, Israel instituted a nationwide high school curriculum that required that computer science be taught at the same level as other scientific disciplines. Additionally, Israel offers a higher degree of support for computer science teachers. Available resources include the Israeli National Center for Computer Science Teachers<ref name="machshava" />, a professional leadership forum that allows teachers to collaborate to improve the quality of available education. Although Israel's reforms have lead to high degrees of student performance in collegiate computer science, they would be logistically difficult to implement in the United States. Israel's small population (less than 8 million) and centralized education system made these reforms much simpler to achieve than any initiative addressing the U.S.'s sprawling patchwork of local and national educational institutions.
Computer Science Education Act
The Computer Science Education Act is a piece of bipartisan legislation that seeks to remove barriers to K-12 CS education<ref name="csea" />. The main goal of the CSEA is to establish computer science as a "core" subject in American education, without requiring any school district to support computer science classes in a specific capacity. This means that schools would be able to support CS classes with existing core funding, but wouldn't be pressured to focus on CS if they so chose. Although the cost-neutral wording of this bill increases the likelihood that it will pass, it also means that its potential impact is limited by the desires of individual school districts. Due to the resistance to change entrenched in the American education system, it is unlikely that this bill will really accomplish anything.
We must be very clear about what the goal of computer science education should be.
Treat high school CS as a vocational option
Currently, computer science education is being oriented towards the goal of having everyone leave high school with a working proficiency in a given language -- Python and Java, for example, are common candidates for languages that students "should" know by the time they graduate from high school. Initiatives like Computing in the Core and websites like codecademy.com encourage this perception that skill in computer science is equivalent to proficiency in one or more languages. We want to encourage that policy be drafted to treat computer science education as less of proficiency in programming languages and algorithms and more as a way of thinking about problems in terms of smaller, more easily solvable problems. However, in high school, as students are preparing to go to college, a stronger grasp of algorithmic concepts -- again, not with respect to any particular language -- would be helpful in college, and as such should be taught. We believe computer science education at the high school level should be considered like a vocation, like shop class -- teach students real-world skills, and let the focus on the abstract theory of the thought process be relegated to primary education.
Focus initiatives in primary school
We believe that the most effective place on which to focus education reform is primary school. Success with initiatives like code.org's K5 program and the widespread adoption of languages like Scratch Jr. have led us to conclude that reform at the earliest stage is where it is most needed. In elementary school, computer science can be taught as a series of thought processes -- of ways of thinking about problems in terms of decomposition into smaller, more easily-solved problems. Like math, it is important to teach computer science to inculcate into students the thought processes that are central to CS at an early age so that they may use those ideas in other fields to solve other, non-CS problems.
<references> <ref name="time">Can we fix computer science education in America? Keith Wagstaff. </ref> <ref name="nextgen">Israel leads way on Computer Science in schools. NextGen. </ref> <ref name="machshava">Machschava - Israeli National Center for Computer Science Teachers (English). </ref> <ref name="csea">Computer Science Education Act. Computing in the Core. </ref> </references>
- ACM article on CS education reform
- UMass Expanding Computing Education Pathways initiative
- The long road to CS education reform
- Modernizing CS Education at the college level
- Why the 'coding for all' movement is more than a boutique reform
- Why the current education reform strategy won't work - Issues in Science and Technology
- Linking Evidence and Promising Practices in Science, Technology, Engineering, and Mathematics (STEM) Undergraduate Education
- ISTE - Should we teach CS in elementary schools?
- The Landscape of Undergraduate STEM Education Reform: Current Initiatives
- Computing in the Core: Google initiative to reform K-12 education
- ISTE standards for education
- K-5 code.org program
- ACM CSTA standards for CS education