<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Education Reform - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Education Reform - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 26 Jul 2026 20:14:21 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/education-reform/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ What is STEM? The Meaning of an Acronym You'll Hear a Lot in School ]]>
                </title>
                <description>
                    <![CDATA[ Every year, governments and educators all around the world are increasingly focused on STEM education. But what does STEM mean, exactly? It turns out that the answer is a bit more complicated than it seems at first glance. In this article we'll cover... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-is-stem-the-meaning-of-an-acronym-youll-hear-a-lot-in-school/</link>
                <guid isPermaLink="false">66ac88426fb3204d41f56354</guid>
                
                    <category>
                        <![CDATA[ education ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Education Reform ]]>
                    </category>
                
                    <category>
                        <![CDATA[ stem ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Kristofer Koishigawa ]]>
                </dc:creator>
                <pubDate>Mon, 05 Oct 2020 09:42:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9868740569d1a4ca19e0.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Every year, governments and educators all around the world are increasingly focused on STEM education.</p>
<p>But what does STEM mean, exactly? It turns out that the answer is a bit more complicated than it seems at first glance.</p>
<p>In this article we'll cover what STEM means, why it's important, and some common approaches for STEM education in the classroom.</p>
<h2 id="heading-what-is-stem">What is STEM?</h2>
<p>STEM stands for Science, Technology, Engineering, and Mathematics. It's a broad term that generally refers to a curriculum that increases students' exposure to and proficiency in each subject.</p>
<p>However, science, technology, engineering, and mathematics are all vast disciplines. Because of this, there are several ways to define STEM, depending on the context it's used in.</p>
<p>For example, the <a target="_blank" href="https://www.nsf.gov/about/research_areas.jsp">National Science Foundation's definition of STEM</a> also includes social sciences like psychology and economics, along with more typical branches like chemistry. This broader definition of STEM is what most schools and organizations follow.</p>
<p>But the <a target="_blank" href="https://www.dhs.gov/news/2012/05/11/dhs-announces-expanded-list-stem-degree-programs">Department of Homeland Security</a> mostly considers natural sciences (biology, chemistry), and formal sciences (mathematics, statistics) in their definition of STEM. Some social sciences like economics are instead grouped with arts and humanities.</p>
<p>The acronym STEAM is also increasingly used, which is a variation of STEM that includes art as one of the core subjects. Art, in this case, can include language arts, design, visual arts, and other humanities.</p>
<h2 id="heading-why-is-stem-important">Why is STEM important?</h2>
<p>STEM is all around us, and affects every aspect of modern life. Just about every job requires STEM-related skills, whether it be using a computer or a soft skill like critical thinking or problem solving.</p>
<p>Like the definition of STEM itself, whether or not there's a STEM crisis is up for debate. </p>
<p>According to the <a target="_blank" href="https://www.bls.gov/opub/mlr/2015/article/stem-crisis-or-stem-surplus-yes-and-yes.htm">Bureau of Labor Statistics</a> (BLS), there's both a shortage and a surplus of STEM workers, depending on which discipline (electrical engineering, biomedical engineering, and so on) or job market (academic or private) you look at.</p>
<p>Still, the <a target="_blank" href="https://www.bls.gov/ooh/computer-and-information-technology/home.htm">BLS projects</a> that employment in computer and IT related fields will "grow 11 percent from 2019 to 2029, much faster than the average for all occupations". </p>
<p>Most of these new jobs are expected to come from an ever increasing demand for information security and cloud computing experts.</p>
<p>Whether or not there's a STEM shortage now or will be one in the future, many governments seem to agree that STEM education is worth investing in.</p>
<h2 id="heading-stem-in-the-classroom">STEM in the classroom</h2>
<p>You might be tired of hearing this, but STEM education can vary widely between countries, and even neighboring school districts.</p>
<p>Currently in the US, STEM education generally takes an integrated approach, where subjects are taught in unison rather than in separate class periods. Many states follow the <a target="_blank" href="https://www.nextgenscience.org/resources/ngss-fact-sheet">Next Generation Science Standards</a>, which place an emphasis on a hands-on, collaborative, student led approach to learning.</p>
<p>STEM education can begin as early as kindergarten, and may or may not require prior knowledge or involve students interacting directly with tech devices.</p>
<p>For example, a fourth grade lesson about algorithms could focus on more general computational thinking and logic rather than programming itself. </p>
<p>An unplugged activity to teach algorithms could be as simple as having groups of students create a necklace out of 5 different snacks. First, they draw a repeating pattern of snacks on a worksheet – cookie, chip, cereal, chip cookie, chip, cereal, etc.</p>
<p>After writing the "algorithm" for their necklace, they can build them with their group members using real snacks:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/10/snack-necklace-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Students in South Korea learning about basic algorithms</em></p>
<p>Once finished, students could present the algorithm they used and eat their snacks.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/10/snack-necklace-2.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>A student wearing their completed snack necklace</em></p>
<p>For slightly older or more advanced students, the activity could begin by writing a list of detailed instructions: Open the snacks, get some string, unravel some string, cut the string, take one cookie, place the cookie down, and so on.</p>
<p>Then rather than make the necklace themselves, they could read their algorithm to another group member, who has to follow every instruction literally. If there's a bug preventing them from finishing the necklace, both students can work together to debug the algorithm and revise the steps.</p>
<p>But this is just one simple example. Educators around the world are constantly coming up with innovative ways to teach fundamental STEM concepts, even without the use of technology.</p>
<h2 id="heading-in-summary">In summary</h2>
<p>STEM can mean several different things depending on the context. But generally it's a broad term that refers to education or jobs that focus on science, technology, engineering, math, and sometimes art.</p>
<p>Hopefully now you have a better understanding of STE(A)M, and what it means for education and jobs in the future.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Is It “Computer Science” or “Programming”? ]]>
                </title>
                <description>
                    <![CDATA[ By Sam Corcos An education policy white paper (hint: they’re not the same thing) by Lewis Ellis and Sam Corcos Advocates of computer science education have been pushing for improvements to pre-university computer science education, often bemoaning it... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/is-it-computer-science-or-programming-c01383dacc9c/</link>
                <guid isPermaLink="false">66c3588d7ef110ecbf367b25</guid>
                
                    <category>
                        <![CDATA[ Computer Science ]]>
                    </category>
                
                    <category>
                        <![CDATA[ education ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Education Reform ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 12 Nov 2015 20:04:29 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/1*hVBCwtCkDzfOPl6PcgEjBA.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Sam Corcos</p>
<h4 id="heading-an-education-policy-white-paper-hint-theyre-not-the-same-thing"><em>An education policy white paper (hint: they’re not the same thing)</em></h4>
<p><em>by <a target="_blank" href="https://github.com/lewisjellis">Lewis Ellis</a> and <a target="_blank" href="https://github.com/samcorcos">Sam Corcos</a></em></p>
<p>Advocates of computer science education have been pushing for improvements to pre-university computer science education, often bemoaning its underrepresentation and lack of recognition in our high schools.</p>
<p>These complaints are not without merit: as of November 2015, <strong>only 27 U.S. states recognize</strong> computer science as a math or science class, and <strong>90% of high schools have no offerings</strong> in the field. Statesmen, entrepreneurs, and celebrities have encouraged a shift towards greater computer science education.</p>
<blockquote>
<p>There just aren’t enough people who are trained and have these skills today.<br>—Mark Zuckerberg, Facebook</p>
</blockquote>
<p>With so many public advocates coming forward — especially surrounding Code.org’s “Hour of Code” campaign in December of 2014 — computer science education has become a mainstream issue. Visitors to Code.org are asked if they agree with the notion that “Every student in every school should have the opportunity to learn computer science,” and to sign their name to show support. Nearly 2 million people have done so, myself included.</p>
<blockquote>
<p>It’s important moving forward in the future, which is now, that everybody learn it. — Chris Bosh, Miami Heat</p>
</blockquote>
<p>But there’s a subtlety at play when you try to get more specific and ask someone exactly <em>what</em> they support. Do you support “programming” or “computer science” courses? <strong>Contrary to what you may think, these two subjects are about as different as Latin is to linear algebra</strong>. Allow me to explain.</p>
<blockquote>
<p>Give it a shot, and don’t let anyone tell you you can’t — President Obama</p>
</blockquote>
<h4 id="heading-what-is-computer-science">What is computer science?</h4>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*DLvEABmN4BAGKUlgsP_yNQ.png" alt="Image" width="494" height="111" loading="lazy"></p>
<p><strong>It’s math</strong>. As a computer science major myself, I can tell you first hand that computer science involves writing very little code — especially at the higher levels. If I had to arbitrarily assign a percentage to “math v. programming”, I would say that computer science is at least 80% math and at most 20% programming.</p>
<p>In computer science you learn about sorting algorithms, finite state machines, turing machines, parsers, lexers, tokenizers, lambda calculus, monads, monoids, functors, lists, maps, maybes, lenses, and futures, to name a few.</p>
<p>It is very common for computer science courses to have a mathematics prerequisite. <strong>Algorithms and data structures are heavily reliant on a background in math</strong>.</p>
<p>Also contrary to popular opinion, <strong>computer science majors are not necessarily good programmers</strong>. Granted, they show a higher aptitude towards becoming a good programmer, but they rarely know how to code anything useful coming out of college with a computer science degree.</p>
<h4 id="heading-what-is-programming">What is programming?</h4>
<pre><code><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">fibonacci</span>(<span class="hljs-params">n</span>) </span>{   <span class="hljs-keyword">if</span> (n &lt; <span class="hljs-number">2</span>) {     <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;   } <span class="hljs-keyword">else</span> {     <span class="hljs-keyword">return</span> fibonacci(n - <span class="hljs-number">2</span>) + fibonacci(n - <span class="hljs-number">1</span>);   }}
</code></pre><p><strong>It’s somewhere between a foreign language and formal logic</strong>. A word you will hear a lot in programming is “syntax”, which is how a particular programming language structures its logic. This might sound familiar because it’s the same word — not coincidentally — that foreign language classes use to describe the structure of sentences.</p>
<p>Programming does not require a highly mathematical background, and much like a foreign language, the only way to become a better programmer is to practice. Most people who start programming are surprised to discover how easy it is to learn and how little math is involved. As a friend once described it to me, “Once it stops looking like <em>The Matrix</em>, it’s actually pretty easy.” In my experience, this change of perception usually takes less than a month.</p>
<p>An example to illustrate the difference: In programming you generate a random number with the function <strong>Math.random()</strong>. In computer science, you learn how to build algorithms that make truly random numbers that can be used in a function like Math.random() to generate a random number.</p>
<h4 id="heading-problem-description">Problem description</h4>
<p>I taught myself to program in middle school and was disappointed with the limited computer science offerings at my high school<em>. In college, I taught computer science (CS) to many of my peers as an undergraduate TA for seven semesters, and also organized and ran four instances of a high-school-level programming contest*</em> totaling over 1000 participants. I’ve spent significant time interacting with CS students and instructors at both the secondary and post-secondary level.</p>
<p>I’ve also explicitly discussed CS education with numerous high school teachers, learning of their successes, difficulties, and abject failures. Much of what I’ve heard has lined up with a 2013 survey by the <em>Computer Science Teachers Association</em>, which found that:</p>
<blockquote>
<p>40 percent of teachers said the greatest challenge in teaching computer science is a lack of support or interest from school staff. Another 35 percent said a lack of student interest or enrollment was the greatest challenge. Rapidly changing technology and a lack of curriculum resources were cited as the greatest challenge by 30.5 percent and 23.5 percent of teachers, respectively.</p>
</blockquote>
<p>The conversations I’ve had with teachers reflect the results of that study. One major problem these teachers have told me about is how they grade their programming assignments. They would typically receive submissions from their students by email, then run and evaluate them manually on their own computer. This archaic system takes an order of magnitude more time to grade than the widely-used submission systems and auto-graders used in most universities.</p>
<p>They explain that without the enrollment numbers, staffing, or financial backing of a university CS department, they don’t have the resources to develop or invest in something more sophisticated. Even if they did, schools typically only have one computer science teacher who would stand to benefit. Nonetheless, these teachers would always have inspiring stories of the students they’ve taught, the curiosity they’ve helped spark, and the exciting things their students have gone on to do.</p>
<p>One challenge is convincing students to take a computer science course if it is offered. This is primarily due to the fact that it is often offered exclusively as an elective. A series of missing incentives has been stunting the growth of computer science education in a negatively-reinforcing spiral. When a class doesn’t count for anything, there is:</p>
<ol>
<li>No incentive for students to take it, and thus…</li>
<li>no incentive for schools to offer it, and thus…</li>
<li>no incentive for teachers to train to teach it.</li>
</ol>
<p>It would be unfortunate if students who would otherwise be interested are turned away from the field prematurely by poorly implemented or under-supported graduation requirements.</p>
<p>The existing high school advanced placement (AP) <em>Computer Science A</em> curriculum is actually mostly a programming course. It teaches object-oriented programming with Java, and its exam consists entirely of questions such as, “Here’s a piece of code, what does it do?” and, “Here’s a problem, write a program to solve it.”</p>
<p>The recently introduced AP <em>Computer Science Principles</em>, on the other hand, focuses on higher-level computational thinking, with programming being only one of seven “big ideas” covered by the curriculum. It discusses topics from audio and video to how the internet works, how we keep things secure, and the impacts computer systems can and do have on the world. It’s so unmarried to programming that it doesn’t even require teachers to use a specific programming language.</p>
<p>Of course, part of the confusion comes from history: AP Computer Science A (and formerly AP CS AB) was largely the only show in town for decades, and it was a programming course being called Computer Science. The AP Computer Science Principles curriculum is the kind of broad foundation course suited for the more general “Computer Science” name.</p>
<p>This new AP Computer Science Principles curriculum was introduced in late 2014 for launch during the 2016–17 school year, and 60 million students participated in “Hour of Code” in 2014, compared to just 20 million in 2013. We now have 27 states recognizing computer science courses as more than just an elective, and the rate of adoption is increasing.</p>
<p>But in spite of these improvements, our education system is moving too slowly and without a clear understanding of the direction in which we are going.</p>
<h4 id="heading-special-challenges-of-teaching-programming">Special challenges of teaching programming</h4>
<p><strong>Curriculum for computer science courses is fairly uniform and well established</strong>. The mathematical underpinning of the subject matter has not changed in decades so teaching a class from year to year with the same, refined lectures is practical.</p>
<p><strong>Programming, on the other hand, is quite different</strong>. There are dozens of major programming languages, each with varying use cases, complexity, and performance. Not only are there dozens of languages, but there are also hundreds of frameworks around these languages that change at an even faster rate. This makes it nearly impossible to teach an up-to-date course on the subject, but there are ways around this problem, to be discussed later.</p>
<p>Most college-level programming courses (inappropriately named “computer science”) teach a programming language called Java. Java was introduced by Oracle in the mid-1990s and was wildly popular and is still widely used today. Without going into too much detail, Java is not the programming language that students should be learning now: 20 years after the release of Java. The programming language of the future is a language called JavaScript, <em>which, in spite of its similar name, is actually in no way related to Java</em>.</p>
<p><strong>JavaScript is the most widely known programming language and it is the most employable language</strong>. Most of the next-generation web frameworks are run entirely on JavaScript, including Angular (supported by Google), React (supported by Facebook), and Meteor. JavaScript allows you to build full-featured software, websites, mobile apps, and just about anything else you can think of. And thanks to a massive investment in the language from Google (for more information, see <a target="_blank" href="https://code.google.com/p/v8/">V8</a>), JavaScript is now more than 5 times faster than Python, the currently favored programming language of science and academia.</p>
<p>Even with everything JavaScript has going for it, it’s difficult for me to say that all programming courses should teach JavaScript, at least at the introductory level. The efficacy of programming languages changes over time, so <strong>setting an inflexible curriculum could do more harm than good</strong>, which is how we ended up with classes teaching Java held over from the 90s.</p>
<p>Certain programming languages are also better at doing certain tasks. C++ is a very old language that is still among the most efficient languages available. Python also has a vast array of resources available that make machine learning much more practical than an implementation in JavaScript.</p>
<p>Another major challenge of teaching programming is the difficulty of setting curricula and measuring effectiveness. Also, as mentioned above, grading is a laborious process that is — ironically — completed manually in most classrooms.</p>
<h4 id="heading-policy-options">Policy options</h4>
<p>When students are asked about what got them interested in computer science, a common thread quickly becomes apparent: they liked computer science after only a brief exposure to the topic. I’ve never heard anyone say that it took a long time to develop an interest in the subject; they just needed an introduction, and curiosity took care of the rest.</p>
<p>This brings me to a study done some years ago that suggested an incredible related result. The original paper is <a target="_blank" href="http://www.eis.mdx.ac.uk/research/PhDArea/saeed/SD_PPIG_2009.pdf">here</a>, and Jeff Atwood provides a great summary <a target="_blank" href="http://blog.codinghorror.com/separating-programming-sheep-from-non-programming-goats/">here</a>. From the paper’s abstract:</p>
<blockquote>
<p>An experiment found two distinct populations of students: one could build and consistently apply a mental model of program execution; the other appeared either unable to build a model or to apply one consistently. The first group performed very much better in their end-of-course examination than the second in terms of success or failure … We show that consistency does have a strong effect on success in early learning to program but background programming experience, on the other hand, has little or no effect.”</p>
</blockquote>
<p>To quote Jeff Atwood’s take, this means that “the act of programming seems literally unteachable to a sizable subset of incoming computer science students.” This is not just numbers telling a story; every computer science educator I’ve asked has had some similar hunch that things just haven’t quite clicked for some sizable portion of their class.</p>
<p>I’ve seen it first hand over and over in my time as a teaching assistant for various intro-sequence programming-heavy CS courses. Every semester there would be a number of students who, not for lack of trying, simply could not make it through the course. It was prototypical: they would invest 20 or 30 hours per week, triple that of the average student, trying to get through each assignment, often spending 10 or sometimes even 20 hours in office hours seeking guidance, confirming understanding, and asking questions.</p>
<p>As teaching assistants (TAs) we would do everything we could, but it was always painful seeing these students put forth so much effort while so many others breeze by in comparison, spending 5 or 10 hours per assignment and rarely needing help.</p>
<p>It happened every semester, in every intro CS course, to a not-insignificant portion of the class. These are some of the brightest students in the world at the University of Pennsylvania, and once they find that CS isn’t a good fit for them, they go on to be researchers, bankers, doctors, and lawyers. If these otherwise perfectly intelligent and hardworking students are finding that it’s not for them, how can we possibly expect every high school student to learn any serious amount of programming?</p>
<p>Even if we dismiss the notion that many people just don’t grasp programming as well as others, Dan Bricklin, a decorated technologist best known for inventing the electronic spreadsheet, offers another take:</p>
<blockquote>
<p>Programming is a very error-prone business, especially with “typed-statement” systems. Most of them are very intolerant of errors (even simple typos)…Unless you are totally immersed in that particular programming system…it is very hard for most people to do …this is not to say that many people can’t get immersed in systems that require such understanding. They do in many parts of their lives.</p>
<p>For example, lawyers and tax accountants routinely work with such complexity in their contracts and planning. Doctors work with an untold number of variables…It’s just that people who aren’t professional or hobbyist programmers usually don’t want to get so immersed in something that is infrequently done and not part of the rest of their lives. The question really isn’t “Why Johnny can’t program” but rather “Why Johnny won’t or doesn’t choose to program”.</p>
</blockquote>
<p>Instead of splitting people into performance-based buckets, he considers motivations and complexity and suggests that maybe there’s some self-selection going on. Maybe some people just don’t want to invest heavily in something for which they see correspondingly little use. Maybe some people like some flavors of complexity but not others.</p>
<p>Sam Altman, President of Y Combinator (the famous seed fund which helped Dropbox, Airbnb, and countless other technology companies get off the ground), recently tweeted a concise summary of this notion:</p>
<blockquote>
<p>Everyone should have the opportunity to learn to code. But it’s not the answer to everything. Not everyone will like it or be good at it. I will never like or be good at football. A world where CS is the only option would be a sad one indeed.</p>
</blockquote>
<p>So what does all this mean? Programming isn’t for everyone. Not everyone will like or be good at it; the same goes for computer science. But it is imperative that students have the opportunity to try computer science sooner rather than later, so as to decide for themselves if they want to learn more.</p>
<p>Now that we’ve covered much of the background, there are four policy options that should be considered:</p>
<ol>
<li>Should all schools offer CS classes?</li>
<li>Should all schools offer programming classes?</li>
<li>Should all schools require CS classes?</li>
<li>Should all schools require programming classes?</li>
</ol>
<p>The first would oblige schools to offer a computer science class with the current curriculum; as a basic introduction to the field, the current curriculum will suffice. <strong>This policy option is absolutely worth implementing</strong>. Most people assume this is inevitable, but it only comes about with changes in legislation.</p>
<p>The second would oblige schools to offer a programming course. Unfortunately, this would be new for public schools and would require a new curriculum and additional training for teachers. Online resources, such as CodeAcademy, CodeSchool, KhanAcademy, and dozens of others have done a tremendous job making curriculum that is easily accessible and cutting edge. <strong>The coupling of classroom learning with some of these online resources might be the key to teaching programming courses</strong>. This policy option is only worth implementing if there are sufficient resources dedicated to making it work.</p>
<p>The third option would require students to take a computer science class as a graduation requirement. This is likely to happen at some point in the future, <strong>but it is premature to require it in 2015</strong>. The resources, teacher training, and public support are insufficient to make this work. That said, the math one learns in computer science is no less applicable to long-term success than geometry or calculus.</p>
<p>The fourth option would require students to take a programming course as a graduation requirement. This would mean learning a programming language, such as JavaScript, C++, Haskel, etc. While this would be a useful skill for many people, <strong>it is entirely unnecessary to require it in the classroom</strong>. Unlike English, math, or history, programming is a skill that lacks wide applicability outside of the act of programming itself.</p>
<h4 id="heading-policy-recommendations">Policy recommendations</h4>
<p>Some measures are easy to support unconditionally: Yes, a good computer science class should count as more than an elective. Yes, more schools should offer computer science classes. Yes, we want more people to learn computer science. But beyond these more easily supported suggestions, it’s not as clear what should be done.</p>
<p><strong>One recommendation is to make a broad introductory CS course accessible to every student</strong>. We only need to offer enough for students to try it out and see if they like it. If they do, and they want to learn more, the course served its purpose, and hopefully more in-depth offerings are also available. If they don’t, the course should have still taught some useful understandings, not just a bunch of programming specifics that the uninterested student is likely to never use again.</p>
<p><strong>Another recommendation is to set clear certification pathways and curricula for computer science teachers</strong>. Few states have done this, but it helps make teaching computer science more accessible to interested teachers. That leads to more computer science teachers, which enables more schools to offer computer science classes. It also helps us know when we have enough CS teachers to consider bigger future initiatives, which will require more resources than are currently available.</p>
<p>As a broad policy, I would recommend the following, in order of importance:</p>
<pre><code><span class="hljs-number">1.</span> All high schools should offer computer science courses, <span class="hljs-keyword">with</span> the current curriculum.
</code></pre><pre><code><span class="hljs-number">2.</span> Computer science courses should satisfy a math or science course requirement.
</code></pre><pre><code><span class="hljs-number">3.</span> All students should have the option to take at least an introductory computer science or programming course.
</code></pre><pre><code><span class="hljs-number">4.</span> Programming courses, where taught, should be offered <span class="hljs-keyword">in</span> a modern language, such <span class="hljs-keyword">as</span> JavaScript.
</code></pre><p>To whomever may be reading this, I’m quite interested to hear what you think and I look forward to reading your comments.</p>
<h4 id="heading-additional">Additional</h4>
<p><em>Photos courtesy of <a target="_blank" href="https://unsplash.com/">Unsplash</a></em></p>
<ul>
<li>Fortunately my high school did offer one CS class, and my computer science teacher was great. But there was only one of him, and he taught lots of other classes, and not many people took his CS class, so there wasn’t much hope for anything further.</li>
</ul>
<p>** PClassic.org</p>
<p><em>Sam Corcos is the lead developer and co-founder of <a target="_blank" href="http://sightlinemaps.com">Sightline Maps</a>, the most intuitive platform for 3D printing topographical maps, as well as<a target="_blank" href="http://learnphoenix.io">LearnPhoenix.io</a>, an advanced tutorial site for building scaleable production apps with Phoenix and React.</em></p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
