<?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[ stem - 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[ stem - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 28 Jul 2026 03:51:34 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/stem/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Open Source Tools Every STEM Student Should Know About ]]>
                </title>
                <description>
                    <![CDATA[ Technology has changed the way students learn science, mathematics, engineering, and computer science. A decade ago, most STEM students depended on textbooks, calculators, and expensive licensed softw ]]>
                </description>
                <link>https://www.freecodecamp.org/news/open-source-tools-every-stem-student-should-know-about/</link>
                <guid isPermaLink="false">6a27af485df8cf4edcb24d9b</guid>
                
                    <category>
                        <![CDATA[ Open Source ]]>
                    </category>
                
                    <category>
                        <![CDATA[ stem ]]>
                    </category>
                
                    <category>
                        <![CDATA[ student ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Software Engineering ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Computer Science ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manish Shivanandhan ]]>
                </dc:creator>
                <pubDate>Tue, 09 Jun 2026 06:14:32 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/uploads/covers/5e1e335a7a1d3fcc59028c64/0909758a-68d8-4064-9216-73838a1d9f88.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Technology has changed the way students learn science, mathematics, engineering, and computer science.</p>
<p>A decade ago, most STEM students depended on textbooks, calculators, and expensive licensed software. Today, open source tools have made advanced learning resources available to anyone with an internet connection.</p>
<p>Many of these tools are powerful enough for professional researchers and software engineers, yet simple enough for students who are just getting started. They help with coding, data analysis, mathematics, technical writing, visualization, collaboration, and project management.</p>
<p>In this article, we'll look at seven open source tools that can help STEM students study more effectively, build projects faster, and develop industry-ready technical skills.</p>
<h3 id="heading-what-well-cover">What We'll Cover:</h3>
<ul>
<li><p><a href="#heading-why-open-source-tools-matter-for-stem-students">Why Open Source Tools Matter for STEM Students</a></p>
</li>
<li><p><a href="#heading-jupyter-notebook-for-interactive-learning">Jupyter Notebook for Interactive Learning</a></p>
</li>
<li><p><a href="#heading-vs-code-for-programming-and-technical-projects">VS Code for Programming and Technical Projects</a></p>
</li>
<li><p><a href="#heading-geogebra-for-mathematics-visualization">GeoGebra for Mathematics Visualization</a></p>
</li>
<li><p><a href="#heading-git-and-github-for-collaboration">Git and GitHub for Collaboration</a></p>
</li>
<li><p><a href="#heading-blender-for-scientific-and-engineering-visualization">Blender for Scientific and Engineering Visualization</a></p>
</li>
<li><p><a href="#heading-obs-studio-for-recording-and-presentations">OBS Studio for Recording and Presentations</a></p>
</li>
<li><p><a href="#heading-how-open-source-tools-build-career-skills">How Open Source Tools Build Career Skills</a></p>
</li>
<li><p><a href="#heading-the-future-of-stem-education">The Future of STEM Education</a></p>
</li>
<li><p><a href="#heading-final-thoughts">Final Thoughts</a></p>
</li>
</ul>
<h2 id="heading-why-open-source-tools-matter-for-stem-students"><strong>Why Open Source Tools Matter for STEM Students</strong></h2>
<p>Open source software is more than just free software. It gives students access to the underlying code, community support, and the freedom to experiment without restrictions.</p>
<p>This matters because STEM education is becoming increasingly hands-on. Employers expect students to understand practical workflows, not just theory. Learning how to use modern tools early can make the transition into internships and engineering roles much easier.</p>
<p>Open source ecosystems also evolve quickly. Students can explore real-world technologies used in research labs, startups, and large engineering organizations. Many of these environments also rely on <a href="https://www.pulseofstrategy.com/best-n8n-alternatives/">open-source automation</a> tools to simplify development workflows and improve collaboration across technical teams.</p>
<h2 id="heading-jupyter-notebook-for-interactive-learning"><strong>Jupyter Notebook for Interactive Learning</strong></h2>
<p>One of the most important tools for STEM students is <a href="https://jupyter.org/">Jupyter Notebook</a>.</p>
<img src="https://cdn.hashnode.com/uploads/covers/66c6d8f04fa7fe6a6e337edd/24cdd6b3-ea00-4d93-b71d-73f7b3e2e1a6.png" alt="Jupyter Notebook" style="display:block;margin:0 auto" width="1686" height="1114" loading="lazy">

<p>Jupyter Notebook allows users to combine code, mathematical equations, visualizations, and notes inside a single interactive document. This makes it extremely useful for subjects like data science, physics, statistics, and machine learning.</p>
<p>A student can write Python code, run calculations, and immediately visualize the output using graphs or tables. Instead of switching between multiple applications, everything exists in one place.</p>
<p>For example, a physics student can simulate motion equations, while a statistics student can analyze datasets directly inside the notebook.</p>
<p>Jupyter is widely used in universities and research institutions because it supports experimentation and iterative learning.</p>
<h2 id="heading-vs-code-for-programming-and-technical-projects"><strong>VS Code for Programming and Technical Projects</strong></h2>
<p><a href="https://code.visualstudio.com/">Visual Studio Code</a> has become one of the most popular development environments in the world. Although it is developed by Microsoft, it's built on open source technologies and supports a massive extension ecosystem.</p>
<img src="https://cdn.hashnode.com/uploads/covers/66c6d8f04fa7fe6a6e337edd/85de174e-0aba-439f-9820-8a463dc4a5da.png" alt="VS Code" style="display:block;margin:0 auto" width="1201" height="669" loading="lazy">

<p>For STEM students, VS Code is valuable because it supports nearly every major programming language. Whether you're learning Python, JavaScript, C++, or Rust, the editor provides debugging, syntax highlighting, terminal integration, and Git support in one interface.</p>
<p>Engineering students often work across multiple disciplines. A robotics student might write Python scripts, configure embedded systems, and document experiments all in the same environment.</p>
<p>VS Code also integrates well with Jupyter Notebook, making it an excellent all-in-one workspace for technical learning.</p>
<h2 id="heading-geogebra-for-mathematics-visualization"><strong>GeoGebra for Mathematics Visualization</strong></h2>
<p>Mathematics becomes easier when students can visualize concepts instead of memorizing formulas.</p>
<p><a href="https://www.geogebra.org/">GeoGebra</a> is an open source mathematics platform that helps students explore algebra, geometry, calculus, and statistics through interactive graphs and simulations.</p>
<img src="https://cdn.hashnode.com/uploads/covers/66c6d8f04fa7fe6a6e337edd/a2623d2c-6226-4b63-9040-adca131acc6a.png" alt="GeoGebra" style="display:block;margin:0 auto" width="1363" height="649" loading="lazy">

<p>Students can manipulate equations dynamically and observe how graphs change in real time. This creates a much deeper understanding of mathematical relationships.</p>
<p>Interactive visualisation tools are especially useful for students preparing for advanced mathematics courses. Popular teaching platforms like <a href="https://brighterly.com/">Brighterly</a> who are known as a great precalculus tutor, use graphing platforms like GeoGebra to better understand trigonometric functions, transformations, and polynomial behaviour. The platform is also useful for individual teachers who want to create interactive lessons instead of relying entirely on static diagrams.</p>
<h2 id="heading-git-and-github-for-collaboration"><strong>Git and GitHub for Collaboration</strong></h2>
<p>Version control is one of the most important technical skills students can learn.</p>
<p><a href="https://git-scm.com/">Git</a> is an open source version control system that helps developers track changes in code and collaborate efficiently. It is widely used across software engineering, data science, and research projects.</p>
<img src="https://cdn.hashnode.com/uploads/covers/66c6d8f04fa7fe6a6e337edd/44199e64-6660-4a37-80bf-f87e9fe466da.webp" alt="Github" style="display:block;margin:0 auto" width="1914" height="1314" loading="lazy">

<p>Students often lose work because they overwrite files or create confusing project versions. Git solves this problem by maintaining a complete history of changes.</p>
<p>When paired with <a href="https://github.com/">GitHub</a>, students can collaborate on projects, contribute to open source repositories, and build a public portfolio of technical work.</p>
<p>This is especially valuable for computer science students applying for internships or engineering roles. Recruiters frequently review GitHub profiles to evaluate coding ability and project experience.</p>
<p>Even students outside traditional software engineering fields benefit from Git. Researchers use it for reproducible experiments, while engineering teams use it to manage technical documentation and simulation code.</p>
<h2 id="heading-blender-for-scientific-and-engineering-visualization"><strong>Blender for Scientific and Engineering Visualization</strong></h2>
<p>Most people associate Blender with animation and game design, but it's also a powerful tool for STEM applications.</p>
<p><a href="https://www.blender.org/">Blender</a> is an open source 3D modeling and rendering platform used in industries ranging from architecture to scientific visualization.</p>
<img src="https://cdn.hashnode.com/uploads/covers/66c6d8f04fa7fe6a6e337edd/14dfc5d6-9ff6-4934-9220-aa027abd8a64.png" alt="Blender" style="display:block;margin:0 auto" width="1600" height="957" loading="lazy">

<p>Engineering students can use Blender to create product prototypes, mechanical visualizations, and simulation renders. Biology students can build anatomical models, while physics students can visualize complex systems in three dimensions.</p>
<p>Visualization plays a major role in technical understanding. A well-designed 3D model can explain concepts that are difficult to communicate through text alone.</p>
<p>Blender also teaches valuable spatial reasoning and design skills that are increasingly useful in fields like robotics, manufacturing, and augmented reality.</p>
<h2 id="heading-obs-studio-for-recording-and-presentations"><strong>OBS Studio for Recording and Presentations</strong></h2>
<p>Modern STEM learning is becoming more collaborative and content-driven.</p>
<p>Students now create tutorials, record presentations, explain coding projects, and participate in online learning communities. <a href="https://obsproject.com/">OBS Studio</a> is an open source tool that allows users to record screens, stream presentations, and create technical demonstrations.</p>
<img src="https://cdn.hashnode.com/uploads/covers/66c6d8f04fa7fe6a6e337edd/be764693-ba75-4103-a071-69ebd745b91c.jpg" alt="OBS Studio" style="display:block;margin:0 auto" width="1920" height="1080" loading="lazy">

<p>This is particularly useful for students building portfolios or preparing project walkthroughs.</p>
<p>For example, a software engineering student can record a demo of a web application, while a mathematics student can create video explanations of problem-solving methods.</p>
<p>OBS Studio is lightweight, flexible, and widely used by educators, developers, and technical creators.</p>
<h2 id="heading-how-open-source-tools-build-career-skills"><strong>How Open Source Tools Build Career Skills</strong></h2>
<p>One of the biggest advantages of open source tools is that they mirror real industry workflows.</p>
<p>Students aren't just learning academic concepts. They're learning systems used in professional engineering environments.</p>
<p>A student who understands Git, VS Code, Jupyter, and collaborative development practices already has exposure to modern software engineering workflows. Similarly, students using Blender or GeoGebra are developing visualization and analytical skills that transfer into technical careers.</p>
<p>Open source communities also encourage experimentation. Students can inspect source code, contribute fixes, participate in discussions, and learn directly from experienced developers around the world.</p>
<p>This creates a more active learning process than simply consuming tutorials.</p>
<h2 id="heading-the-future-of-stem-education"><strong>The Future of STEM Education</strong></h2>
<p>STEM education is shifting toward project-based and interdisciplinary learning.</p>
<p>Students are expected to solve problems, communicate ideas clearly, and adapt to rapidly evolving technologies. Open source tools make this possible by lowering financial barriers and giving students access to professional-grade software.</p>
<p>The rise of artificial intelligence, data science, and remote collaboration has also increased the importance of technical self-learning. Students who can independently explore tools and build projects will have a significant advantage in both academics and industry.</p>
<p>The good news is that modern open source ecosystems make this easier than ever before. A student with a laptop and internet connection can now access tools that were once available only to large universities or research organizations.</p>
<h2 id="heading-final-thoughts"><strong>Final Thoughts</strong></h2>
<p>The best STEM students aren't always the ones with the most expensive hardware or software. Often, they're the ones who learn how to use accessible tools creatively and consistently.</p>
<p>Platforms like Jupyter Notebook, VS Code, GeoGebra, LibreOffice, Git, Blender, and OBS Studio provide a strong foundation for technical learning across many disciplines.</p>
<p>More importantly, these tools encourage curiosity, experimentation, and practical problem-solving. Those skills matter far beyond the classroom.</p>
<p>As STEM education continues to evolve, students who embrace open source technology will be better prepared for research, engineering, software development, and the increasingly interdisciplinary future of technical work.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Build a Voice AI Agent Using Open-Source Tools ]]>
                </title>
                <description>
                    <![CDATA[ Voice is the next frontier of conversational AI. It is the most natural modality for people to chat and interact with another intelligent being. In the past year, frontier AI labs such as OpenAI, xAI, Anthropic, Meta, and Google have all released rea... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-build-a-voice-ai-agent-using-open-source-tools/</link>
                <guid isPermaLink="false">68f7d890413573e1d65bb331</guid>
                
                    <category>
                        <![CDATA[ AI ]]>
                    </category>
                
                    <category>
                        <![CDATA[ education ]]>
                    </category>
                
                    <category>
                        <![CDATA[ stem ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Voice ]]>
                    </category>
                
                    <category>
                        <![CDATA[ agentic AI ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Open Source ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Rust ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Michael Yuan ]]>
                </dc:creator>
                <pubDate>Tue, 21 Oct 2025 19:01:36 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1761073279608/a73ce2cd-c95e-4f8b-b529-8774ce39a43f.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Voice is the next frontier of conversational AI. It is the most natural modality for people to chat and interact with another intelligent being.</p>
<p>In the past year, frontier AI labs such as OpenAI, xAI, Anthropic, Meta, and Google have all released real-time voice services. Yet voice apps also have the highest requirements for latency, privacy, and customization. It’s difficult to have a one-size-fits-all voice AI solution.</p>
<p>In this article, we’ll explore how to use open-source technologies to create <a target="_blank" href="https://echokit.dev/">voice AI agents</a> that utilize your custom knowledge base, voice style, actions, fine-tuned AI models, and run on your own computer.</p>
<h2 id="heading-what-well-cover">What We’ll Cover:</h2>
<ul>
<li><p><a class="post-section-overview" href="#heading-prerequisites">Prerequisites</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-what-it-looks-like">What it Looks Like</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-two-voice-ai-approaches">Two Voice AI Approaches</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-the-voice-ai-orchestrator">The Voice AI Orchestrator</a></p>
<ul>
<li><p><a class="post-section-overview" href="#heading-configure-an-asr">Configure an ASR</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-run-and-configure-a-vad">Run and configure a VAD</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-configure-an-llm">Configure an LLM</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-configure-a-tts">Configure a TTS</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-configure-mcp-and-actions">Configure MCP and actions</a></p>
</li>
</ul>
</li>
<li><p><a class="post-section-overview" href="#heading-local-ai-with-llamaedge">Local AI With LlamaEdge</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-conclusion">Conclusion</a></p>
</li>
</ul>
<h2 id="heading-prerequisites">Prerequisites</h2>
<p>You’ll need to have and know a few things to most effectively follow along with this tutorial:</p>
<ul>
<li><p>Access to a Linux-like system. Mac or Windows WSL suffice too.</p>
</li>
<li><p>Be comfortable with command line (CLI) tools.</p>
</li>
<li><p>Be able to run server applications on the Linux system.</p>
</li>
<li><p>Have/get free API keys from <a target="_blank" href="https://console.groq.com/keys">Groq</a> and <a target="_blank" href="https://elevenlabs.io/app/sign-in?redirect=%2Fapp%2Fdevelopers%2Fapi-keys">ElevenLabs</a>.</p>
</li>
<li><p>Optional: be able to compile and build Rust source code.</p>
</li>
<li><p>Optional: have/get an <a target="_blank" href="https://echokit.dev/echokit_diy.html">EchoKit device</a> or assemble your own.</p>
</li>
</ul>
<h2 id="heading-what-it-looks-like">What it Looks Like</h2>
<p>The key software component we will cover is the <a target="_blank" href="https://github.com/second-state/echokit_server">echokit_server</a> project. It is an open-source agent orchestrator for voice AI applications. That means it coordinates services such as LLMs, ASR, TTS, VAD, MCP, search, knowledge/vector databases, and others to generate intelligent voice responses from user prompts.</p>
<p>The EchoKit server provides a WebSocket interface that allows compatible clients to send and receive voice data to and from it. The <a target="_blank" href="https://github.com/second-state/echokit_box">echokit_box</a> project provides an ESP32-based firmware that can act as a client to collect audio from the user and play TTS-generated voice from the EchoKit server. You can see a couple of demos here. You can assemble your own EchoKit device or <a target="_blank" href="https://echokit.dev/echokit_diy.html">purchase one</a>.</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/XroT7a0DLkw" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p> </p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/Zy-rLT4EgZQ" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p> </p>
<p>Of course, you can also use a pure software client that conforms to the <a target="_blank" href="https://github.com/second-state/echokit_server">echokit_server</a> WebSocket interface. The project publishes a <a target="_blank" href="https://echokit.dev/chat/">JavaScript web page</a> that you can run locally to connect to your own EchoKit server as a reference.</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/Eyd9ToflccY" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p> </p>
<p>In the rest of the article, I will discuss how it’s implemented and how to deploy the system for your own voice AI applications.</p>
<h2 id="heading-two-voice-ai-approaches">Two Voice AI Approaches</h2>
<p>When OpenAI released its “realtime voice” services in October 2024, the consensus was that voice AI required “end-to-end” AI models. Traditional LLMs take text as input and then respond in text. The voice end-to-end models take voice audio data as input and respond in voice audio data as well. The end-to-end models could reduce latency since the voice processing, understanding, and generation are done in a single step.</p>
<p>But an end-to-end model is very difficult to customize. For example, it’s impossible to add your own prompt and knowledge to the context for each LLM request, or to act on the LLM's thinking or tool-call responses, or to clone your own voice for the response.</p>
<p>The second approach is to use an “agent orchestration” service to tie together multiple AI models, using one model’s output as the input for the next model. This allows us to customize or select each model and manipulate or supplement the model input at every step.</p>
<ul>
<li><p>The VAD model is used to detect conversation turns in the user's speech. It determines when the user is finished speaking and is now expecting a response.</p>
</li>
<li><p>The ASR/STT model turns user speech into text.</p>
</li>
<li><p>The LLM model generates a text response, including MCP tool calls.</p>
</li>
<li><p>The TTS model turns the response text into voice.</p>
</li>
</ul>
<p>The issue with multi-model and multi-step orchestration is that it can be slow. A lot of optimizations are needed for this approach to work well. For example, a useful technique is to utilize streaming input and output wherever possible. This way, each model doesn’t have to wait for the complete response from the upstream model.</p>
<p>The <a target="_blank" href="https://github.com/second-state/echokit_server">EchoKit server</a> is a stream-everything, highly efficient AI model orchestrator. It is entirely written in Rust for stability, safety, and speed.</p>
<h2 id="heading-the-voice-ai-orchestrator">The Voice AI Orchestrator</h2>
<p>The EchoKit server project is an open-source AI service orchestrator focused on real-time voice use cases. It starts up a WebSocket server that listens for streaming audio input and returns streaming audio responses.</p>
<p>You can build the <a target="_blank" href="https://github.com/second-state/echokit_server">echokit_server</a> project yourself using the Rust toolchain. Or, you can simply download the pre-built binary for your computer.</p>
<pre><code class="lang-bash"><span class="hljs-comment"># for x86 / AMD64 CPUs</span>
curl -LO https://github.com/second-state/echokit_server/releases/download/v0.1.0/echokit_server-v0.1.0-x86_64-unknown-linux-gnu.tar.gz
unzip echokit_server-v0.1.0-x86_64-unknown-linux-gnu.tar.gz

<span class="hljs-comment"># for arm64 CPUs</span>
curl -LO https://github.com/second-state/echokit_server/releases/download/v0.1.0/echokit_server-v0.1.0-aarch64-unknown-linux-gnu.tar.gz
unzip echokit_server-v0.1.0-aarch64-unknown-linux-gnu.tar.gz
</code></pre>
<p>Then, run it as follows:</p>
<pre><code class="lang-bash">nohup ./echokit_server &amp;
</code></pre>
<p>It reads the <code>config.toml</code> file from the current directory. At the top of the file, you can configure the port on which the WebSocket server listens. You can also specify a WAV file that is downloaded to the connected <a target="_blank" href="https://echokit.dev/echokit_diy.html">EchoKit client device</a> as a welcome message.</p>
<pre><code class="lang-ini"><span class="hljs-attr">addr</span> = <span class="hljs-string">"0.0.0.0:8000"</span>
<span class="hljs-attr">hello_wav</span> = <span class="hljs-string">"hello.wav"</span>
</code></pre>
<h3 id="heading-configure-an-asr">Configure an ASR</h3>
<p>When the EchoKit server receives the user's voice data, it first sends the data to an ASR service to convert it into text.</p>
<p>There are many compelling ASR models available today. The EchoKit server can work with any OpenAI-compatible API providers, such as OpenAI itself, x.ai, OpenRouter, and Groq.</p>
<p>In our example, we use Groq’s Whisper ASR service. Whisper is a state-of-the-art ASR model released by OpenAI. Groq provides specialized hardware chips to run it very fast. You will first get <a target="_blank" href="https://console.groq.com/keys">a free API key from Groq</a>. Then, configure the ASR service as follows. Notice the “prompt” for the Whisper model. It is a tried-and-true prompt to reduce hallucination of the Whisper model.</p>
<pre><code class="lang-ini"><span class="hljs-section">[asr]</span>
<span class="hljs-attr">url</span> = <span class="hljs-string">"https://api.groq.com/openai/v1/audio/transcriptions"</span>
<span class="hljs-attr">api_key</span> = <span class="hljs-string">"gsk_XYZ"</span>
<span class="hljs-attr">model</span> = <span class="hljs-string">"whisper-large-v3"</span>
<span class="hljs-attr">lang</span> = <span class="hljs-string">"en"</span>
<span class="hljs-attr">prompt</span> = <span class="hljs-string">"Hello\n你好\n(noise)\n(bgm)\n(silence)\n"</span>
</code></pre>
<h3 id="heading-run-and-configure-a-vad">Run and configure a VAD</h3>
<p>In order to carry out a voice conversation, participants must detect each other's intentions and speak only when a turn arises. VAD (Voice Activity Detection) is a specialized AI model used to detect activities and, in particular, when the speaker has finished and expects an answer.</p>
<p>In EchoKit, we have VAD detection on both the device and the server.</p>
<ul>
<li><p>Device-side VAD: It detects human language. The device ignores background noise, music, keyboard sounds, and dog barking. It only sends human voice to the server.</p>
</li>
<li><p>Server-side VAD: It processes the audio stream in 100ms (0.1s) chunks. Once it detects that the speaker has finished, it sends all transcribed text to the LLM and starts waiting for the LLM’s response stream.</p>
</li>
</ul>
<p>The server-side VAD is optional, since the device-side VAD can also generate “conversation turn” signals. But due to the limited computing resources on the device, adding the server-side VAD can dramatically improve the overall VAD performance.</p>
<p>We’re porting the popular <a target="_blank" href="https://github.com/snakers4/silero-vad">Silero VAD</a> project from Python to Rust, and creating the <a target="_blank" href="https://github.com/second-state/silero_vad_server">silero_vad_server</a> project. Build the project <a target="_blank" href="https://github.com/second-state/silero_vad_server?tab=readme-ov-file#build-the-api-server">as instructed</a>. You can start the VAD server on your EchoKit server’s port 9094 as follows:</p>
<pre><code class="lang-bash">VAD_LISTEN=0.0.0.0:9094 nohup target/release/silero_vad_server &amp;
</code></pre>
<p>You might be wondering: why port to Rust? While many AI projects are written in Python for ease of development, Rust applications are often much lighter, faster, and safer at deployment. So, we’ll leverage AI tools like <a target="_blank" href="https://github.com/cardea-mcp/RustCoder">RustCoder</a> to port as much Python code as possible to Rust. The EchoKit software stack is largely written in Rust.</p>
<p>The VAD server is a WebSocket service that listens on port 9094. As we discussed, the EchoKit server will stream audio to this WebSocket and stop the ASR when a conversation turn is detected. Therefore, we’ll add the VAD service to the EchoKit server’s ASR config section in <code>config.toml</code>.</p>
<pre><code class="lang-ini"><span class="hljs-section">[asr]</span>
<span class="hljs-attr">url</span> = <span class="hljs-string">"https://api.groq.com/openai/v1/audio/transcriptions"</span>
<span class="hljs-attr">api_key</span> = <span class="hljs-string">"gsk_XYZ"</span>
<span class="hljs-attr">model</span> = <span class="hljs-string">"whisper-large-v3"</span>
<span class="hljs-attr">lang</span> = <span class="hljs-string">"en"</span>
<span class="hljs-attr">prompt</span> = <span class="hljs-string">"Hello\n你好\n(noise)\n(bgm)\n(silence)\n"</span>
<span class="hljs-attr">vad_realtime_url</span> = <span class="hljs-string">"ws://localhost:9094/v1/audio/realtime_vad"</span>
</code></pre>
<h3 id="heading-configure-an-llm">Configure an LLM</h3>
<p>Once the ASR service transcribes the user's voice into text, the next step in the pipeline is the LLM (Large Language Model). It’s the AI service that actually “thinks” and generates an answer in text.</p>
<p>Again, the EchoKit server can work with any OpenAI-compatible API providers for LLMs, such as OpenAI itself, x.ai, OpenRouter, and Groq. Since the voice service is highly sensitive to speed, we’ll choose Groq again. Groq supports a number of open-source LLMs. We’ll choose the <code>gpt-oss-20b</code> model released by OpenAI.</p>
<pre><code class="lang-ini"><span class="hljs-section">[llm]</span>
<span class="hljs-attr">llm_chat_url</span> = <span class="hljs-string">"https://api.groq.com/openai/v1/chat/completions"</span>
<span class="hljs-attr">api_key</span> = <span class="hljs-string">"gsk_XYZ"</span>
<span class="hljs-attr">model</span> = <span class="hljs-string">"openai/gpt-oss-20b"</span>
<span class="hljs-attr">history</span> = <span class="hljs-number">20</span>
</code></pre>
<p>The “history” field indicates how many messages should be kept in the context. Another crucial feature of an LLM application is the “system prompt,” where you instruct the LLM how it should “behave.” You can specify the system prompt in the EchoKit server config as well.</p>
<pre><code class="lang-ini"><span class="hljs-section">[[llm.sys_prompts]]</span>
<span class="hljs-attr">role</span> = <span class="hljs-string">"system"</span>
<span class="hljs-attr">content</span> = <span class="hljs-string">"""
You are a comedian. Engage in lighthearted and humorous conversation with the user. Tell jokes when appropriate.

"""</span>
</code></pre>
<p>Since Groq is very fast, it can process very large system prompts in under one second. You can add a lot more context and instructions to the system prompt. For example, you can give the application “knowledge” about a specific field by putting entire books into the system prompt.</p>
<h3 id="heading-configure-a-tts">Configure a TTS</h3>
<p>Finally, once the LLM generates a text response, the EchoKit server will call a TTS (text to speech) service to convert the text into voice and stream it back to the client device.</p>
<p>While Groq has a TTS service, it’s not particularly compelling. ElevenLabs is a leading TTS provider that offers hundreds of voice characters. It can express emotions and supports easy voice cloning. In the config below, you’ll put in your <a target="_blank" href="https://elevenlabs.io/app/sign-in?redirect=%2Fapp%2Fdevelopers%2Fapi-keys">ElevenLabs API key</a> and select a voice.</p>
<pre><code class="lang-ini"><span class="hljs-section">[tts]</span>
<span class="hljs-attr">platform</span> = <span class="hljs-string">"Elevenlabs"</span>
<span class="hljs-attr">token</span> = <span class="hljs-string">"sk_xyz"</span>
<span class="hljs-attr">voice</span> = <span class="hljs-string">"VOICE-ID-ABCD"</span>
</code></pre>
<p>The ElevenLabs TTS models and API services are all great, but they are not open-source. A very compelling open-source TTS, known as GPT-SoVITS, is also available.</p>
<p>You can port GPT-SoVITS from Python to Rust and create an open-source API server project called <a target="_blank" href="https://github.com/second-state/gsv_tts">gsv_tts</a>. It allows easy cloning of any voice. You can run a <a target="_blank" href="https://github.com/second-state/gsv_tts">gsv_tts</a> API server by following its instructions. Then, you can configure the EchoKit server to stream text to it and receive streaming audio from it.</p>
<pre><code class="lang-ini"><span class="hljs-section">[tts]</span>
<span class="hljs-attr">platform</span> = <span class="hljs-string">"StreamGSV"</span>
<span class="hljs-attr">url</span> = <span class="hljs-string">"http://gsv_tts.server:port/v1/audio/stream_speech"</span>
<span class="hljs-attr">speaker</span> = <span class="hljs-string">"michael"</span>
</code></pre>
<h3 id="heading-configure-mcp-and-actions">Configure MCP and actions</h3>
<p>Of course, an “AI agent” is not just about chatting. It is about performing actions on specific tasks. For example, the <a target="_blank" href="https://www.youtube.com/watch?v=Zy-rLT4EgZQ">“US civics test prep”</a> use case, which I shared as an example video at the beginning of this article, requires the agent to get exam questions from a database, and then generate responses that guide the user toward the official answer. This is accomplished using LLM tools and actions.</p>
<ul>
<li><p>The LLM detects that the user is requesting a new question.</p>
</li>
<li><p>Instead of responding in natural language, it responds with a JSON structure that instructs the agent to "get a new question and answer."</p>
</li>
<li><p>The EchoKit server intercepts this JSON response and retrieves the question and answer from a database.</p>
</li>
<li><p>The EchoKit server sends the question and answer back to the LLM.</p>
</li>
<li><p>The LLM formulates a natural language response based on the question and answer.</p>
</li>
<li><p>The EchoKit server generates a voice response using its TTS service.</p>
</li>
</ul>
<p>As you can see, the EchoKit server needs to perform a few extra steps behind the scenes before it responds in voice. The EchoKit server leverages the MCP protocol for this. The function to look up questions and answers is provided by an open-source MCP server called <a target="_blank" href="https://github.com/cardea-mcp/ExamPrepAgent">ExamPrepAgent</a>.</p>
<p>The MCP protocol standardizes the tools and functions for LLMs to call. There are many MCP servers available for all kinds of different tasks. ExamPrepAgent is just one of them.</p>
<p>We are running this MCP server on port 8003. With the MCP server up and running, you only need to add the following configuration to EchoKit server’s <code>config.toml</code>.</p>
<pre><code class="lang-ini"><span class="hljs-section">[[llm.mcp_server]]</span>
<span class="hljs-attr">server</span> = <span class="hljs-string">"http://localhost:8003/mcp"</span>
<span class="hljs-attr">type</span> = <span class="hljs-string">"http_streamable"</span>
</code></pre>
<p>With MCP integration, the EchoKit AI agent can now perform actions. It can call APIs to send messages, make payments, or even turn electronic devices on or off.</p>
<h2 id="heading-local-ai-with-llamaedge">Local AI With LlamaEdge</h2>
<p>You’ve now seen the open-source EchoKit device working with the open-source EchoKit server to understand and respond to users in voice. But the AI models we use, while also open-source, run on commercial cloud providers. Can we run AI models using open-source technologies at home?</p>
<p><a target="_blank" href="https://github.com/LlamaEdge/LlamaEdge">LlamaEdge</a> is an open-source, cross-platform API server for AI models. It <a target="_blank" href="https://llamaedge.com/docs/ai-models/">supports many mainstream LLM, ASR, and TTS models</a> across Linux, Mac, Windows, and many CPU/GPU architectures. It’s perfect for running AI models on home or office computers. It also provides OpenAI-compatible API endpoints, which makes them very easy to integrate into the EchoKit server.</p>
<p>To install LlamaEdge and its dependencies, run the following shell command. It will detect your hardware and install the appropriate software that can fully take advantage of your GPUs (if any).</p>
<pre><code class="lang-bash">curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install_v2.sh | bash -s
</code></pre>
<p>Then, download an open-source LLM model. I am using Google's Gemma model as an example.</p>
<pre><code class="lang-bash">curl -LO https://huggingface.co/second-state/gemma-3-4b-it-GGUF/resolve/main/gemma-3-4b-it-Q5_K_M.gguf
</code></pre>
<p>Download the cross-platform LlamaEdge API server.</p>
<pre><code class="lang-bash">curl -LO https://github.com/second-state/LlamaEdge/releases/latest/download/llama-api-server.wasm
</code></pre>
<p>Start an LLamaEdge API server with the Google Gemma LLM model. by default, it listens on localhost port 8080.</p>
<pre><code class="lang-bash">wasmedge --dir .:. --nn-preload default:GGML:AUTO:gemma-3-4b-it-Q5_K_M.gguf llama-api-server.wasm -p gemma-3
</code></pre>
<p>Test the OpenAI compatible API on that server.</p>
<pre><code class="lang-bash">curl -X POST http://localhost:8080/v1/chat/completions \
  -H <span class="hljs-string">'accept: application/json'</span> \
  -H <span class="hljs-string">'Content-Type: application/json'</span> \
  -d <span class="hljs-string">'{"messages":[{"role":"system", "content": "You are a helpful assistant. Try to be as brief as possible."}, {"role":"user", "content": "Where is the capital of Texas?"}]}'</span>
</code></pre>
<p>Now, you can add this local LLM service to your EchoKit server configuration.</p>
<pre><code class="lang-ini"><span class="hljs-section">[llm]</span>
<span class="hljs-attr">llm_chat_url</span> = <span class="hljs-string">"http://localhost:8080/v1/chat/completions"</span>
<span class="hljs-attr">api_key</span> = <span class="hljs-string">"NONE"</span>
<span class="hljs-attr">model</span> = <span class="hljs-string">"default"</span>
<span class="hljs-attr">history</span> = <span class="hljs-number">20</span>
</code></pre>
<p>The LlamaEdge project supports more than LLMs. It runs the <a target="_blank" href="https://github.com/LlamaEdge/whisper-api-server">Whisper ASR model</a> and the <a target="_blank" href="https://github.com/LlamaEdge/tts-api-server">Piper TTS model</a> as OpenAI-compatible API servers as well.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>The voice AI agent software stack is complex and deep. EchoKit is an open-source platform that ties together and coordinates all those components. It provides a good vantage point for us to learn about the entire stack.</p>
<p>I can’t wait to see what you build!</p>
 ]]>
                </content:encoded>
            </item>
        
            <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[ How We Can Make Education Accessible Through Community ]]>
                </title>
                <description>
                    <![CDATA[ By Connor Lindsey Technological innovations, like those from Boston Dynamics, offer a glimpse of exciting growth and change in the near future! Science, technology, engineering, and math (STEM) are growing in many ways. New technologies drive change ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-we-can-make-education-accessible-through-community-ce3bf46cb00d/</link>
                <guid isPermaLink="false">66c35678d372f14b49bdcb7d</guid>
                
                    <category>
                        <![CDATA[ education ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ stem ]]>
                    </category>
                
                    <category>
                        <![CDATA[ tech  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Thu, 03 Jan 2019 16:44:28 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/0*GpHYqOpiPvHYaBBp" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Connor Lindsey</p>
<p>Technological innovations, like those from <a target="_blank" href="https://www.bostondynamics.com/">Boston Dynamics</a>, offer a glimpse of exciting growth and change in the near future! Science, technology, engineering, and math (STEM) are growing in many ways. New technologies drive change in traditional industries, stimulate job growth, and revolutionize education.</p>
<p>From advanced research to elementary-school classrooms, our world is changing as technology becomes more prevalent.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*GpHYqOpiPvHYaBBp" alt="Image" width="800" height="533" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@nicetomeetyou?utm_source=medium&amp;utm_medium=referral" rel="noopener" target="_blank" title=""&gt;Frank Wang on &lt;a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral" rel="noopener" target="<em>blank" title=")</em></p>
<p>The <a target="_blank" href="https://www.ecs.org/">Education Commission of the States</a> (ECS) has reported that STEM related industries will experience 13% job growth from 2017 to 2027. Within that category, <a target="_blank" href="http://vitalsigns.ecs.org/state/united-states/demand">computer related industries</a> will grow the most at 14%. In comparison, the average growth is expected to be 9%.</p>
<p>Median hourly earnings are $38.85 for STEM-related careers, compared to the $19.30 average. That’s a difference of over $40,000 in yearly income assuming a 40-hour work week. Unemployment is also half of the average (2.2% vs. 5.5%).</p>
<p>This all seems great! Fantastic job growth, high pay, and low unemployment. One key challenge to rain on this STEM parade is that many of those jobs could go unfilled in the future. In manufacturing alone, 3.5 million jobs will be needed by 2025, with nearly 2 million going <a target="_blank" href="https://www.emerson.com/en-us/news/corporate/2018-stem-survey">unfilled</a>.</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/0*_iGLJt5EohKMSS6a" alt="Image" width="800" height="533" loading="lazy">
_Photo by [Unsplash](https://unsplash.com/@_louisreed?utm_source=medium&amp;utm_medium=referral" rel="noopener" target="_blank" title=""&gt;Louis Reed on &lt;a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral" rel="noopener" target="<em>blank" title=")</em></p>
<p>The most commonly cited cause for this disparity is that workers will not be qualified enough to fill those roles. This leads us to wonder, what can be done to prepare workers for those jobs?</p>
<p>The demand for STEM education is understood by parents and students. 90% of students expect their future job will require some computer science knowledge. 85% of parents agree. Parents from low-income families ($54,000 or less yearly income) are <a target="_blank" href="https://services.google.com/fh/files/misc/searching-for-computer-science_report.pdf">twice</a> as likely to find computer science more important than required courses.</p>
<p>Despite the demand from industry, students, and parents, 47% of principals reported their schools don’t offer coding courses. 53% don’t offer robotics. 44% of principals state a lack of teachers is why they don’t offer computer science. Of those principals, 40% state there is a teacher available in their schools who could teach computer science.</p>
<p>Refer to the table below for other reasons Computer Science isn’t offered:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*jg0roO6-YTgMsuL_x5gpSg.png" alt="Image" width="651" height="459" loading="lazy">
<em>Source: Google — Searching for Computer Science</em></p>
<p>Traditional education has done many great things in preparing students for the future, but has struggled in many ways. Notably, an over-emphasis on testing is a barrier to coding and other STEM courses. We may have to look outside the classroom for a solution.</p>
<p>Community-driven and open-source movements have revolutionized many industries. Being open-source means that the software, hardware, or whatever it might be is freely available and can be redistributed or modified. This allows information to be shared for the benefit of all.</p>
<p>Many open-source projects are created as hundreds of individuals work together to create a useful tool. <a target="_blank" href="https://www.wikipedia.org/">Wikipedia</a> is an example common to most of us.</p>
<p>Many companies drive astounding impact by contributing to open source. Below are a few companies (and some of their projects):</p>
<ul>
<li><a target="_blank" href="https://github.com/">GitHub</a></li>
<li><a target="_blank" href="https://www.google.org/">Google</a> (<a target="_blank" href="https://developer.android.com/">Android</a>, <a target="_blank" href="https://www.tensorflow.org/">TensorFlow</a>, <a target="_blank" href="https://www.chromium.org/">Chromium</a>, <a target="_blank" href="https://www.dartlang.org/">Dart</a>, <a target="_blank" href="https://golang.org/">Go</a>)</li>
<li><a target="_blank" href="https://www.linuxfoundation.org/">Linux</a></li>
<li><a target="_blank" href="https://www.microsoft.com/en-us/download/developer-tools.aspx">Microsoft</a> (<a target="_blank" href="https://code.visualstudio.com/">Visual Studio Code</a>, <a target="_blank" href="https://www.microsoft.com/en-us/download/details.aspx?id=30653">.NET dev tools</a>, <a target="_blank" href="https://www.typescriptlang.org/">TypeScript</a>)</li>
<li><a target="_blank" href="https://automattic.com/">Automattic</a> — Creators of WordPress</li>
</ul>
<p>Let’s analyze two organizations that are teaching STEM through community and open-source.</p>
<h3 id="heading-freecodecamp">freeCodeCamp</h3>
<p><a target="_blank" href="https://www.freecodecamp.org/">freeCodeCamp</a> stands at the forefront of many organizations who teach coding. Founded in 2014 by Quincy Larson, freeCodeCamp has experienced outstanding growth. Highlighted below are a few key stats:</p>
<ul>
<li>1 billion user minutes across all their platforms. That’s 2000 years!</li>
<li>More visitors than CodeAcademy (which has a $47 million valuation)</li>
<li>More visitors than Udacity (which has a $1 billion valuation)</li>
<li>54,500 Alumni with thousands now working in computer related industries</li>
<li>Curriculum translated into Arabic, Chinese, Portuguese, Russian, and Spanish</li>
</ul>
<p>It’d be easy to assume freeCodeCamp had hundreds of employees and was heavily funded! Actually, it’s quite the opposite. As of December 2018, freeCodeCamp has 5 employees and an operating budget of $200,000. It is a 501(c)(3) non-profit.</p>
<p>For more info on freeCodeCamp, check out <a target="_blank" href="https://medium.freecodecamp.org/the-first-billion-minutes-the-numbers-behind-freecodecamp-the-tiny-nonprofit-thats-teaching-9c2ee9f8102c">this medium post</a>.</p>
<p>How can 5 people do all that? Well, to put it simply, they don’t. At least not alone. Over 650 volunteers contribute to all that growth! Many graduates (and current students) use their newly acquired knowledge to give back.</p>
<p>Through <a target="_blank" href="https://www.freecodecamp.org/nonprofits/">Open Source for Good</a>, freeCodeCamp also helps their students contribute to other open source or non profit organizations.</p>
<p>Although most users are adults, an increasing number of educators are using it. freeCodeCamp is adding a classroom mode and tools for study groups as donations and volunteering increases!</p>
<p>freeCodeCamp is educating thousands at home or in the classroom. People are learning then giving back, driving viral growth for this amazing organization. Following this model, we’re going to look at Khan Academy!</p>
<h3 id="heading-khan-academy">Khan Academy</h3>
<p>Another fantastic example of community-driven change is more widely known: <a target="_blank" href="https://www.khanacademy.org/">Khan Academy</a>.</p>
<p>To briefly sum up their story, Sal Khan started tutoring family members who were struggling with science and math. As more family asked for his help, he posted videos on YouTube. He also created a website where they could do practice problems. More and more people found his resources. He was soon noticed by Bill Gates and Google.</p>
<p>Backed by a passionate community, Khan Academy began to reach more and more people. Through volunteer content creators and translators, they now reach hundreds of thousands of students in over 100 countries.</p>
<p>According to Sal Khan, Khan Academy was never designed to replace traditional classroom education. It is meant to supplement it by providing tools for teachers and students. Machine learning can create individualized and effective learning plans by analyzing data from students quizzes and Khan Academy practice. Teachers, now equipped with these plans, can better concentrate their efforts on each student!</p>
<p>A few stats about Khan Academy from their website:</p>
<ul>
<li>Students who complete 60% of their grade-level math on Khan Academy experience 1.8 times the expected growth on the NWEA MAP Test, a popular assessment test</li>
<li>64% of first-generation college students reported Khan Academy was meaningful to their education (164 surveyed)</li>
</ul>
<p>Check out this Google Talk to learn more about this wonderful organization!</p>
<p>By empowering individuals through accessible resources, real change can be achieved. As communities develop around similar beliefs and goals, thousands are taught and are then able to teach.</p>
<p>This process of learning and giving back is key to educating future generations. Everyone, everywhere has the potential to learn difficult concepts, given the right community and resources.</p>
<p>We can help make those resources globally accessible by donating to these communities. Donations don’t have to be financial. By giving our time, talent, and energy, we can support open-source and community-driven organizations that are causing real global change.</p>
<p>I have been personally impacted by both of these organizations. I learned to code primarily through freeCodeCamp. I now enjoy a fulfilling job doing web development. I give back by translating resources in Spanish. We all have unique and valuable skills we can use to contribute!</p>
<p>Thanks for reading! In my spare time I write about education and cool technology. I also develop educational resources for robotics.</p>
<p>Check them out on my <a target="_blank" href="http://cyperionproject.com/">website</a> or follow me on <a target="_blank" href="https://twitter.com/CyperionR">Twitter!</a></p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
