<?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[ sustainability - 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[ sustainability - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 23 Jun 2026 22:45:21 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/sustainability/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Design and Build Sustainable Software ]]>
                </title>
                <description>
                    <![CDATA[ Electronic devices that run software are all around us. Your mobile phone, your car, your microwave, and virtually anything around you – there’s a very good chance that they have electronic components running some form of software. These devices inev... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/design-and-build-sustainable-software/</link>
                <guid isPermaLink="false">66b99d6465fc624db0255e0b</guid>
                
                    <category>
                        <![CDATA[ MathJax ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software architecture ]]>
                    </category>
                
                    <category>
                        <![CDATA[ sustainability ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jayant Chowdhary ]]>
                </dc:creator>
                <pubDate>Thu, 18 Jan 2024 01:28:38 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2024/01/Cover-4.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Electronic devices that run software are all around us. Your mobile phone, your car, your microwave, and virtually anything around you – there’s a very good chance that they have electronic components running some form of software.</p>
<p>These devices inevitably use power and have batteries and circuits, which degrade over time. As time passes, these devices get replaced by newer upgraded ones. But this also means that more and more electronic waste builds up on our planet. </p>
<p>Also, since we have more electronic devices entering our ecosystem every day, we’re also using more power, leading to more carbon emissions. </p>
<p>This means we need to design both hardware and software in a way which acknowledges that the earth’s resources are limited. This article will give you an introduction on how you can architect your software for sustainability. </p>
<h3 id="heading-here-is-what-well-cover">Here is what we'll cover:</h3>
<ul>
    <li><a href="#prerequisites">Prerequisites</a> </li>
    <li><a href="#whyarewethinkingaboutthisnow">Why are we thinking about this now?</a> </li>
    <li><a href="#whatsinvolvedinarchitectingandprogrammingforsustainability">What's involved in architecting and programming for sustainability?</a></li>
    <li><a href="#profileyoursoftwareforpowerandenergyconsumption">Profile your software for power and energy consumption</a>
    <ul><li><a href="#energydelayproductedt">Energy Delay Product</a></li></ul>
    <ul><li><a href="#greenuppowerupandspeedup">Greenup, Powerup and Speedup</a></li></ul>
    <ul><li><a href="#toolsforprofiling">Tools for Profiling</a></li></ul></li>
    <li><a href="#softwaretechniquesanddesignpatternsforsustainability">Software Techniques and Design Patterns for Sustainability</a>

   <ul><li><a href="#considerwhichprogramminglanguagetouse"> Consider which programming language to use </a></li></ul>
   <ul><li><a href="#makesoftwarepowerawarereacttothermalevents">Make software Power aware: React to Thermal events </a></li></ul>

    <ul><li><a href="#whenappropriateuselowpowerstatesonhardware"> When appropriate use low power states on hardware </a></li></ul>
    <ul><li><a href="#investigatethetradeoffsbetweeninterruptdrivenioandpolling"> Investigate the tradeoffs between Interrupt driven I/O and Polling </a></li></ul>
     <ul><li><a href="#lookintocaching"> Look into Caching </a></li></ul>
     <ul><li><a href="#designsoftwarewithlifetimeandupdatabilityinmind"> Design software with lifetime and updatability in mind</a></li></ul></li>
     <li><a href="#conclusion">Conclusion</a>
    </li>
</ul>

<p>##Prerequisites</p>
<p>I wrote this article with a focus on general ideas in computer science. This <a target="_blank" href="http://wla.berkeley.edu/~ee42/sp01/LectNotes/Lect6.PDF">lecture</a> will help with some background on Power and Energy in electrical circuits. </p>
<p>Other parts of this article provide references wherever you might need some background.</p>
<h2 id="heading-why-are-we-thinking-about-this-now">Why Are We Thinking About this Now?</h2>
<p><a target="_blank" href="https://climate.nasa.gov/scientific-consensus/">Human made climate change</a> has been steadily accelerating for decades. Carbon emissions have been rising. As a part of the technology community, we can help reduce some factors which have been contributing towards the degradation of the earth’s environment. </p>
<p>In this article I will present a few ideas and techniques on how you as a programmer and a software architect can make choices which will lead to more sustainable technology.</p>
<h2 id="heading-whats-involved-in-architecting-and-programming-for-sustainability">What's Involved in Architecting and Programming for Sustainability?</h2>
<p>In the context of this article, when I describe architecting software and programming for sustainability, I’m referring to the following aims: </p>
<p>Designing software so that it:</p>
<ol>
<li>Consumes the smallest amount of energy possible, to get the task at hand done.</li>
<li>Results in the least amount of battery degradation possible, while maintaining the minimum amount of performance needed for the task.</li>
<li>Needs a minimum amount of cooling for the hardware that it is running on.</li>
<li>Results in devices lasting longer.</li>
</ol>
<p>You’ll see that the techniques we'll discuss here all have the same theme behind them: make electronic hardware do the minimum amount of work possible to complete the task at hand. </p>
<p>Let's start with some techniques that you can use to accomplish this while architecting and writing software.</p>
<p>##Profile Your Software for Power and Energy Consumption</p>
<p>A problem which cannot be measured, cannot be solved. As a result, measuring the energy and power consumption of software is one of the most important tasks we need to do when designing with sustainability in mind. </p>
<p>Let’s take a step back and cover some of the basics of power and energy. </p>
<p>As you may know, power is the rate at which energy is consumed. That is:</p>
<p>$$P = dE/dt$$</p><p>In continuous time domain, we could also say that:</p>
<p>$$Energy = \int_{0}^{t} P \,dt$$</p><p>Practically, we never really get power measurements in the continous time domain. We usually have discrete power measurements over an interval of time. So our Power vs time graph might look something like this:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/01/image-94.png" alt="Image" width="600" height="400" loading="lazy">
<em>Figure 1: Power vs time and computing energy consumption</em></p>
<p>Since we have <code>n</code> discrete Power measurements over time, the energy consumption can be estimated as the area under the curve. This can be modeled as the sum of <code>n-1</code>  trapezoids.</p>
<p> (Energy = \sum_{i=1}^{n-1} A^{i}) where  (A^{i}) is the area of the ith trapezoid.</p>
<p>Profiling software for energy consumption refers to the process of measuring the energy consumed by the software being run.</p>
<p>So should you be profiling power or energy ? The answer is – it depends. In some scenarios which involve heavy user interaction (where the user controls the amount of time spent), it makes more sense to measure power. </p>
<p>For example: When a user is watching a video on a laptop or a mobile phone, they control many things such as the duration of the video watched, the screen’s brigthness, speaker volume, and so on. </p>
<p>In other scenarios where the user doesn’t have as much control over the work being performed by the electronic device, it makes sense for energy to be profiled. An example of such a case might be the energy needed to send a message via SMS / IP messaging service (not counting the energy needed to type out the message).</p>
<p>Let's look at some common metrics for profiling energy consumption next.</p>
<p>###Energy Delay Product (EDT)</p>
<p>Used in the research paper <a target="_blank" href="https://discovery.ucl.ac.uk/id/eprint/10074516/1/GKLS18_MSR18.pdf">What are your programming language's Energy delay implications?</a>, the energy delay product is a weighted metric which is defined as follows:</p>
<p> $$EDT = E *  T^{w}$$</p>
<p>where E is the Energy consumption for the task and T is the time taken for the task to be completed.</p>
<p>This metric aims to give us a measure of how much energy an operation takes, while at the same time penalizing the metric for the amount of time taken. That is, an operation consuming the same amount of energy but taking longer to perform by a system, has a higher EDT and is therefore considered less energy efficient.</p>
<p>The weight <code>w</code> can be chosen to be:</p>
<ul>
<li>1: When energy efficiency is of major concern</li>
<li>2: When both energy and performance are important</li>
<li>3: When performance is more important than energy efficiency </li>
</ul>
<p>So, you can tailor <code>w</code> to give you an idea of your software system’s energy and performance, based on indicators fit for your use case – whether energy is more important or performance.</p>
<h3 id="heading-greenup-powerup-and-speedup">Greenup, Powerup, and SpeedUp</h3>
<p>In the thesis <a target="_blank" href="https://digital.library.txst.edu/items/e8174fcc-4799-4612-88ad-5e3b7e3c3efb">Using the Greenup, Powerup And Speedup Metrics To Evaluate Software Energy Efficiency</a>, AbdulSalam et al introduced new metrics to measure energy efficiency. </p>
<p>They saw that EDT had one shortcoming: since it was a product of two quantities (Energy and weighted time taken to complete the task at hand), it was possible that two systems which had the same EDT for a task, actually differed when it came to energy efficiency and performance - but their EDT was still the same. </p>
<p>As a result, it was hard to conclude which system was better from an energy + performance point of view, where energy and performance had equal importance.</p>
<p>They introduced 3 metrics to address this issue.</p>
<ol>
<li><strong>Speedup</strong>, which is defined as:</li>
</ol>
<p>$$Speedup = T_{base} / T_{opt}$$</p><p>where (T<em>{base}) = Time taken to complete the task for the unoptimized case, (T</em>{opt}) = Time to complete the task for the optimized case. </p>
<p>If the optimized case is more performant than the unoptimized case (since remember, we could be optimizing for only energy, only performance, or both) then Speedup &gt; 1.</p>
<ol start="2">
<li><p><strong>Greenup</strong>, which is defined as:</p>
<p>$$Greenup = Energy_{base} / Energy_{opt} = P_{base} * T_{base} / P_{opt} * T_{opt}$$</p><p>. </p>
</li>
</ol>
<p>Here (P<em>{base}) is the average power consumed by the task in the unoptimized case and similarly, (P</em>{opt}) is the average power consumed by the task in the unoptimized case.</p>
<p>If we look at different values of Speedup and Powerup, they can fall into the following categories:</p>
<ol>
<li><strong>Zone 1</strong>: Powerup &lt; 1 and Speedup &lt; 1 and Speedup &gt; Powerup – in this scenario, the optimized solution sacrificed some performance, but there was a greater power reduction. As a result Greenup  &gt; 1, so there are energy savings.</li>
<li><strong>Zone 2</strong>: Powerup &lt; 1, Speedup &gt; 1 – in this scenario, the optimized solution improved in performance and at the same time, reduced power consumption. As a result, energy consumption decreased and performance improved. This is the best case scenario for any optimization.</li>
<li><strong>Zone 3</strong>: Powerup &gt; 1, Speedup &gt; 1 and Speedup &gt; Powerup – in this case, average power consumption improved, but the speedup more than made up for the increase in power consumption. As a result, energy consumed still reduced between the optimized and unoptimized solutions.</li>
<li><strong>Zone 4</strong>: Powerup &gt; 1, Speedup &gt; 1 and Powerup &gt; Speedup – in this case, power consumption decreased, but so did performance. Still, the energy consumption as a whole increased since the loss of performance was greater than the power savings.</li>
<li><strong>Zone 5</strong>: Powerup &gt; 1, Speedup &lt; 1 – in this case, the energy consumption increased since there was a performance degradation and also there was an increase in power consumption.</li>
<li><strong>Zone 6</strong>: Powerup &lt; 1, Speedup &lt; 1, Powerup &gt; Speedup – in this case, performance improved, but power increased more than the amount that performance improved. As a result, the energy consumption increased as a whole.</li>
</ol>
<p>The figure below (inspired by this <a target="_blank" href="https://digital.library.txst.edu/items/e8174fcc-4799-4612-88ad-5e3b7e3c3efb">thesis)</a> shows the zones where energy consumption increases and where it decreases. The red (4, 5 and 6) and the green areas (1, 2 and 3) depict these zones.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/01/image-90.png" alt="Image" width="600" height="400" loading="lazy">
<em>Figure 2 : The different zones for Speedup and Powerup</em></p>
<p>We went over a couple of metrics which both have their strengths and weaknesses. EDT’s strength is that you can give more weightage to performance. But its weakness is that many a time, it may not tell you whether one solution is really better than the other. </p>
<p>While knowing about energy consumption is very important, you should not ignore power consumption. High power consumption, amongst other effects, can have adverse thermal impacts on electronic devices. That is, your device’s skin and component temperature can increase. This may lead to: </p>
<ol>
<li><strong>Component damage</strong>: Electronic components such as memory, wires, and capacitors on your device can get damaged as temperature increases.</li>
<li><strong>Battery damage</strong>: Batteries can get damaged at higher temperatures. Their <a target="_blank" href="https://www.intercel.eu/frequently-asked-questions/temperature-effects-on-batteries/#:~:text=Battery%20capacity%20is%20reduced%20by,%2C%20AGM%2C%20industrial%20or%20whatever.">life</a> may decrease and in some extreme cases they may also <a target="_blank" href="https://www.sciencedirect.com/science/article/pii/S2215098618310000">explode</a>.</li>
</ol>
<p>Commercial electronics are usually built to operate within a 0 - 70 degrees Celsius temperature range. But for mobile phones it is usually recommended that the operating temperature not exceed 35 degrees celsius. </p>
<p>Before you profile the energy and power being consumed by a specific task on your devices, it's important to isolate the task as much as possible. </p>
<p>By this, I mean that its important that we take out as many other power consuming tasks or variables. These may be other services / daemons or settings on the device which may affect the power consumed in unreliable ways. </p>
<p><strong>For example</strong>, if the device uses the internet, background processes may be doing some activities which may vary between multiple profile runs, so in general it is a good idea to switch off the internet (unless the task being measured uses the internet). We want to do this since we want reproducible power profiling numbers from run to run. </p>
<p>So in general, it is a good idea to make a checklist of the conditions which need to be constant for power profiling to be reliable and reproducible. This could vary from system to system.</p>
<p>##Tools for Profiling</p>
<p>Now, let's talk about how power can be profiled. Different systems may offer different ways of profiling energy consumed. </p>
<p>Depending on the operating system and the underlying hardware, there are a few options. I won’t go into details of these tools since there are many options and there is also good documentation available on their official websites. </p>
<p>###Linux</p>
<ol>
<li><a target="_blank" href="https://manpages.ubuntu.com/manpages/xenial/man8/powerstat.8.html">PowerStat</a> is a tool that can measure power consumption on Intel hardware that supports the <a target="_blank" href="https://sustainable-computing.io/design/kepler-energy-sources/#:~:text=Intel's%20Running%20Average%20Power%20Limit,versions%20of%20Intel's%20processing%20architecture.">RAPL</a> (Running  average power limit) interface.</li>
<li><a target="_blank" href="https://github.com/sosy-lab/cpu-energy-meter/blob/main/README.md">Cpu-energy-meter</a> is a tool that measures the energy consumed by CPUs in a given time period.</li>
<li><a target="_blank" href="https://www.intel.com/content/www/us/en/developer/articles/tool/powertop-primer.html">Powertop</a> is a tool authored by Intel which gives you information about many things of interest such as power consumption, CPU <a target="_blank" href="https://www.intel.com/content/www/us/en/docs/socwatch/user-guide/2020/c-state.html#:~:text=C%2DState%20residencies%20are%20collected,the%20processor%20is%20%22idle%22.">C / P States</a>, CPU usage, and file system operations per second (and so on).</li>
</ol>
<p>###macOS</p>
<ol>
<li><a target="_blank" href="https://www.intel.com/content/www/us/en/developer/articles/tool/power-gadget.html">Intel power gadget</a> is a tool authored by Intel which gives users the ability to monitor power consumption, CPU frequency, CPU utilization, and even temperature on Intel based Mac machines. Note: According to Intel’s website, Power gadget will not get updates anymore and it recommends using <a target="_blank" href="https://www.intel.com/content/www/us/en/developer/articles/tool/performance-counter-monitor.html">Intel Performance Counter</a> instead.</li>
<li><a target="_blank" href="https://www.seense.com/menubarstats/mxpg/">MxPower Gadget</a> is a tool similar to the Intel power gadget, but for Apple silicon-based Macs.</li>
<li><a target="_blank" href="https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/MonitoringEnergyUsage.html">Powermetrics</a> is a <a target="_blank" href="https://firefox-source-docs.mozilla.org/performance/powermetrics.html">command line tool</a> that is pre-installed on Apple Silicon and Intel-based machines. It helps you obtain power measurements for CPU and GPU operation.</li>
<li><a target="_blank" href="https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/MonitoringEnergyUsage.html">The Activity Monitor App</a> is pre-installed on Macs, and gives you an overview of how your app is performing. It also gives you an overview of various metrics about your Mac. While it doesn’t give you power numbers, it is still a useful tool.</li>
</ol>
<p>###Android</p>
<p>The <a target="_blank" href="https://source.android.com/">AOSP</a> (Android Open Source Project) official documentation provides some guidelines on how to measure system component power <a target="_blank" href="https://source.android.com/docs/core/power/component">here</a>. This process may vary depending on the manufacturer of the device.</p>
<p>Android Studio, Android’s official development IDE also offers a <a target="_blank" href="https://developer.android.com/studio/profile/power-profiler">Power Profiler</a> to measure power. The On-Device Power Monitor (ODPM) reports power consumed by all profilable sub-systems through their power rails. Note: These measurements are not specific to any app, as they measure device power on the whole.</p>
<p>###iOS</p>
<p>During iOS app development, developers can measure the energy impact of their app using XCode’s inbuilt <a target="_blank" href="https://developer.apple.com/library/archive/documentation/Performance/Conceptual/EnergyGuide-iOS/MonitorEnergyWithInstruments.html">Instruments</a> profiler.</p>
<p>We talked about various ways to profile power and energy in this section. In the coming sections, I'll discuss some techniques and considerations to keep in mind to make your software more sustainable.</p>
<p>##Software Techniques and Design Patterns for Sustainability</p>
<p>###Consider which programming language to use</p>
<p>Programming languages have multiple levels of abstraction over the hardware that they are running on. Some have a model of the machine presented to the programmer which is really close to the actual hardware they are running on.</p>
<p>Languages which are directly compiled to machine code are generally more power efficient. They also are generally more performant, since there is less overhead compared to languages which are interpreted or run on a virtual machine, such as Java. </p>
<p>The research paper I mentioned earlier (<a target="_blank" href="https://discovery.ucl.ac.uk/id/eprint/10074516/1/GKLS18_MSR18.pdf">What are your programming language's Energy delay implications</a>) discusses this in detail and is a great read. </p>
<p>While many popular operating systems have the majority of their APIs in languages like Java, Kotlin, and Swift (which are not native), they usually have performance critical APIs available in native code as well – for example, Android’s <code>C</code> interface-based <a target="_blank" href="https://developer.android.com/ndk">NDK</a> library. These can interface with their virtual machine-run counterparts and in combination be used to write efficient applications.</p>
<p>###Make software power aware: React to thermal events</p>
<p>In the previous section, I talked about the importance of keeping power consumption low on the devices which run your software. This is not only important to reduce energy consumption, it's also important so that your device’s operating temperature doesn’t go into territory which can damage your device. </p>
<p>The operating temperature of your device doesn’t only depend on the software running on it (which includes your software). It also depends on the ambient temperature. </p>
<p>For example: if a smartphone is used in a car on a hot day, there’s a good chance that when a demanding application is run on it, it’ll thermally stress out the device. So what can you as a software architect do about this? </p>
<p>You cannot control ambient temperature, but you can control how your software responds to thermal events. Many popular operating systems offer APIs to ‘listen’ for thermal events. When apps get notifications that the device’s thermal load has crossed a certain limit, they should take appropriate actions. </p>
<p><strong>For example</strong>, if a device is streaming video and it gets a notification about thermally heating up, it may lower the resolution at which it is streaming video in order to reduce power consumption. </p>
<p>If a video conferencing app gets a worrisome thermal event notification, it may want to reduce the frame rate at which it is capturing video / reduce the resolution.</p>
<p>The following are thermal event APIs on popular operating systems</p>
<p><strong>MacOS and iOS:</strong> the <code>NSNotificationCenter</code> offers a <a target="_blank" href="https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/RespondToThermalStateChanges.html">thermal event listener</a> which userspace applications can register for<strong>.</strong></p>
<p><strong>Android:</strong> PowerManager offers an <a target="_blank" href="https://developer.android.com/reference/android/os/PowerManager.OnThermalStatusChangedListener">onThermalStatusChangedListener</a> which apps can register for, to receive thermal event notification.</p>
<p>###When appropriate, use low power states on hardware</p>
<p>Most modern processors have provisions for reducing power consumption. In these modes, the processor consumes less power by changing the CPU clock speed, putting the CPU into various idle states among various methods. Operating systems give the user the ability to leverage these low power states. </p>
<p><strong>For example</strong>, Linux has the <a target="_blank" href="https://linux.die.net/man/1/cpupower-frequency-set"><code>cpupower-frequency-set</code></a> tool which allows users to modify CPU frequency settings. </p>
<p>As another example, <a target="_blank" href="https://docs.arduino.cc/learn/electronics/low-power">Arduino microcontrollers</a> give programmers the ability to put them in various sleep modes when there are no active tasks to be run. These microcontrollers are typically woken up by an interrupt when a task to be processed is ready. </p>
<p>###Investigate the tradeoffs between Interrupt driven-I/O and Polling</p>
<p>Often, software needs to wait on another component of hardware or software for data to process. There are usually two parties involved: the producer of the data and the consumer of the data </p>
<p>For example, a mobile application may be waiting on a touch event on the display. Here the consumer is the mobile application and the producer is the display hardware + software. </p>
<p>Another example could be a native embedded program that is waiting on the status of a CPU register to change in order to perform some task. Here the consumer is the native embedded program and the producer is the CPU register (well, the producer may actually be producing some other data, but for simplicity we’re only considering a CPU register here).  </p>
<p>There are broadly 2 ways of doing this:</p>
<p><strong>Polling</strong>: The process of checking the status of a data-readiness at regular predetermined intervals of time is referred to as polling. Typically it looks something like this in code:</p>
<pre><code><span class="hljs-comment">// psuedo-code</span>
<span class="hljs-keyword">while</span>(poll) {
    bool data_available =  check_data();
    <span class="hljs-keyword">if</span> (data_available) {
        process_data();
    }
    sleep(SLEEP_TIME); <span class="hljs-comment">// to avoid wasting cpu cycles</span>
}
</code></pre><p>Polling seems pretty simple to implement. But unless you’re absolutely sure that the data or condition you’re waiting on is going to be available at a regular frequency, it has some disadvantages:</p>
<ol>
<li>Polling doesn’t respond to the data being available as soon as it is available, since it checks for availability after every SLEEP_TIME ms.</li>
<li>By constantly checking every time the polling thread wakes up, it still wastes cpu cycles and as a result some power.</li>
</ol>
<p><strong>Interrupt-driven I/O:</strong> in this strategy, there are no explicit checks for the data that is being waited on to be ready. Instead, it is the responsibility of the producer to inform the consumer whenever the data is ready. The consumer does not explicitly check in with the producer, even periodically. As a result, this saves CPU cycles and also power! </p>
<p>There are multiple ways of implementing interrupt-driven I/O. There can be hardware interrupts as well as software interrupts. </p>
<p>For example, when a user touches a mobile phone screen at a particular location, the operating system could send a callback to one of  the application’s thread’s notifying it that a touch input event is ready to process. Until the thread gets the notification, it can either do something else, or just stay asleep! </p>
<p>So in short, interrupt-driven I/O is generally more power efficient than polling, and you should prefer it, unless there’s a very good reason to use polling.</p>
<h3 id="heading-look-into-caching">Look into Caching</h3>
<p>Caching in computer science refers to the process of saving data in a storage location that is typically faster to access than high latency storage (which are generally larger in capacity).</p>
<p>Caching is useful when the same set of data needs to be read or modified repeatedly by software. It allows efficient retrieval and re-use of data. </p>
<p>You can see caching in action in many forms such as:</p>
<ol>
<li>Random Access Memory (RAM) is a cache for underlying disk</li>
<li>CPU cache – L(n) – where n is the level of the cache. As n decreases, the cache size usually gets smaller and the latency of data retrieval gets smaller as well.</li>
<li>Applications can cache data retrieved from the internet into their on device memory for quick access.</li>
<li>Local servers can cache data from remote servers for quicker access as well.</li>
</ol>
<p>And many more.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/01/image-98.png" alt="Image" width="600" height="400" loading="lazy">
<em>Figure 3: Flow of data from disk to CPU via cache hierarchy</em></p>
<p>As a result of being more efficient with data access, caching usually reduces power consumption and saves energy as well.</p>
<p>Before software can take advantage of caching, it needs to be architected so that that's possible. In general, the following steps can help you:</p>
<ol>
<li>The very first thing is to make sure you're on the lookout for opportunities to cache data.</li>
<li>Then, implement caching. How you implement it will depend on the type of software you’re building. It might range from tiling data matrix operations to caching data retrieved from the internet for re-use later on.</li>
<li>Monitor profile performance, energy and power usage – and make sure that these metrics are actually improving. It is possible with sub-optimal implementations to cause thrashing of the cache – which may increase power consumption and reduce performance.</li>
</ol>
<p>###Design software with lifetime and updatability in mind</p>
<p>This article has talked a lot about your software’s energy and power consumption. Finally, there’s something else that is very important as well: the ability for your software to last a long time and be updatable. </p>
<p>It's very beneficial for software to last a long time, since that in turn means that devices will work well for longer. Software being updatable means that older devices get important feature and security updates, which leads to users not necessarily needing to buy newer devices just to get better software. This leads to a reduction in electronic waste and energy being spent on recycling electronic components. </p>
<p>Software updatability is a large topic which I will not cover in detail here. But there are some principles that you shoulder consider which will serve you well while designing for updatability:</p>
<p><strong>Design your software in modules which are updatable by themselves</strong>: This may involve having strict interfaces between different modules so that on updating one module the software package as a whole still functions correctly.</p>
<p><strong>Focus on using memory as efficiently as possible</strong>: If all software was designed keeping in mind memory efficiency, electronic devices would last longer, since the amount of memory they had would be sufficient for longer. </p>
<p>As an example, consider the iPhone: the first generation in 2007 had 128MB of RAM and 16GB of flash storage (maximum). Today, the iPhone 15 has 6GB of RAM and has a maximum storage option of 1 TB (1024GB). That is a nearly 16x increase in RAM and 64x increase in flash memory. This was needed since the amount of memory needed by applications and the operating system itself grew in size by a huge amount. </p>
<p>As time passes, if memory is used judiciously, we can think of a future where electronic devices last for multiple decades instead of being phased out every 5-6 years.</p>
<p><strong>Testing needs to be bulletproof</strong>: When software is going to be updated frequently, there’ll be multiple version of software running on devices which interact with other pieces of software which might be older. These pieces of software must still function correctly. </p>
<p>For this to happen, before deploying updates, software must be tested thoroughly. As an example: when an app developer releases an app, they must test with multiple versions of operating systems to make sure that their app behaves well on all of them.</p>
<p>##Conclusion</p>
<p>This article introduced the concept of engineering software for sustainability and discussed why this is necessary. </p>
<p>You also learned about various metrics as well as some techniques to make your software sustainable and more efficient. </p>
<p>Finally, I hope it inspired you to think about a very serious problem we're facing right now and how we in the tech community can do our part.</p>
<p>I hope you enjoyed the article!</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Use Graph Theory to Build a More Sustainable World ]]>
                </title>
                <description>
                    <![CDATA[ Discrete mathematics is an area of math based on the study of formal structures whose nature is fundamentally separate and distinct.  This means it focuses on integers and natural sets of numbers, shapes, and other objects that you can count finitely... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-value-of-graph-theory-within-sustainability/</link>
                <guid isPermaLink="false">66baef4fd453cb5eb7951596</guid>
                
                    <category>
                        <![CDATA[ Advanced Mathematics ]]>
                    </category>
                
                    <category>
                        <![CDATA[ algorithms ]]>
                    </category>
                
                    <category>
                        <![CDATA[ graph theory ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Math ]]>
                    </category>
                
                    <category>
                        <![CDATA[ sustainability ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel García Solla ]]>
                </dc:creator>
                <pubDate>Fri, 19 Aug 2022 20:50:13 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/08/graph-theory-image.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Discrete mathematics is an area of math based on the study of formal structures whose nature is fundamentally separate and distinct. </p>
<p>This means it focuses on integers and natural sets of numbers, shapes, and other objects that you can count <strong>finitely</strong> or distinguish from one another. It models reality in a manner specifically suited to certain real-world applications. </p>
<p>From industry and logistics to computer science and telecommunications, having a quantized representation of everything around us has led to magnificent advances in our understanding and control of the physical world.</p>
<p>It's important to have at least a rough idea of the main distinctions between discreteness and continuity to address <strong>graph theory</strong>. But these aren't very well-known concepts to people outside the world of mathematics.</p>
<p>At first, continuous math is the one predominantly taught in the education system due to its versatility, usefulness, and practicality in most areas. </p>
<p>It’s based on the analysis of real numbers and functions that encapsulate mappings between these quantities, along with the notion of the infinitesimal change of a variable. This results in a series of tools like limits or derivatives that constitute <strong>calculus<em>.</em></strong> </p>
<p>On the other hand, the discrete paradigm is more straightforward and intuitive, with the exception of a few cases. And its finiteness is given by the primordial element constituting it – <a target="_blank" href="https://www.mathsisfun.com/sets/sets-introduction.html"><strong>sets</strong></a><strong><em>.</em></strong> </p>
<p>Among the most notorious use areas are those whose main components imply algorithms and data structures. Although the use cases of math are not what most people think they are. </p>
<p>In the real world, we don’t often face problems in the same way as in the education system. Indeed, discrete ways of approaching riddles and modeling the input data we need to come up with a solution are more usual than continuous ones, especially regarding system optimization issues.</p>
<p>For this reason, we should reconsider the role of this way of doing mathematics since it involves the development of <strong>critical/</strong><a target="_blank" href="https://en.wikipedia.org/wiki/Computational_thinking"><strong>computational thinking</strong></a>. This is crucial for the current era in which we are surrounded by technology. It also involves the improvement of problem-solving skills, making it possible for us to face any new challenges. </p>
<p>By doing so, we can see how relevant it is to apply a solid mathematical foundation to common global threats that are increasing daily, like misinformation, lack of fluency in handling technology, geopolitical instability, and even climate change.</p>
<p>Notwithstanding the apparent remoteness between the latter issue and graph theory itself, we should think about the way we live and the system by which our civilization is maintained as we know it.</p>
<h2 id="heading-goals-of-this-article">Goals of this Article</h2>
<p>This article aims to explain graph theory, one of the most significant components of all discrete mathematics, in an intuitive, simple, and visual way. I'll also try to guide its use towards the development of new disruptive techniques applicable in areas such as <strong>environmental</strong> care, necessary to preserve and <strong>regenerate</strong> our nature. </p>
<p>Effectively achieving this will not only foster curiosity or inspire readers who may intend to continue learning, but will also contribute to a further rising in society’s awareness about sustainability issues. This will increase the likelihood that in the future, the problems that scientists predict to be threatening to our existence and the existence of life on the planet will be curbed, thanks to scientific knowledge and specifically the contribution of graph theory.</p>
<p>Still, given its broad scope, it will be impossible to explain graph theory entirely in this article. So, I'll focus on the visual side of any explanation over the formal one since you can easily consult that in any textbook. That will also provide a different point of view from certain definitions. </p>
<p>Also, it's essential that we treat the idea of a graph as comprehensively as possible. We'll focus on its history, representation, and most descriptive properties instead of advanced concepts like singular cycles. This will help you grasp the kernel of graph theory and prepare you to learn these advanced concepts more easily.</p>
<h3 id="heading-heres-what-well-cover">Here's what we'll cover:</h3>
<ol>
<li><a class="post-section-overview" href="#heading-basic-elements-of-graph-theory">Basic Elements of Graph Theory</a></li>
<li><a class="post-section-overview" href="#heading-history-of-graph-theory">History of Graph Theory</a></li>
<li><a class="post-section-overview" href="#heading-definition-of-a-graph">Definition of a Graph</a></li>
<li><a class="post-section-overview" href="#heading-representations-of-graphs">Representations of Graphs</a></li>
<li><a class="post-section-overview" href="#heading-properties-of-graphs">Properties of Graphs</a></li>
<li><a class="post-section-overview" href="#heading-algorithms-and-graph-theory">Algorithms and Graph Theory</a></li>
<li><a class="post-section-overview" href="#heading-why-are-graphs-important-in-achieving-sustainability">Why Are Graphs Important in Achieving Sustainability?</a></li>
<li><a class="post-section-overview" href="#heading-conclusion">Conclusion</a></li>
</ol>
<h2 id="heading-basic-elements-of-graph-theory">Basic Elements of Graph Theory</h2>
<p>Whether you are new to Graph Theory or already know something about it, reviewing the basics is always worthwhile. </p>
<p>First, let’s introduce the idea of a <em>“graph”</em> with a usual representation you may have seen:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-90.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example of an arbitrary graph</em></p>
<p>Above, you have a graph where we can see, at the most fundamental level, two different building blocks: vertices (shown as circles) and edges (shown as lines connecting circles). </p>
<p>You can create a structure with those elements that can encapsulate the functioning of many systems present in our life that we don’t even realize. </p>
<p>But, most surprising of all is that graph theory as a whole is derived from such a simple concept as <strong>objects linked to each other.</strong></p>
<h2 id="heading-history-of-graph-theory">History of Graph Theory</h2>
<p>To understand the origin of this idea, we have to look back to the 18th century, when <a target="_blank" href="https://en.wikipedia.org/wiki/Leonhard_Euler"><strong>Leonhard Euler</strong></a> solved the famous <a target="_blank" href="https://mathworld.wolfram.com/KoenigsbergBridgeProblem.html#:~:text=The%20K%C3%B6nigsberg%20bridge%20problem%20asks,that%20the%20trip%20ends%20in"><strong>Seven Bridges of Königsberg</strong></a> problem<em>.</em> </p>
<p>By that time, the city was crossed by the Pregel river, generating four pieces of land interconnected with seven bridges, as seen below:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-91.png" alt="Image" width="600" height="400" loading="lazy">
_Image extracted from [<strong>here</strong>](https://en.wikipedia.org/wiki/File:Konigsberg<em>bridges.png" rel="noopener)</em></p>
<p>The task consisted of finding a path that crosses all bridges without passing by the same bridge twice, starting and ending at the same point. </p>
<p>At first, with so few bridges, it may be easy to find a brute force solution by trying combinations of paths. But, since we don’t know if a feasible solution exists, it’s helpful to formalize the problem elements and correctly prove its solvability before starting any process. </p>
<p>Also, if the number of bridges increases, it will become much more complex to solve, as the combinations increase remarkably fast.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-92.png" alt="Image" width="600" height="400" loading="lazy">
<em>Königsberg problem displayed as a graph</em></p>
<p>As seen above, Euler represented land areas with graph vertices (also called nodes) and bridges with edges, concluding that it was impossible to have such a traversal through the graph. </p>
<p>Briefly, if we look at the number of edges incident to each vertex, we will see that every value is odd for every node, meaning that the graph does not have an eulerian cycle. This means that it’s not an eulerian graph, and we can’t positively prove the problem. </p>
<p>Nevertheless, this approach represented a breakthrough in the mathematical conception of various questions that were yet unsolvable. Euler’s contributions to the elaboration of this theory, which has been perfected and broadened over the years, made him one of the most influential mathematicians of his time.</p>
<h2 id="heading-definition-of-a-graph">Definition of a Graph</h2>
<p>Now that you know what a graph looks like drawn on a diagram, let’s review the official formal definition:</p>
<blockquote>
<p>A graph <strong>G</strong> is a pair of sets <strong>(V, E)</strong> where <strong>V</strong> is a non-zero set containing the graph’s vertices and <strong>E</strong> is a set made of element pairs belonging to <strong>V.</strong></p>
</blockquote>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-93.png" alt="Image" width="600" height="400" loading="lazy">
<em>Formal definition of a graph with its corresponding sets</em></p>
<p>Above, we represented the two main components of a graph in two corresponding sets, one for vertices <strong>V</strong> and another for edges <strong>E</strong>. So, our graph <strong>G</strong> is ultimately an ordered pair of these sets. But before we continue, we must look inside those sets to see what they look like and understand why.</p>
<p>On the one hand, <strong>V</strong> is a collection of items <strong>v</strong> in which each element contains the necessary data to define a vertex. Abstractly they are called with the letter <strong>v</strong> and a numerical subindex. </p>
<p>But in practice, they can be complex objects holding parameters, profiles, and so on. </p>
<p>On the other hand, the set of edges <strong>E</strong> is a little more complicated to define since it needs to determine the connections between vertices. In this case, the elements are unordered pairs of vertices from set <strong>V</strong> such that each pair is of the form <strong>{x, y}</strong>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-94.png" alt="Image" width="600" height="400" loading="lazy">
<em>Both formal and graphical representations of a graph</em></p>
<p>To familiarize yourself with these structures above, you have an arbitrary, fully defined graph with its respective sets. In <strong>V,</strong> you can see all the vertices numbered from 1 to 5 and placed in the upper diagram in a specific distribution, but you can arrange them according to your needs. </p>
<p>Meanwhile, in <strong>E,</strong> you can observe all the edges (lines) establishing an interconnection link between vertices. </p>
<p>The appropriate terminology to address this link is the following: for instance, if we have the edge {v1, v4}, we call it <strong>incident</strong> to v1 and v4. Also, those vertices are denoted to be <strong>adjacent</strong> since an edge links them.</p>
<p>As you may notice, there isn’t an edge {v4, v1} in <strong>E</strong>. But to find an explanation for this phenomenon, we have to introduce the main distinction that generates two classes of graphs. </p>
<p>The first one <strong>(undirected)</strong>, to which the above examples belong, includes all graphs whose edges can be traversed in both directions. This makes them <strong>unordered</strong> pairs of vertices. </p>
<p>On the other hand, we can have a graph in which all its edges can only be traversed in one direction, that is, from one vertex to another exclusively. Thus, its vertex pairs on <strong>E</strong> set must be <strong>ordered,</strong> meaning that going from v1 to v4 is not the same as going from v4 to v1. This second class is known as a <strong>directed graph.</strong></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-95.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example of a directed graph.</em></p>
<p>Before learning how to represent a graph computationally to perform operations on it, you need to understand the vertex <strong>degree</strong> concept. </p>
<p>In undirected graphs, the degree of a vertex refers to the number of edges incident to it, considering that self-connecting edges (loops) count as 2 in the total score. </p>
<p>By contrast, in directed graphs, we have <strong>in-degree</strong> and <strong>out-degree</strong> values for each vertex, representing the number of incoming and outcoming edges, respectively.</p>
<h2 id="heading-representations-of-graphs">Representations of Graphs</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/1_Dc_opxjAdBqAmnbX1VLd9g.png" alt="Image" width="600" height="400" loading="lazy">
<em>The 2 most popular ways to computationally store a graph</em></p>
<p>Sometimes, the most intuitive solution for a problem is not always the most efficient in computer science. In this context, it generates different ways of representing a graph according to a problem’s nature.</p>
<h3 id="heading-what-is-an-adjacency-matrix">What is an Adjacency Matrix?</h3>
<p>An adjacency matrix is one of the most popular methods to store a graph on a computer. But its major drawback is unused memory consumption. </p>
<p>For <strong>directed</strong> graphs like the one above, there is a matrix size <strong>|V|x|V|</strong> (being |V| the cardinality of the vertices set, thus the number of vertices on the graph) where each element can be a 0 if there is no connection between vertices or a 1 if the row element links the column one by an outgoing edge. Also, if the graph is <a target="_blank" href="https://www.baeldung.com/cs/weighted-vs-unweighted-graphs"><strong>weighted</strong></a>, the 1 value is substituted with the <strong>weight</strong> parameter associated with each edge when necessary.</p>
<p>However, if the graph is <strong>undirected<em>,</em></strong> the same criteria apply with the difference that no distinction is made between outgoing and incoming edges this time. So there will be a 1 value if an edge exists between the row and column elements.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-96.png" alt="Image" width="600" height="400" loading="lazy">
<em>Adjacency matrix element definition for each type of graph.</em></p>
<h3 id="heading-what-is-an-incidence-matrix">What is an Incidence Matrix?</h3>
<p>Similar to the previous method, there is a matrix size <strong>|V|x|E|</strong> in which the same rules are fulfilled. The difference is that if an edge <strong>e</strong> is incoming to a vertex <strong>v</strong>, the corresponding element will be a -1 instead of 0.</p>
<h3 id="heading-how-to-use-adjacency-lists">How to Use Adjacency Lists</h3>
<p>When using matrices, if the graph has many vertices but few edges <strong>(a sparse graph),</strong> the matrix will contain a high number of zeroes. This wastes a lot of memory and makes the representation inefficient in terms of space.</p>
<p>To solve this issue, <strong>adjacency lists</strong> appeared as an alternative replacing matrices with a combination of different data structures – arrays, and linked lists. </p>
<p>The kernel of this method is an array containing all the graph’s nodes. Each array element will have a linked list holding each leading node’s neighbor vertices (adjacent vertices). In the case of directed graphs, only the neighbor elements connected by an outgoing edge from the lead node will be inside the linked list.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-97.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example of a graph depicted as an adjacency list</em></p>
<p>So if we have a <strong>dense</strong> graph with a high number of edges, we should store it in <strong>matrix</strong> form. This has the advantage of O(1) time complexity when checking vertex connection and matrix symmetry along the main diagonal in undirected graphs. </p>
<p>But, if our graph is <strong>sparse,</strong> the low density of edges make an <strong>adjacency list</strong> the best choice to depict it computationally.</p>
<h2 id="heading-properties-of-graphs">Properties of Graphs</h2>
<p>Like any other mathematical object, graphs have specific properties that make them unique and functional for their purposes. Some have to do with their composition, others with topology, and even accessibility. </p>
<p>Undoubtedly, the most relevant properties concern traversals, since they allow us to model and optimize real-world scenarios.</p>
<h3 id="heading-what-is-a-graph-traversal">What is a graph traversal?</h3>
<p>First, we need a starting node v1 and an ending node v2 to traverse a graph. Then, we can define a <strong>walk</strong> from v1 to v2 as an alternate sequence of vertices and edges. There, we can go through these elements as much as we need, and there is always an edge after a vertex (except the last one). </p>
<p>In the case of v1 being equal to v2, the walk would be <strong>closed</strong>.</p>
<p>Still, we can add repetition restrictions. So if we want a walk in which no edge is repeated, it’s renamed as <strong>“trail”</strong>. Consequently, if the trail is closed, it would be denoted as <strong>“circuit”</strong>. </p>
<p>The same happens if we restrict vertex repetition – the walk renames to <strong>“path,”</strong> and a closed path is known as a <strong>“cycle”.</strong></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-98.png" alt="Image" width="600" height="400" loading="lazy">
<em>Formal and graphical examples of network traversal types.</em></p>
<p><img src="https://cdn-images-1.medium.com/max/800/1*jqQrm3fY_X5CEhCkbloQmw.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>This traversing ability comes along with an interesting property valid for all existing undirected/directed graphs. It’s formalized as follows:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/1_Dc_opxjAdBqAmnbX1VLd9g-1.png" alt="Image" width="600" height="400" loading="lazy">
<em>Formalization of the degree sum property.</em></p>
<p>This establishes that the sum of all vertex degrees equals two times the cardinality of the edge set in an undirected graph. If directed, the sum breaks into two terms, each referring to each node in and out-degree. </p>
<p>This is fairly straightforward to prove, because every time you add an edge to a graph, you need two vertices to build the pair of elements stored on <strong>E.</strong> So if you add a loop (edge linking a node with itself), you anyways need to define a pair of elements from <strong>V,</strong> regardless of whether they are the same. </p>
<p>This characteristic supports us when solving questions like:</p>
<blockquote>
<p>Given a 6-<strong>regular</strong> graph (with all its vertex degrees set to 6) <em>of</em> <strong>n</strong> vertices, how many edges will it have?</p>
</blockquote>
<p>As its resolution is immediate, going deeper when thinking about similar questions improves your understanding of its nature and why it's that way.</p>
<h3 id="heading-what-is-connectivity">What is Connectivity?</h3>
<p>Now, let’s move on to the properties related to the graph’s linking capability. Starting with an undirected graph, we can assure that a vertex <strong>v</strong> reaches <strong>u</strong> if there's a path from <strong>v</strong> to <strong>u</strong>. Also, we can look at the whole graph and define it as <strong>connected</strong> if every pair of vertices in it is indeed connected.</p>
<p>Being connected is often associated with the uniqueness of its components. That is, if we end up with a <strong>disconnected</strong> graph, its number of components will always be greater than 1. </p>
<p>You can imagine a component as a zone of the graph isolated and disconnected from the rest of the vertices. And this, if we consider a graph, will be connected and will only have one connected component as if it were a connected graph.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-99.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example of a 2 component made graph.</em></p>
<p>In contrast, when dealing with <strong>directed</strong> graphs, two vertices <strong>u</strong> and <strong>v</strong> are said to be <strong>strongly</strong> connected if they can reach each other and <strong>weakly</strong> connected if they are connected on the <strong>underlying</strong> (all edges replaced by undirected ones) graph.</p>
<p>As you can imagine, these properties generate many possibilities and new characteristics to consider. </p>
<p>To briefly mention, we can take advantage of the discrete nature of graphs to remove nodes and edges from them. Therefore, concepts such as articulation points or bridges emerge as one of the simplest ways to study a graph’s weak points.</p>
<p>An <strong>articulation point</strong> is a vertex that, if we remove from the graph together with all its incident edges, the graph will increase its connected components. </p>
<p>Likewise, a <strong>bridge</strong> is just an edge meeting the same previous condition with the difference that no vertex is removed from the graph.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-100.png" alt="Image" width="600" height="400" loading="lazy">
<em>Visual example of an articulation point and a bridge.</em></p>
<p>As an extension to the properties section, it’s worth mentioning some tools and characteristics of graphs that will help us recognize the key of the algorithms we will see later:</p>
<h3 id="heading-what-are-subgraphs">What are Subgraphs?</h3>
<p>Their name is an appropriate indicator of what subgraphs are, since it is quite illustrative. A <strong>subgraph</strong> is a collection of vertices and edges that we can extract from an arbitrary graph <strong>G</strong> to form another graph, usually undersized. </p>
<p>Formally, a graph <strong>H</strong> is a subgraph of <strong>G</strong> if it’s formed by a subset of vertices of <strong>G</strong> and similarly a subset of edges of <strong>G,</strong> with every edge being a valid pair of nodes.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-101.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example of a subgraph validity</em></p>
<p>The number of classifications and research we can perform about subgraphs makes it impossible to cover everything here. But the basis for further learning we'll start with the following ideas about its morphology, topology, and composition.</p>
<p>A subgraph <strong>H</strong> spans a graph <strong>G</strong> if both have the same vertices stored on <strong>V</strong> set. In this situation, subgraph <strong>H</strong> is known as a <a target="_blank" href="https://youtu.be/Kh9LiX2farU"><strong>spanning subgraph</strong></a>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-102.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example of a spanning subgraph.</em></p>
<p>Given a graph <strong>G,</strong> if we apply the vertex removal operation n times with n&lt;|V|, the resulting graph will be an <a target="_blank" href="https://youtu.be/1HXbz09Bipw"><strong>induced graph</strong></a><strong>.</strong></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-103.png" alt="Image" width="600" height="400" loading="lazy">
<em>Steps taken to reach an induced graph.</em></p>
<p>Topology doesn't just concern subgraphs. It's also mainly studied with general graphs. So reviewing some broad classifications and features will make graph theory more manageable.</p>
<p>A graph is said to be <strong>complete</strong> if it’s undirected, has no loops, and every pair of distinct nodes is connected with only one edge. Also, we can have an <strong>n-complete</strong> graph <strong>Kn</strong> depending on the number of vertices.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-104.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example of the first 5 complete graphs.</em></p>
<p>We should also talk about the area of graph coloring. A graph is <strong>bipartite</strong> when its nodes can be divided into two <a target="_blank" href="https://en.wikipedia.org/wiki/Disjoint_sets"><strong>disjoint sets</strong></a> whose union results in the whole initial vertex set, with the condition that every edge has its extremes on both sets simultaneously. This allows for the possibility of coloring each vertex set with a different color. </p>
<p>Also, it can be a <a target="_blank" href="https://youtu.be/VvCytJvd4H0"><strong>complete-bipartite</strong></a> graph if both sets are densely connected (every vertex of one set is connected with all vertices of the other collection).</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-105.png" alt="Image" width="600" height="400" loading="lazy">
<em>Some examples of arbitrary complete-bipartite graphs.</em></p>
<p>You might also need to represent a graph in a plane without any of its edges <strong>intersecting</strong>. Then, if possible, the graph will be <strong>planar</strong>. To better understand the state of this characteristic, we can use <a target="_blank" href="https://en.wikipedia.org/wiki/Kuratowski%27s_theorem"><strong>Kuratowski’s theorem</strong></a>. It involves advanced concepts like <a target="_blank" href="https://youtu.be/z-GfKbzvtBA"><strong>isomorphism</strong></a> and <a target="_blank" href="https://youtu.be/RatkBWHUSqo"><strong>homomorphism</strong></a> concerning k5 complete and k3,3 complete bipartite graphs.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-106.png" alt="Image" width="600" height="400" loading="lazy">
<em>Visual difference between planar and non-planar graphs.</em></p>
<h3 id="heading-what-are-particular-cycles">What are Particular Cycles?</h3>
<p>Finally, some graph features deserve special attention. For example, when it’s a matter of cycle finding, there's a deep relationship with vertex degrees, integral graph topology, and traversability. </p>
<p>To visualize this relationship, we'll return to the <strong>Königsberg</strong> problem. In it, we need to traverse all the graph’s edges without repeating any of them, starting and finishing in the same vertex.</p>
<p>Since graphs were new then, Euler developed a solution by defining a unique type of cycle only found in graphs meeting precise conditions – like the degree of all their nodes being even. </p>
<p>These cycles were named <strong>Eulerian</strong> after their creator, and every graph that has one is also called an <strong>Eulerian graph</strong>. </p>
<p>There are also <strong>Eulerian Paths</strong>. These remove the condition of having to start and end on the same vertex and require the graph to have exactly two odd-degree nodes, which will be the path extremes.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/1_Bg0mEKTsoZXGZwcD-F3_HQ.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Visualization of an eulerian path.</em></p>
<p>Also, suppose we focus on contemporary issues like the traveling salesman problem (<a target="_blank" href="https://en.wikipedia.org/wiki/Travelling_salesman_problem"><strong>TSP</strong></a>), an <strong>NP-Hard</strong> problem mainly used by delivery and logistic companies. </p>
<p>In that case, we will realize the relevance of the <strong>hamiltonian cycles</strong> and paths to support practical solutions to similar questions. Similar to the eulerianity, a graph is <strong>Hamiltonian</strong> if it contains a cycle in which every vertex is used instead of edges.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/1_Bg0mEKTsoZXGZwcD-F3_HQ-1.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Visualization of a hamiltonian cycle.</em></p>
<p>These latter properties become challenging to deal with, given the complexity of the problems involved. Although, knowing the critical foundation supporting everything around them allows us to continue exploring with reasonable confidence.</p>
<h2 id="heading-algorithms-and-graph-theory">Algorithms and Graph Theory</h2>
<p>Once you have a solid grasp of graph theory, its elements, attributes, and tools, we should also review some basic algorithms comprising the principles of almost all other graph processes. Then we can move on to graph theory's use in climate preservation projects.</p>
<h3 id="heading-breadth-first-search-algorithm">Breadth-first search algorithm</h3>
<p>Here, we will only consider 3 algorithms since there are many types and very specialized ones for determined tasks.</p>
<p>To start with something simple and intuitive, we will unscramble <a target="_blank" href="https://youtu.be/oDqjPvD54Ss"><strong>Breadth-First Search</strong></a>. It's a graph traversal algorithm used to go through a graph in a breadthward motion. </p>
<p>In simple terms, it starts at an arbitrary vertex and iteratively visits its adjacent vertices, repeating this step until there are no more unvisited ones. </p>
<p>This behavior serves as the shortest path finder across all graph nodes, although you can stop the execution when a particular vertex is visited.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/1_Bg0mEKTsoZXGZwcD-F3_HQ-2.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Representation of breadth-first search algorithm</em></p>
<h3 id="heading-depth-first-search-algorithm">Depth-first search algorithm</h3>
<p>The second algorithm is a variant of the previous one, known as <a target="_blank" href="https://youtu.be/7fujbpJ0LB4"><strong>Depth First Search</strong></a><strong>.</strong> Its goal is similar but is also useful when detecting cycles, connected components, <a target="_blank" href="https://youtu.be/eL-KzMXSXXI"><strong>topological sorting</strong></a>, or checking for graph bipartitions. </p>
<p>But the way it works differs in some aspects, like the precedence of the <strong>depth</strong> over <strong>breadth</strong> – that is, not all neighboring nodes are visited in each step. Instead, one of them is chosen for further <strong>deepening</strong>, and the process is repeated until the path reaches a dead end and recursively goes back to the starting node, visiting every vertex.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/1_Bg0mEKTsoZXGZwcD-F3_HQ-3.gif" alt="Image" width="600" height="400" loading="lazy">
<em>Representation of depth-first search algorithm</em></p>
<h3 id="heading-dijkstras-shortest-path-algorithm">Dijkstra's Shortest-Path algorithm</h3>
<p>Finally, the last one we will treat is <a target="_blank" href="https://youtu.be/pSqmAO-m7Lk"><strong>Dijkstra’s algorithm</strong></a>, the most widespread <strong>Single Source Shortest Path</strong> problem solver ever created. </p>
<p>It’s designed to operate in weighted graphs with non-negative weights, and tries to find the most efficient route between 2 selected nodes. </p>
<p>Compared to the previous algorithms, that change increases the number of steps before completion. However, the key idea behind it is straightforward:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-108.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example Graph used to explain Dijkstra's algorithm</em></p>
<p>As you can see in the above example, if we want to go from v1 to v2, we can select the edge between them and arrive at our destination after traversing six distance units. </p>
<p>On the other hand, if we choose to go through the v3 or v4 paths, we would be walking seven units. So we need to make a <strong>decision</strong> on whether or not to take a particular path.</p>
<p>On large graphs, the algorithm calculates the provisional shortest paths along every single node. It then updates these values and minimizes “distance” (given by weights) by a complete graph traversal, as you can see in <a target="_blank" href="https://youtu.be/EFg3u_E6eHU"><strong>this</strong></a> animation.</p>
<h2 id="heading-why-are-graphs-important-in-achieving-sustainability">Why Are Graphs Important in Achieving Sustainability?</h2>
<p>At this point, you may realize that Graph Theory is valuable because it can encapsulate and abstractly model problems of a nuanced nature. Especially those problems whose origin stems from society’s need to pursue a degree of globalization that brings a standard of wellness to everyone’s lives. </p>
<p>Yet many of us are unaware that the comfort we currently enjoy brought about by advances in communications, transport, nutrition, and entertainment requires the coordinated operation of complex systems to be in place. </p>
<p>So the overpopulation experienced since the twentieth century causes these systems to be so massive that they entail a severe environmental impact based on CO2 emissions and the systematic dumping of waste into natural environments.</p>
<h3 id="heading-graphs-can-help-with-transportation-of-goods">Graphs can help with transportation of goods</h3>
<p>In this context, everything involving the transport of goods and logistics contributes a significant amount of CO2 to the atmosphere. Here is where using graphs has a clear benefit for the environment. They can find optimal paths between cities or world locations, reducing the emissions of the vehicles engaged in such transport. </p>
<p>For example, you can experiment with Google Maps by tracing routes between distant places. You will notice it can automatically choose an appropriate route, minimizing the corresponding environmental cost. </p>
<p>Google Maps is working is based on <a target="_blank" href="https://en.wikipedia.org/wiki/Parallel_single-source_shortest_path_algorithm"><strong>Single Source Shortest Path</strong></a> algorithms like Dijkstra or advanced ones such as <a target="_blank" href="https://youtu.be/ySN5Wnu88nE"><strong>A-star</strong></a>. A-star is a heuristic variant of Dijkstra. These are used in combination with other state-of-the-art graph mechanics used to add certain constraints to algorithms. </p>
<h3 id="heading-graphs-can-help-with-waste-management">Graphs can help with waste management</h3>
<p>Graphs also have a place in the global industry by simulating or directly managing <a target="_blank" href="https://youtu.be/LdOnanfc5TM"><strong>networks</strong></a><strong>,</strong> manufacturing processes, and schedules. They can potentially reduce the amount of incorrectly handled/wasted energy and resources.</p>
<p>It’s also worth mentioning the numerous possibilities that graphs have to offer when we deal with the problem of excessive waste accumulation. </p>
<p>Nowadays, it's widely believed that plants and trees are the major contributors to oxygen in our atmosphere thanks to photosynthesis. But we have to account that between 50% and 85% of the oxygen released into the atmosphere each year is produced <a target="_blank" href="https://www.nationalgeographic.com.es/naturaleza/verdadero-pulmon-planeta-esta-oceanos_14776#:~:text=El%20fitoplancton%20presente%20en%20los%20oc%C3%A9anos%20%28y%20no%20los%20bosques%2C%20como%20se%20cree%20habitualmente%29%20producen%20entre%20el%2050%25%20y%20el%2085%20%25%20del%20ox%C3%ADgeno%20que%20se%20libera%20cada%20a%C3%B1o%20a%20la%20atm%C3%B3sfera."><strong>under the sea</strong></a>. </p>
<p>Ironically, data on waste thrown into the ocean are constantly increasing as the consumer society advances on time, causing a dramatic impact on the actual lungs of our planet, as well as on the animal species it shelters. </p>
<p>To avoid having to decide where to dump our garbage, we can use graph theory to generate simulations of molecular physical systems, atomic structures, and chemical reactions to develop new recyclable or biodegradable materials. These would reduce the environmental impact of the products we use. </p>
<p>Also, these simulations have the potential to be useful in biology, where deciphering the ultimate workings of <strong>DNA</strong> can lead to better food quality, as well as more efficient mass-production methods.</p>
<h3 id="heading-graphs-can-help-with-machine-learning-and-ai">Graphs can help with machine learning and AI</h3>
<p>Finally, the most well-known application of graphs is in the field of <strong>machine learning</strong>. </p>
<p>Despite all the other significant uses for graphs in computer science (like communication networks, distributed systems, or data structures), machine learning has shown us with its exponential evolution over the last decade that it is a highly promising technology when tackling climate change. </p>
<p>Simply put, <strong>machine learning</strong> is a subset of <strong>artificial intelligence</strong> that focuses on enabling machines to learn and detect patterns on large datasets. Sometimes, this learning is inspired by natural phenomena like synapses on human neurons, resulting in new techniques such as <a target="_blank" href="https://en.wikipedia.org/wiki/Artificial_neural_network"><strong>Artificial Neural Networks</strong></a><strong>.</strong> </p>
<p>Regarding environmental care, the ability of these techniques to analyze large amounts of data makes it possible to measure our effect on the planet better. </p>
<p>As a real working example, <a target="_blank" href="https://joinus4theplanet.org/"><strong>Joinus4theplanet</strong></a> is an initiative focused on taking advantage of social media to raise awareness about the value of sustainability. It has developed a machine learning system able to perform waste sorting with the help of <a target="_blank" href="https://youtu.be/YRhxdVk_sIs"><strong>convolutional models</strong></a> designed to process multidimensional data in order to palliate the effects of incorrect recycling.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/08/image-109.png" alt="Image" width="600" height="400" loading="lazy">
<em>Example of a social network is represented as a graph. Image from [<strong>Wikipedia.</strong>](https://en.wikipedia.org/wiki/File:SocialNetworkAnalysis.png" rel="noopener ugc nofollow)</em></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>If we want to maintain a considerable amount of progress inside our civilizations and provide a thriving future for the next generations, we have to consider graphs as an essential tool when rethinking the way our technological and economic systems work.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The Definitive List of Courses for Learning About the United Nations Sustainable Development Goals ]]>
                </title>
                <description>
                    <![CDATA[ By Dhawal Shah In 2015, the United Nations came together to adopt Agenda 2030 for Sustainable Development, a set of 17 Sustainable Development Goals (SDGs) covering topics such as health, inequality, climate change, and more. Since their adoption, th... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/the-definitive-list-of-courses-for-learning-about-the-united-nations-sustainable-development-goals-b92d70e5075b/</link>
                <guid isPermaLink="false">66d45ecf246e57ac83a2c75a</guid>
                
                    <category>
                        <![CDATA[ climate change ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Equality ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Health, ]]>
                    </category>
                
                    <category>
                        <![CDATA[ human rights ]]>
                    </category>
                
                    <category>
                        <![CDATA[ sustainability ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 16 Jul 2018 20:15:04 +0000</pubDate>
                <media:content url="https://cdn-media-1.freecodecamp.org/images/0*S1tnAobsIbXoDRNm.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Dhawal Shah</p>
<p>In 2015, the United Nations came together to adopt Agenda 2030 for Sustainable Development, a set of 17 <a target="_blank" href="https://sustainabledevelopment.un.org/sdgs">Sustainable Development Goals</a> (SDGs) covering topics such as health, inequality, climate change, and more. Since their adoption, the SDGs have served as a platform for organizing global, national, local, and individual action.</p>
<p>With the help of <a target="_blank" href="https://courses.sdgacademy.org/">SDG Academy</a>, a free online education platform from the UN’s <a target="_blank" href="http://unsdsn.org/">Sustainable Development Solutions Network</a> (SDSN), <strong>Class Central</strong> has pulled together a giant list of courses that will teach you about the SDGs.</p>
<p>The <a target="_blank" href="https://courses.sdgacademy.org/">SDG Academy</a> alone has produced 20 courses on cross-cutting issues related to the SDGs — such as human rights, resilience, and environmental security. This list also includes courses sourced from various other MOOC platforms, all organized by which goal they address.</p>
<p>Overall, SDG Academy helped me identify more than 80 courses on <a target="_blank" href="https://www.class-central.com/subject/sustainability">sustainable development</a> from global universities including Harvard, Oxford, Stanford, and MIT.</p>
<p>Whether you’re interested in poverty reduction, human rights, food security, public health, education, or any other sustainable development topic, these courses will help you join efforts to achieve prosperity for both people and planet.</p>
<ul>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#0971">SDG 1: No Poverty</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#7183">SDG 2: No Hunger</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#ee3c">SDG 3: Good Health and Well-being</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#1cf2">SDG 4: Quality Education</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#edde">SDG 5: Gender Equality</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#9d71">SDG 6: Clean Water and Sanitation</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#7c9f">SDG 7: Affordable and Clean Energy</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#399f">SDG 8: Decent Work and Economic Growth</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#11cd">SDG 9: Industry, Innovation, and Infrastructure</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#497e">SDG 10: Reduced Inequalities</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#6aab">SDG 11: Sustainable Cities and Communities</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#8d08">SDG 12: Responsible Consumption and Production</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#22aa">SDG 13: Climate Action</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#d2ee">SDG 14: Life Below Water</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#a16e">SDG 15: Life on Land</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#1171">SDG 16: Peace, Justice, and Strong Institutions</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#5626">SDG 17: Partnership for the Goals</a></li>
<li><a target="_blank" href="https://medium.com/p/b92d70e5075b#6b5a">Courses cross-cutting the SDGs</a></li>
</ul>
<h3 id="heading-sdg-1-no-poverty">SDG 1: No Poverty</h3>
<p><strong>End poverty in all its forms everywhere</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-the-challenges-of-global-poverty-608"><strong>The Challenges of Global Poverty</strong></a><br><em>Massachusetts Institute of Technology via edX</em></p>
<p>This is a course for people who are interested in the challenge posed by massive and persistent world poverty. Is extreme poverty a thing of the past? What is economic life like when living under a dollar per day? Are the poor always hungry? How do we make schools work for poor citizens? How do we deal with the disease burden? Is microfinance invaluable or overrated? Learn what economists have to say about these and other questions.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-from-poverty-to-prosperity-understanding-economic-development-7878"><strong>From Poverty to Prosperity: Understanding Economic Development</strong></a><br><em>University of Oxford via edX</em></p>
<p>How can poor societies become prosperous and overcome obstacles to do so? Professor Sir Paul Collier is one of the world’s leading scholars on this question, and in this economics course you will have the opportunity to learn from him directly.</p>
<p><a target="_blank" href="https://www.class-central.com/course/futurelearn-improving-children-s-lives-reducing-child-poverty-and-inequality-around-the-world-8077"><strong>Improving Children’s Lives: Reducing Child Poverty and Inequality Around the World</strong></a><br><em>University of York via FutureLearn</em></p>
<p>Why do some countries do better than others in giving their children a good start to life? Can governments improve children’s lives by learning from the best performing countries? This course explores these questions using a combination of articles, videos, animations, articles, interactive data visualisations, discussions, and research “bites”.</p>
<h3 id="heading-sdg-2-no-hunger">SDG 2: No Hunger</h3>
<p><strong>End hunger, achieve food security and improved nutrition, and promote sustainable agriculture</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/feeding-a-hungry-planet-agriculture-nutrition-and-sustainability-8498"><strong>Feeding a Hungry Planet: Agriculture, Nutrition, and Sustainability</strong></a><br><em>SDG Academy</em></p>
<p>This course explores the key challenges to ensuring a healthy and sustainable diet for our growing world population, as well as the central role of agriculture in achieving the Sustainable Development Goals. Starting with a historical overview of the past 50 years of agricultural development, the course highlights key technological advancements and interventions to produce more and better quality food while simultaneously achieving social and environmental goals.</p>
<p><a target="_blank" href="https://www.class-central.com/course/sustainable-food-systems-a-mediterranean-perspective-10626"><strong>Sustainable Food Systems: A Mediterranean Perspective</strong></a><br><em>SDG Academy</em></p>
<p>The Mediterranean region is one of the most biodiverse in the world, home to a complex and intricate patchwork of cultures, climates, and cuisines. This course discusses the challenges and opportunities of the agricultural sector in the Mediterranean basin. It summarizes global-to-local challenges related to achievement of the Sustainable Development Goals (SDGs); outlines the history and culture of agriculture; explains agricultural data with a focus on rural development models and value creation; explores EU policy frameworks and international agreements related to food and agriculture in the Mediterranean; and highlights emerging opportunities in the sector.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-feeding-the-world-3913"><strong>Feeding the World</strong></a><br><em>University of Pennsylvania via Coursera</em></p>
<p>This course explores the concepts driving current food production science (population growth, urbanization, emerging affluence, resource constraints, and underlying biological limits) with a focus on livestock production. Each of the major food animal species (dairy, swine, beef, and poultry) will be covered in terms of their universal life cycles, constraints to production, and emerging societal issues.</p>
<p><a target="_blank" href="https://www.class-central.com/course/futurelearn-global-food-security-addressing-the-challenge-1861"><strong>Global Food Security: Addressing the Challenge</strong></a><br><em>Lancaster University via FutureLearn</em></p>
<p>How we will feed an extra two billion people by the middle of this century? Focusing both on UK agriculture and on food supply chains in other parts of the world, this course examines how food has shaped our environmental and social landscapes.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-systems-science-and-obesity-6398"><strong>Systems Science and Obesity</strong></a><br><em>Johns Hopkins University via Coursera</em></p>
<p>Systems science has been instrumental in breaking new scientific ground in diverse fields such as meteorology, engineering, and decision analysis. However, it is just beginning to impact public health. This course introduces basic tools in systems science to better understand the obesity epidemic in human populations. Learn how a systems approach can be applied to other non-communicable diseases both nationally and internationally.</p>
<h3 id="heading-sdg-3-good-health-and-well-being">SDG 3: Good Health and Well-being</h3>
<p><strong>Ensure healthy lives and promote well-being for all at all ages</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/global-public-health-8504"><strong>Global Public Health</strong></a><br><em>SDG Academy</em></p>
<p>This course covers the basic tenets of public health and the importance of social determinants, the global burden of communicable and non-communicable diseases, and the appropriate public health responses. Learn about the importance of health systems in promoting the health of populations, and the different methods employed around the world to achieve universality in access to health services.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-health-and-society-923"><strong>Health and Society</strong></a><br><em>Harvard University via edX</em></p>
<p>The purpose of this course is to introduce students to the major social variables — social class, race, gender, poverty, income distribution, social networks/support, community cohesion, the work and neighborhood environment — that affect population health.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-an-introduction-to-global-health-2076"><strong>An Introduction to Global Health</strong></a><br><em>University of Copenhagen via Coursera</em></p>
<p>This course will provide you with an overview of the most important health challenges facing the world today.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-global-health-case-studies-from-a-biosocial-perspective-1619"><strong>Global Health Case Studies from a Biosocial Perspective</strong></a><br><em>Harvard University via edX</em></p>
<p>Four physician-anthropologists — Paul Farmer, Arthur Kleinman, Anne Becker, and Salmaan Keshavjee — draw on experience working in Asia, Africa, Eastern Europe, and the Americas to investigate the field of global health, how global health problems are defined and constructed, and how global health interventions play out in both expected and unexpected ways.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-childbirth-a-global-perspective-1404"><strong>Childbirth: A Global Perspective</strong></a><br><em>Emory University via Coursera</em></p>
<p>This course will review challenges for maternal and newborn health in the developing world, where a great many women and babies are suffering from complications during pregnancy, childbirth, and the days following birth. Through lectures, case studies and readings, course participants will learn about delivery challenges for maternal and newborn health services and how to utilize community-based strategies to improve the health and survival of mothers and babies.</p>
<p><a target="_blank" href="https://www.class-central.com/course/futurelearn-caring-for-vulnerable-children-3004"><strong>Caring for Vulnerable Children</strong></a><br><em>University of Strathclyde via FutureLearn</em></p>
<p>Learn about risk and vulnerability among children, how children grow and develop, and how we can provide them with meaningful relationships and secure attachments. The knowledge you gain from this course may prompt you to explore or extend a career in child care or social work services.</p>
<h3 id="heading-sdg-4-quality-education">SDG 4: Quality Education</h3>
<p><strong>Ensure inclusive and equitable quality education and promote lifelong learning opportunities for all</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/the-best-start-in-life-early-childhood-development-for-sustainable-development-8499"><strong>The Best Start in Life: Early Childhood Development for Sustainable Development</strong></a><br><em>SDG Academy</em></p>
<p>Children are the common basis for all dimensions of sustainable development. Beyond mere survival, children have a right to thrive, develop to their full potential, and live in a sustainable world. This course draws from research in neuroscience, psychology, economics, anthropology and program implementation and evaluation in order to discuss Early Childhood Development and explore its role in achieving the Sustainable Development Goals.</p>
<p><a target="_blank" href="https://www.class-central.com/course/futurelearn-education-for-all-disability-diversity-and-inclusion-5664"><strong>Education for All: Disability, Diversity, and Inclusion</strong></a><br><em>University of Cape Town via FutureLearn</em></p>
<p>Millions of children around the world are excluded from access to education because of a disability — robbing them of their potential and diminishing our society. On this course you will learn about inclusive education, understanding what barriers there are to learning and how to challenge them.</p>
<p><a target="_blank" href="https://www.class-central.com/course/futurelearn-the-right-to-education-breaking-down-the-barriers-5189"><strong>The Right to Education: Breaking Down the Barriers</strong></a><br><em>University of Glasgow via Future Learn</em></p>
<p>Does education for all, really mean all? What are the barriers to participating in education? How do you include “all” in the classroom? This course will answer these and other questions, and help you join the movement to get children the world over into education.</p>
<p><a target="_blank" href="https://www.class-central.com/course/futurelearn-teaching-for-change-an-african-philosophical-approach-6710"><strong>Teaching for Change: An African Philosophical Approach</strong></a><br><em>Stellenbosch University via Future Learn</em></p>
<p>African philosophy of education has emerged as an educational challenge for many involved in contemporary education. In this course you’ll learn more about this philosophy, why it’s being examined, how it potentially responds to teaching and learning and what can be done to improve education in a just manner.</p>
<h3 id="heading-sdg-5-gender-equality">SDG 5: Gender Equality</h3>
<p><strong>Achieve gender equality and empower all women and girls</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/human-rights-human-wrongs-challenging-poverty-vulnerability-and-social-exclusion-8503"><strong>Human Rights, Human Wrongs: Challenging Poverty, Vulnerability, and Social Exclusion</strong></a><br><em>SDG Academy</em></p>
<p>Learn about the establishment of human rights and their linkages to many other global issues in sustainable development. Learners in this course discuss and debate the complex intersection of politics, gender, social norms, economics and power that have shaped — and will continue to shape — human rights worldwide.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-international-women-s-health-and-human-rights-8615"><strong>International Women’s Health and Human Rights</strong></a><br><em>Stanford University via Coursera</em></p>
<p>This course focuses on women’s health and human rights issues from infancy through old age. Topics include education, female genital mutilation, HIV/AIDS, reproductive health, violence against women, women in war and refugee settings, women’s economic empowerment, sex work and sex trafficking, aging and end of life.</p>
<p><a target="_blank" href="https://www.class-central.com/course/futurelearn-understanding-violence-against-women-myths-and-realities-8811"><strong>Understanding Violence Against Women: Myths and Realities</strong></a><br><em>University of Strathclyde via FutureLearn</em></p>
<p>In this course you will learn about the roots of violence against women, the principles of gender inequality at its centre and most importantly, how to challenge entrenched attitudes that impact women the world over.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-confronting-gender-based-violence-global-lessons-for-healthcare-workers-3471"><strong>Confronting Gender Based Violence: Global Lessons for Healthcare Workers</strong></a><br><em>Johns Hopkins University via Coursera</em></p>
<p>This course introduces participants from the healthcare sector to gender based violence (GBV), including global epidemiology of GBV; health outcomes; seminal research; and clinical best practices for GBV prevention, support, and management.</p>
<p><a target="_blank" href="https://www.class-central.com/course/canvas-network-gender-based-violence-in-the-context-of-migration-8453"><strong>Gender-Based Violence in the Context of Migration</strong></a><br><em>European Inter-University Centre for Human Rights and Democratisation</em></p>
<p>Drawing from expertise and examples at the global and regional level, this course provides participants with multiple perspectives and examples of practices in a field that is at the crossroads of gender, migration and human rights studies. Addressing the root causes of forced and economic migration and ensuring that the human rights of women and girls are protected throughout the migration process are essential steps towards a stronger recognition of their equal dignity.</p>
<h3 id="heading-sdg-6-clean-water-and-sanitation">SDG 6: Clean Water and Sanitation</h3>
<p><strong>Ensure availability and sustainable management of water and sanitation for all</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/open2study-water-in-a-thirsty-world-1476"><strong>Water in a Thirsty World</strong></a><br><em>Open2Study</em></p>
<p>In this course you will take the journey of water — how it began, and its availability today in light of global warming and urbanization. Explore examples from around the world, learn about a vast range of technologies like desalination, and see what is involved in sustainable thinking and decision making about water.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-sustainability-of-social-ecological-systems-the-nexus-between-water-energy-and-food-8795"><strong>Sustainability of Social-Ecological Systems: the Nexus between Water, Energy and Food</strong></a><br><em>Universitat Autònoma de Barcelona (Autonomous University of Barcelona) via Coursera</em></p>
<p>In this course you will become familiar with the ideas of the water-energy-food nexus and transdisciplinary thinking. You will learn to see your community or country as a complex social-ecological system and to describe its water, energy and food metabolism in the form of a pattern, as well as to map the categories of social actors.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-international-water-law-10234"><strong>International Water Law</strong></a><br><em>University of Geneva via Coursera</em></p>
<p>This course provides the necessary background to understand and examine the regulation applicable to transboundary freshwaters, especially rivers, lakes and aquifers. It presents the principles and legal standards that govern the use, sharing, management and protection of these resources.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-water-supply-and-sanitation-policy-in-developing-countries-part-1-understanding-complex-problems-1364"><strong>Water Supply and Sanitation Policy in Developing Countries Part 1: Understanding Complex Problems</strong></a><br><em>University of Manchester via Coursera</em></p>
<p>This course explores what can be done to solve the complex problem that half a billion people worldwide do not have improved water supplies and two billion do not have improved sanitation. Develop the skills you need to address this major global challenge of the 21st century.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-water-resources-management-and-policy-5319"><strong>Water Resources Management and Policy</strong></a><br><em>University of Geneva via Coursera</em></p>
<p>Develop an understanding of the problems related to water management. This course looks at water management in detail through the analysis of the different types of rights and obligations.</p>
<h3 id="heading-sdg-7-affordable-and-clean-energy">SDG 7: Affordable and Clean Energy</h3>
<p><strong>Assure access to affordable, reliable, sustainable and modern energy for all</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-politics-and-economics-of-international-energy-6189"><strong>Politics and Economics of International Energy</strong></a><br><em>Institut d’Etudes Politiques de Paris via Coursera</em></p>
<p>The course discusses global trends in energy consumption and production, various available scenarios for potential developments in the coming decades, the availability of oil reserves and the evolution of the oil industry. Learn about renewable energy sources, nuclear energy and EU energy policy.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-global-energy-and-climate-policy-8604"><strong>Global Energy and Climate Policy</strong></a><br><em>SOAS University of London via Coursera</em></p>
<p>This course offers an introduction to the theoretical and practical understanding of how energy and climate change policies are designed, shaped, advocated and implemented. As energy markets go truly global, domestic energy policies are becoming more and more entangled with wider issues of international governance.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-our-energy-future-2055"><strong>Our Energy Future</strong></a><br><em>University of California, San Diego via Coursera</em></p>
<p>This course is designed to introduce students to the issues of energy in the 21st century — including food and fuels — which are inseparably linked — and will discuss energy production and utilization from the biology, engineering, economics, climate science, and social science perspectives.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-wind-resources-for-renewable-energies-8431"><strong>Wind Resources for Renewable Energies</strong></a><br><em>Ecole Polytechnique via Coursera</em></p>
<p>Learn about basic meteorology, the specific dynamics of turbulent boundary layers and some standard techniques to estimate wind resources regardless of the type of turbine used or the level of efficiency achieved. Get hands-on experience applying what you have learned about wind resource assessment to real data sets.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-energy-principles-and-renewable-energy-9792"><strong>Energy Principles and Renewable Energy</strong></a><br><em>University of Queensland via edX</em></p>
<p>This course provides a foundation for understanding the basics of everything related to energy and the challenges associated with transitioning to a sustainable energy future.</p>
<h3 id="heading-sdg-8-decent-work-and-economic-growth">SDG 8: Decent Work and Economic Growth</h3>
<p><strong>Promote sustained, inclusive and sustainable economic growth, full and productive employment, and decent work for all</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/macroeconomics-for-a-sustainable-planet-9745"><strong>Macroeconomics for a Sustainable Development</strong></a><br><em>SDG Academy</em></p>
<p>Unemployment. Inflation. Protectionism. Economic bubble. Debt. Fiscal deficit. These are not just terms in an economics textbook; these are real-life challenges that are dominating the media and that carry major societal implications. Explore the different macroeconomic “pathologies” at play in the modern day global economy, drawing from the lessons and experiences of the past and incorporating the significant biophysical pressures facing the planet today.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-global-trends-for-business-and-society-9800"><strong>Global Trends for Business and Society</strong></a><br><em>University of Pennsylvania via Coursera</em></p>
<p>Learn to analyze rapidly changing global trends, their effects on consumer and labor markets, financial systems, and geopolitical relationships among countries all over the world. Through real-world case studies, both historical and contemporary, you’ll examine how changes within one society affect others.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-global-history-of-capitalism-10307"><strong>Global History of Capitalism</strong></a><br><em>Princeton University via edX</em></p>
<p>By looking at capitalism through a global lens, this course investigates multiple types of explanations and impacts on local, national, regional and global levels. Students will examine a range of different topics deeply connected to the evolution of capitalism; including labor relations, migration, commodities, consumption, finance, war, imperialism, development, energy, and the environment.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-forced-and-precarious-labor-in-the-global-economy-slavery-by-another-name-10412"><strong>Forced and Precarious Labor in the Global Economy: Slavery by Another Name?</strong></a><br><em>University of the Witwatersrand via edX</em></p>
<p>Led by some of the world’s leading authorities in the field, this course provides an introduction to the role of forced and precarious labor in the global economy. Drawing upon examples from across the world, the course specifically focuses on supply chain work, migrant work, and sex work.</p>
<p><a target="_blank" href="https://www.class-central.com/course/iversity-fair-wage-strategies-in-a-global-economy-8930"><strong>Fair Wage Strategies in a Global Economy</strong></a><br><em>Global Labour University via Iversity</em></p>
<p>Billions of workers around the world have no regular income or do not even earn a wage sufficient to live a decent life. This course offers a mix of video lectures and interviews, readings, online resources and exercises to gain both knowledge and practical skills to understand the landscape of wage setting.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-economic-growth-and-distributive-justice-part-i-the-role-of-the-state-5733"><strong>Economic Growth and Distributive Justice Part 1: The Role of the State</strong></a><br><em>Tel Aviv University via Coursera</em></p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-economic-growth-and-distributive-justice-part-ii-maximize-social-wellbeing-5732"><strong>Economic Growth and Distributive Justice Part 2: Maximize Social Wellbeing</strong></a></p>
<p><em>Tel Aviv University via Coursera</em></p>
<p>If you really care about the big questions in the economies and societies of the 21st century, such as inequality of income or wealth, and its correlation with economic growth, this set of courses is meant for you. The knowledge you gain can truly change your outlook on our world.</p>
<h3 id="heading-sdg-9-industry-innovation-and-infrastructure">SDG 9: Industry, Innovation, and Infrastructure</h3>
<p><strong>Build resilient infrastructure, promote inclusive and sustainable industrialization and foster innovation</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-becoming-a-changemaker-introduction-to-social-innovation-6655"><strong>Becoming a Changemaker: Introduction to Social Innovation</strong></a><br><em>University of Cape Town via Coursera</em></p>
<p>Whether you are already familiar with the field of social innovation or social entrepreneurship, working for an organization that wants to increase its social impact, or just starting out, this course will take you on a journey of exploring the complex problems that surround us and how to start thinking about solutions.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-creativity-innovation-and-change-677"><strong>Creativity, Innovation, and Change</strong></a><br><em>Pennsylvania State University via Coursera</em></p>
<p>Creativity, innovation, and change require a unique mindset and collection of mental tools. In this course you will learn about four key variables that define and describe creative diversity, including your creative style and your creative level.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-greening-the-economy-lessons-from-scandinavia-2167"><strong>Greening the Economy: Lessons from Scandinavia</strong></a><br><em>Lund University via Coursera</em></p>
<p>How can we live a good life on one planet with over seven billion people? This course explores greening the economy on four levels — individual, business, city, and nation.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-how-green-is-that-product-an-introduction-to-life-cycle-environmental-assessment-854"><strong>How Green is that Product? An Introduction to Life Cycle Environmental Assessment</strong></a><br><em>Northwestern University via Coursera</em></p>
<p>Paper or plastic? Local or imported food? Which is better for the environment? To answer these questions, one must take a holistic systems view using a quantitative approach known as life cycle assessment. The course provides an introduction to LCA methods and applications, including a hands-on modeling project.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-innovation-and-design-for-global-grand-challenges-6383"><strong>Innovation and Design for Global Grand Challenges</strong></a><br><em>Duke University via Coursera</em></p>
<p>This course will inspire you to rethink assumptions to address global challenges in conservation and development, and introduce you to new models and approaches that harness technological, behavioral, and financial innovation. Learn the tools, models, and approaches to address global grand challenges in conservation and development and to create and execute new solutions.</p>
<h3 id="heading-sdg-10-reduced-inequalities">SDG 10: Reduced Inequalities</h3>
<p><strong>Reduce inequality within and among countries</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/human-rights-human-wrongs-challenging-poverty-vulnerability-and-social-exclusion-8503"><strong>Human Rights, Human Wrongs: Challenging Poverty, Vulnerability, and Social Exclusion</strong></a><br><em>SDG Academy</em></p>
<p>Learn about the establishment of human rights and their linkages to many other global issues in sustainable development. The course joins legal frameworks and societal contexts to explore the barriers that prevent rights from becoming a reality. Students discuss and debate the complex intersection of politics, gender, social norms, economics and power that have shaped — and will continue to shape — human rights worldwide.</p>
<p><a target="_blank" href="https://www.class-central.com/course/futurelearn-improving-children-s-lives-reducing-child-poverty-and-inequality-around-the-world-8077"><strong>Improving Children’s Lives: Reducing Child Poverty and Inequality Around the World</strong></a><br><em>University of York via FutureLearn</em></p>
<p>Why do some countries do better than others in giving their children a good start to life? Can governments improve children’s lives by learning from the best performing countries? This course explores these questions using a combination of articles, videos, animations, articles, interactive data visualisations, discussions, and research “bites”.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-global-inequality-6331"><strong>Global Inequality</strong></a><br><em>Wellesley College via edX</em></p>
<p>This sociology course introduces core concepts of class, gender, and racial inequality, and an approach to studying complex forms of inequality called intersectionality. Featuring interviews with top scholars and discussion of the full-length award winning documentary, China Blue, which follows the life of a young seventeen-year-old worker from Sichuan province, to a Chinese jeans factory, this course will transform your perspective on yourself and others.</p>
<h3 id="heading-sdg-11-sustainable-cities-and-communities">SDG 11: Sustainable Cities and Communities</h3>
<p><strong>Make cities and human settlements inclusive, safe, resilient, and sustainable</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/sustainable-cities-8501"><strong>Sustainable Cities</strong></a><br><em>SDG Academy</em></p>
<p>This course explores what Sustainable cities are about. It examines how urban sustainability can be delivered: how cities function as systems of systems; how we can increase urban productivity and reduce urban poverty and inequality, enable urban inclusion and safety; provide universal basic services, housing and infrastructure; protect the urban environment, reduce risk and vulnerability.</p>
<p><a target="_blank" href="https://www.class-central.com/course/cities-and-the-challenge-of-sustainable-development-9744"><strong>Cities and the Challenge of Sustainable Development</strong></a><br><em>SDG Academy</em></p>
<p>This mini-series is a companion piece to the SDG Academy’s full-length Sustainable Cities course and also serves as a brief introduction to the topic of urban sustainable development and the SDGs.</p>
<p><a target="_blank" href="https://www.class-central.com/course/planetary-boundaries-and-human-opportunities-2485"><strong>Planetary Boundaries and Human Opportunities</strong></a><br><em>SDG Academy</em></p>
<p>Learn concepts at the core of contemporary research and debate on global sustainability. This course will expand and update your ‘conceptual toolbox’ in matters of global sustainability.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-cities-are-back-in-town-urban-sociology-for-a-globalizing-urban-world-2993"><strong>Cities Are Back in Town: Urban Sociology for a Globalizing Urban World</strong></a><br><em>Institut d’Etudes Politiques de Paris via Coursera</em></p>
<p>Urbanization is reaching a new peak in the contemporary world with the rise of megacities. Researchers try to make sense of these large urban areas using a variety of concepts. The class will review debates and present social science models of cities to analyse and compare contemporary developments.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-designing-cities-1047"><strong>Designing Cities</strong></a><br><em>University of Pennsylvania via Coursera</em></p>
<p>Each module in Designing Cities focuses on a different aspect of city design including: How Today’s City Evolved; The Ideas That Shape Cities; Tools for Designing Cities; Making Cities Sustainable; Cities in the Information Age; Preserving Older Cities; Designing New Cities, Districts and Neighborhoods; The Challenges of Informal Cities and Disadvantaged Neighborhoods; and Visionary Cities.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-rethink-the-city-new-approaches-to-global-and-local-urban-challenges-8011"><strong>Rethink the City: New Approaches to Global and Local Urban Challenges</strong></a><br><em>Delft University via edX</em></p>
<p>Learn about today’s urban challenges focusing on developing countries, referred to as the Global South. Through a combination of short theoretical lessons, presentation of case studies, testimonies from practitioners and practical assignments you will learn how to develop a critical perspective about your own urban environment and how to translate this knowledge into analytical tools and innovative urban solutions.</p>
<h3 id="heading-sdg-12-responsible-consumption-and-production">SDG 12: Responsible Consumption and Production</h3>
<p><strong>Ensure sustainable consumption and production patterns</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/natural-resources-for-sustainable-development-8500"><strong>Natural Resources for Sustainable Development</strong></a><br><em>SDG Academy</em></p>
<p>This course outlines the various complex and interrelated aspects of natural resource governance, including: understanding the governance and industry fundamentals; developing and implementing robust and transparent legal frameworks; designing fiscal regimes to capture a fair share of the revenues; managing environmental risks; engaging with communities; leveraging investments for infrastructure and business linkages; and managing revenues for economic diversification and development, among others.</p>
<p><a target="_blank" href="https://www.class-central.com/course/planetary-boundaries-and-human-opportunities-2485"><strong>Planetary Boundaries and Human Opportunities</strong></a><br><em>SDG Academy</em></p>
<p>Learn concepts at the core of contemporary research and debate on global sustainability. This course will expand and update your ‘conceptual toolbox’ in matters of global sustainability.</p>
<p><a target="_blank" href="https://www.class-central.com/course/futurelearn-global-resource-politics-the-past-present-and-future-of-oil-gas-and-shale-7387"><strong>Global Resource Politics: the Past, Present and Future of Oil, Gas and Shale</strong></a><br><em>Hanyang University via FutureLearn</em></p>
<p>The goal of this free online course is to examine the numerous critical energy challenges we are facing, and the complex interaction between the economics and politics of global energy markets. You will acquire an understanding of energy security and energy policy in today’s highly politicised, volatile energy markets.</p>
<h3 id="heading-sdg-13-climate-action">SDG 13: Climate Action</h3>
<p><strong>Take urgent action to combat climate change and its impacts</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/climate-change-science-and-negotiations-2484"><strong>Climate Change Science and Negotiations</strong></a><br><em>SDG Academy</em></p>
<p>Scientists have pointed out that a rise in mean surface temperature of 2º Celsius above pre-industrial levels will put the Earth in dangerous, uncharted territory. Yet we currently are on a path toward an increase of 4º or more this century. Fortunately, solutions exist to deeply decarbonize the global energy systems, and put the world on a 2°C pathway. During this course, you will learn about these solutions and how they can be applied in different national contexts, based on the results from the Deep Decarbonization Pathways Project (DDPP), a global initiative to show how countries can transition to a low carbon economy by 2050, and how the world can stay within the 2°C limit.</p>
<p><a target="_blank" href="https://www.class-central.com/course/planetary-boundaries-and-human-opportunities-2485"><strong>Planetary Boundaries and Human Opportunities</strong></a><br><em>SDG Academy</em></p>
<p>Learn concepts at the core of contemporary research and debate on global sustainability. This course will expand and update your ‘conceptual toolbox’ in matters of global sustainability.</p>
<p><a target="_blank" href="https://www.class-central.com/course/climate-action-solutions-for-a-changing-planet-9747"><strong>Climate Action: Solutions for a Changing Planet</strong></a><br><em>SDG Academy</em></p>
<p>Learn the science behind reducing global greenhouse gas emission, what businesses and government can do to decarbonize the economy, the role of agriculture in reducing emissions, how satellites are being used to identify high-emissions areas, and the actions communities and individuals can take to make climate action a reality.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-climate-change-mitigation-in-developing-countries-5054"><strong>Climate Change Mitigation in Developing Countries</strong></a><br><em>University of Cape Town via Coursera</em></p>
<p>This course challenges you to consider how one might lift societies out of poverty while also mitigating greenhouse gas emissions. This course covers topics such as facilitation process techniques, energy modeling, scenario building, innovation and policy making. You will have the opportunity to respond to these topics with ideas and reflection from your own context. Whether you are a climate change practitioner, work in development or are simply curious about how climate mitigation is understood, this course will give you insights into the complexity of how countries from the South pursue development goals while addressing climate mitigation.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-global-warming-science-1490"><strong>Global Warming Science</strong></a><br><em>Massachusetts Institute of Technology via edX</em></p>
<p>Global Warming Science teaches you about the risks and uncertainties of future climate change by examining the science behind the earth’s climate. You will be able to answer such questions as, “What is the Greenhouse Effect?” and “How and why has earth’s climate changed through geologic history?”</p>
<h3 id="heading-sdg-14-life-below-water">SDG 14: Life Below Water</h3>
<p><strong>Conserve and sustainably use the oceans, seas, and marine resources for sustainable development</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/one-planet-one-ocean-8505"><strong>One Planet-One Ocean</strong></a><br><em>SDG Academy</em></p>
<p>This ten-week course presents the challenges and opportunities facing oceans today. The course brings in some of the world’s leading experts on ocean science to present the issues and potential solutions grounded in rigorous scientific research.</p>
<p><a target="_blank" href="https://www.class-central.com/course/planetary-boundaries-and-human-opportunities-2485"><strong>Planetary Boundaries and Human Opportunities</strong></a><br><em>SDG Academy</em></p>
<p>Learn concepts at the core of contemporary research and debate on global sustainability. This course will expand and update your ‘conceptual toolbox’ in matters of global sustainability.</p>
<p><a target="_blank" href="https://www.class-central.com/course/open2study-marine-and-antarctic-science-1641"><strong>Marine and Antarctic Science</strong></a><br><em>Open2Study</em></p>
<p>This course will introduce you to the fascinating world of our oceans. You will learn about marine life and key features of the ocean system. You will also explore some of the stressors on marine systems caused by human activity. Finally, this course will cover how society might sensibly approach managing those threats into the future.</p>
<p><a target="_blank" href="https://www.class-central.com/course/open2study-contemporary-issues-in-ocean-governance-1638"><strong>Contemporary Issues in Ocean Governance</strong></a><br><em>Open2Study</em></p>
<p>This course considers the nature of how the world’s oceans are regulated. It will go through how ocean governance has evolved through time and how it actually works. In addition, there will be a focus on particular issues such as piracy, maritime security and environmental protection for the oceans.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-oceanography-a-key-to-better-understand-our-world-8578"><strong>Oceanography: a key to better understand our world</strong></a><br><em>University of Barcelona and Fundaciò Navagaciò Oceànica Barcelona via Coursera</em></p>
<p>In this course the student will learn about the foundations of the science of oceanography. You’ll learn about the classification and formation of the ocean floor, how current sea satellite analysis systems work, the chemistry of the oceans and the processes that led to its formation.</p>
<p><a target="_blank" href="https://www.class-central.com/course/futurelearn-exploring-our-oceans-1445"><strong>Exploring Our Oceans</strong></a><br><em>University of Southampton via FutureLearn</em></p>
<p>Discover how you can play a part in the safe-keeping of the future of our oceansWhat lies in the half of our world covered by water more than two miles deep? How are our everyday lives connected to the ocean depths, and what challenges and opportunities does this previously hidden realm hold for our future? By taking this course, you will see how the deep ocean is no longer out of reach, and join a global debate about the future of our “blue planet”.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-tropical-coastal-ecosystems-1649"><strong>Tropical Coastal Ecosystems</strong></a><br><em>University of Queensland via edX</em></p>
<p>Develop the skills and knowledge needed to help preserve tropical coastal ecosystems. This course will introduce you to the incredible plants and animals that create these unique ecosystems. You will go on to explore the challenges these ecosystems are facing such as overfishing, coastal pollution, ocean warming and acidification, then learn about some techniques being used to tackle these problems.</p>
<h3 id="heading-sdg-15-life-on-land">SDG 15: Life on Land</h3>
<p><strong>Protect, restore, and promote sustainable use of terrestrial ecosystems, sustainably manage forests, combat desertification, and halt and reverse land degradation and halt biodiversity loss</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/from-the-ground-up-managing-and-preserving-our-terrestrial-ecosystems-9748"><strong>From the Ground Up: Managing and Preserving our Terrestrial Ecosystems</strong></a><br><em>SDG Academy</em></p>
<p>Learn about the impacts of deforestation, climate change and more, with a particular focus on the human activities that affect these ecosystems. In studying the interplay of local communities dependent on these natural resources, you will emerge with a deep understanding of how to ensure the long-term health of our global ecosystems.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-ecosystem-services-a-method-for-sustainable-development-8088"><strong>Ecosystem Services: a Method for Sustainable Development</strong></a><br><em>University of Geneva via Coursera</em></p>
<p>Ecosystem services are a way of thinking about — and evaluating — the goods and services provided by nature that contribute to the well-being of humans. This course covers scientific (technical), economic, and socio-political dimensions of the concept through a mix of theory, case-studies, interviews with specialists and a serious-game.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-urban-water-innovations-for-environmental-sustainability-2472"><strong>Urban Water-Innovations for Environmental Sustainability</strong></a><br><em>The University of British Columbia via edX</em></p>
<p>In this interdisciplinary course you will learn about the water-related dimensions of environmentally sustainable urbanism. The course features Vancouver, one of the world’s leading cities for green design.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-forests-and-livelihoods-in-developing-countries-2819"><strong>Forests and Livelihoods in Developing Countries</strong></a><br><em>The University of British Columbia via edX</em></p>
<p>This interdisciplinary course explores the complex interactions between poverty, rural livelihoods, and forest resources in developing countries. This course will engage you in developing a deeper understanding of the fundamental importance of forest resources in the lives and livelihoods of people in developing countries.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-global-environmental-management-4087"><strong>Global Environmental Management</strong></a><br><em>Technical University of Denmark via Coursera</em></p>
<p>Learn about the best environmental technologies for a sustainable development and how they are managed in various settings around the world. This course gives you an opportunity to learn about global trends that influence our environment and the living conditions and how different management systems and approaches that are used around the world to manage the environment.</p>
<h3 id="heading-sdg-16-peace-justice-and-strong-institutions">SDG 16: Peace, Justice, and Strong Institutions</h3>
<p><strong>Promote peaceful and inclusive societies for sustainable development, provide access to justice for all and build effective, accountable, and inclusive institutions at all levels</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/environmental-security-and-sustaining-peace-9749"><strong>Environmental Security and Sustaining Peace</strong></a><br><em>SDG Academy</em></p>
<p>This course provides an in-depth introduction to the multiple roles that natural resources and the environment play in the onset, escalation, and resolution of, and recovery from, violent conflicts. Many of the considerations and approaches in this course are also relevant to understanding and addressing social conflicts around natural resources and the environment.</p>
<p><a target="_blank" href="https://www.class-central.com/course/laudato-si-on-care-for-our-common-home-8502"><strong>Laudato Si: On Care for Our Common Home</strong></a><br><em>SDG Academy</em></p>
<p>Pope Francis — spiritual leader to the world’s 1.2 billion Catholics — issued an encyclical called Laudato Si’: On Care of our Common Home. This encyclical is addressed not only to Catholics, but to all people of the world. In blunt terms, it draws attention to the nature of the grave ecological crisis that humanity has created, and it issues a moral clarion call for urgent action to protect the earth and its inhabitants from ruin. This short course provides an overview of the main themes and messages of Laudato Si’.</p>
<p><a target="_blank" href="https://www.class-central.com/course/human-rights-human-wrongs-challenging-poverty-vulnerability-and-social-exclusion-8503"><strong>Human Rights, Human Wrongs: Challenging Poverty, Vulnerability, and Social Exclusion</strong></a><br><em>SDG Academy</em></p>
<p>Learn about the establishment of human rights and their linkages to many other global issues in sustainable development. Learners in this course discuss and debate the complex intersection of politics, gender, social norms, economics and power that have shaped — and will continue to shape — human rights worldwide.</p>
<h3 id="heading-sdg-17-partnership-for-the-goals">SDG 17: Partnership for the Goals</h3>
<p><strong>Strengthen the means of implementation and revitalize the global partnership for sustainable development</strong></p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-act-on-climate-steps-to-individual-community-and-political-action-8737"><strong>Act on Climate: Steps to Individual, Community, and Political Action</strong></a><br><em>University of Michigan via Coursera</em></p>
<p>Are you concerned about climate change? Would you like to learn how to address and respond to this challenge? If so, this course is for you.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-foundations-of-development-policy-3923"><strong>Foundations of Development Policy</strong></a><br><em>Massachusetts Institute of Technology via edX</em></p>
<p>In this course, we will study the different facets of human development in topics such as education, health, gender, the family, land relations, risk, informal and formal norms, public policy, and institutions. At the same time, you will discover modern empirical methods in economics. Throughout the course, we will expose you to all facets of empirical projects, from experimental design and ethical issues, to data collection and data analysis.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-the-changing-global-order-1723"><strong>The Changing Global Order</strong></a><br><em>Leiden University via Coursera</em></p>
<p>How are international power relations changing and how can global peace and stability be maintained? This course familiarizes you with some main theories of international relations, shows how the global order is gradually changing and discusses how selected international and regional organizations contribute to the maintenance of global peace and security. You learn what research findings tell us in terms of the capacity of international organizations and actors to help prevent or stop violent conflict, what tools are used to negotiate agreements and how foundations for sustainable peace are best created.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-global-sociology-946"><strong>Global Sociology</strong></a><br><em>Wellesley College via edX</em></p>
<p>In this introductory sociology course, we will explore the concerns of an interconnected global world through classic sociological concepts. Through short lectures, interviews with prominent sociologists and everyday people around the world, you will learn to see your role in the scope of global history.</p>
<h3 id="heading-courses-cross-cutting-the-sdgs">Courses cross-cutting the SDGs</h3>
<p><a target="_blank" href="https://www.class-central.com/course/the-age-of-sustainable-development-2483"><strong>The Age of Sustainable Development</strong></a><br><em>SDG Academy</em></p>
<p>This course provides an introduction to the interdisciplinary field of sustainable development, drawing on the most recent developments in the social, policy, and physical sciences. The course offers a broad overview of the key challenges and potential solutions to achieve sustainable development in the 21st century.</p>
<p><a target="_blank" href="https://www.class-central.com/course/globalization-past-and-future-9746"><strong>Globalization: Past and Future</strong></a><br><em>SDG Academy</em></p>
<p>In this free, four-part mini-course, Professor Jeffrey Sachs takes students on a historical and anthropological tour of six distinct waves of globalization and outlines the key factors that drove innovation, technology dispersal and development during these epochs. The course tells the story of a global humanity and asks the question: What lessons can we pull from history to help understand the tumultuous changes underway today?</p>
<p><a target="_blank" href="https://www.class-central.com/course/transforming-the-world-achieving-the-sustainable-development-goals-9742"><strong>Transforming the World: Achieving the Sustainable Development Goals</strong></a><br><em>SDG Academy</em></p>
<p>This mini-series presents and explains the 17 newly adopted Sustainable Development Goals.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-sustainable-development-in-the-21st-century-with-ban-ki-moon-10427"><strong>Sustainable Development in the 21st Century with Ban Ki-moon</strong></a><br><em>Yonsei University via Coursera</em></p>
<p>This course is for people who want to learn about the latest development agenda the international community agreed to achieve by 2030. Structured around the five pillars of Agenda 2030 — people, prosperity, planet, peace and justice, and partnership, students will learn that these pillars are interconnected and need to be integrated in practical policy-making and operational activities for development, in both developed and developing country settings.</p>
<p><a target="_blank" href="https://www.class-central.com/course/coursera-political-economy-of-institutions-and-development-8960"><strong>Political Economy of Institutions and Development</strong></a><br><em>University of Leiden via Coursera</em></p>
<p>What makes some countries wealthier than others? Do we face cultural diversity or fragmentation? Does the type of governance affect economic development and social change or is it the other way around? These issues and many more will be examined in this course along with a wide library of sources and a biting criticism.</p>
<p><a target="_blank" href="https://www.class-central.com/course/edx-the-science-and-practice-of-sustainable-development-7269"><strong>The Science and Practice of Sustainable Development</strong></a><br><em>University of Queensland via edX</em></p>
<p>This course introduces the origin and key concepts of sustainability and how to apply those to sustainable development practice. Learn about planetary boundaries, urbanisation and growing inequality, to show how integral sustainable development is to our everyday existence.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
