<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mathematics for Engineers on Software Engineering Learning Paths</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/</link><description>Recent content in Mathematics for Engineers on Software Engineering Learning Paths</description><generator>Hugo</generator><language>en</language><atom:link href="https://kyngo.github.io/learning-paths/paths/mathematics/index.xml" rel="self" type="application/rss+xml"/><item><title>Numbers &amp; Arithmetic</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/01-numbers-and-arithmetic/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/01-numbers-and-arithmetic/</guid><description>&lt;h1 id="numbers--arithmetic"&gt;Numbers &amp;amp; Arithmetic&lt;a class="anchor" href="#numbers--arithmetic"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Every computation a computer performs reduces to arithmetic on numbers. Understanding number systems — what they represent, how they are stored, and where they break — is the foundation of everything that follows.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="number-systems"&gt;Number Systems&lt;a class="anchor" href="#number-systems"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mathematics organises numbers into nested sets, each extending the previous one to solve problems the smaller set cannot.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Symbol&lt;/th&gt;
					&lt;th&gt;Name&lt;/th&gt;
					&lt;th&gt;Contains&lt;/th&gt;
					&lt;th&gt;Example&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;ℕ&lt;/td&gt;
					&lt;td&gt;Natural numbers&lt;/td&gt;
					&lt;td&gt;0, 1, 2, 3, …&lt;/td&gt;
					&lt;td&gt;Counting items in a list&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ℤ&lt;/td&gt;
					&lt;td&gt;Integers&lt;/td&gt;
					&lt;td&gt;…, -2, -1, 0, 1, 2, …&lt;/td&gt;
					&lt;td&gt;Signed offsets, deltas&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ℚ&lt;/td&gt;
					&lt;td&gt;Rational numbers&lt;/td&gt;
					&lt;td&gt;Any number expressible as p/q where p, q ∈ ℤ and q ≠ 0&lt;/td&gt;
					&lt;td&gt;1/3, 7/4, -22/7&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ℝ&lt;/td&gt;
					&lt;td&gt;Real numbers&lt;/td&gt;
					&lt;td&gt;All rationals plus irrationals (π, √2, e)&lt;/td&gt;
					&lt;td&gt;Continuous measurements&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ℂ&lt;/td&gt;
					&lt;td&gt;Complex numbers&lt;/td&gt;
					&lt;td&gt;a + bi where a, b ∈ ℝ and i² = -1&lt;/td&gt;
					&lt;td&gt;Signal processing, quantum computing&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="why-this-matters"&gt;Why This Matters&lt;a class="anchor" href="#why-this-matters"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Array indices are natural numbers (ℕ).&lt;/li&gt;
&lt;li&gt;Database offsets and deltas are integers (ℤ).&lt;/li&gt;
&lt;li&gt;Financial calculations use rationals (ℚ) — never floating-point.&lt;/li&gt;
&lt;li&gt;Physics simulations operate on reals (ℝ), approximated by floats.&lt;/li&gt;
&lt;li&gt;Fourier transforms and quantum gates use complex numbers (ℂ).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="key-properties"&gt;Key Properties&lt;a class="anchor" href="#key-properties"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Every number system inherits the properties of the sets below it and adds new ones:&lt;/p&gt;</description></item><item><title>Algebra</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/02-algebra/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/02-algebra/</guid><description>&lt;h1 id="algebra"&gt;Algebra&lt;a class="anchor" href="#algebra"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Algebra is the machinery for manipulating symbols and solving equations — the language in which algorithms express their relationships, complexity bounds are derived, and configuration parameters are computed.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="expressions-equations-and-identities"&gt;Expressions, Equations, and Identities&lt;a class="anchor" href="#expressions-equations-and-identities"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="expressions"&gt;Expressions&lt;a class="anchor" href="#expressions"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;An &lt;strong&gt;expression&lt;/strong&gt; is a mathematical phrase that combines numbers, variables, and operations. It does not have an equals sign.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;3x + 7
n² - 1
log₂(n) + 1&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="equations"&gt;Equations&lt;a class="anchor" href="#equations"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;An &lt;strong&gt;equation&lt;/strong&gt; asserts that two expressions are equal. It can be solved for unknowns.&lt;/p&gt;</description></item><item><title>Functions &amp; Graphs</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/03-functions-and-graphs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/03-functions-and-graphs/</guid><description>&lt;h1 id="functions--graphs"&gt;Functions &amp;amp; Graphs&lt;a class="anchor" href="#functions--graphs"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;A function is a rule that assigns exactly one output to each input. Functions are the abstraction behind every algorithm&amp;rsquo;s behaviour, every complexity analysis, and every mathematical model in engineering.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="what-is-a-function"&gt;What Is a Function?&lt;a class="anchor" href="#what-is-a-function"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Formally, a function f: A → B is a mapping from a set A (the &lt;strong&gt;domain&lt;/strong&gt;) to a set B (the &lt;strong&gt;codomain&lt;/strong&gt;) where every element of A maps to exactly one element of B.&lt;/p&gt;</description></item><item><title>Discrete Mathematics</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/04-discrete-mathematics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/04-discrete-mathematics/</guid><description>&lt;h1 id="discrete-mathematics"&gt;Discrete Mathematics&lt;a class="anchor" href="#discrete-mathematics"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Discrete mathematics deals with countable, separated values — the natural habitat of computers, which process distinct symbols, not continuous quantities. Sets, relations, and combinatorics form the theoretical foundation of data structures, databases, and algorithms.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="sets"&gt;Sets&lt;a class="anchor" href="#sets"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A &lt;strong&gt;set&lt;/strong&gt; is an unordered collection of distinct elements.&lt;/p&gt;
&lt;h3 id="notation"&gt;Notation&lt;a class="anchor" href="#notation"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;A = {1, 2, 3, 4, 5} Roster notation
B = {x ∈ ℤ | x &amp;gt; 0 and x ≤ 5} Set-builder notation
∅ = {} Empty set&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="set-operations"&gt;Set Operations&lt;a class="anchor" href="#set-operations"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Operation&lt;/th&gt;
					&lt;th&gt;Symbol&lt;/th&gt;
					&lt;th&gt;Definition&lt;/th&gt;
					&lt;th&gt;Example (A={1,2,3}, B={2,3,4})&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Union&lt;/td&gt;
					&lt;td&gt;A ∪ B&lt;/td&gt;
					&lt;td&gt;Elements in A or B (or both)&lt;/td&gt;
					&lt;td&gt;{1, 2, 3, 4}&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Intersection&lt;/td&gt;
					&lt;td&gt;A ∩ B&lt;/td&gt;
					&lt;td&gt;Elements in both A and B&lt;/td&gt;
					&lt;td&gt;{2, 3}&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Difference&lt;/td&gt;
					&lt;td&gt;A \ B&lt;/td&gt;
					&lt;td&gt;Elements in A but not B&lt;/td&gt;
					&lt;td&gt;{1}&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Symmetric difference&lt;/td&gt;
					&lt;td&gt;A △ B&lt;/td&gt;
					&lt;td&gt;Elements in exactly one of A or B&lt;/td&gt;
					&lt;td&gt;{1, 4}&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Complement&lt;/td&gt;
					&lt;td&gt;Aᶜ&lt;/td&gt;
					&lt;td&gt;Elements not in A (relative to universe U)&lt;/td&gt;
					&lt;td&gt;U \ A&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Cartesian product&lt;/td&gt;
					&lt;td&gt;A × B&lt;/td&gt;
					&lt;td&gt;All ordered pairs (a, b)&lt;/td&gt;
					&lt;td&gt;{(1,2),(1,3),(1,4),&amp;hellip;}&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="set-properties"&gt;Set Properties&lt;a class="anchor" href="#set-properties"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Property&lt;/th&gt;
					&lt;th&gt;Formula&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Commutative&lt;/td&gt;
					&lt;td&gt;A ∪ B = B ∪ A, A ∩ B = B ∩ A&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Associative&lt;/td&gt;
					&lt;td&gt;(A ∪ B) ∪ C = A ∪ (B ∪ C)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Distributive&lt;/td&gt;
					&lt;td&gt;A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;De Morgan&amp;rsquo;s&lt;/td&gt;
					&lt;td&gt;(A ∪ B)ᶜ = Aᶜ ∩ Bᶜ, (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Idempotent&lt;/td&gt;
					&lt;td&gt;A ∪ A = A, A ∩ A = A&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Identity&lt;/td&gt;
					&lt;td&gt;A ∪ ∅ = A, A ∩ U = A&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="in-programming"&gt;In Programming&lt;a class="anchor" href="#in-programming"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="c1"&gt;# {1, 2, 3, 4} union&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="c1"&gt;# {2, 3} intersection&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="c1"&gt;# {1} difference&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;^&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="c1"&gt;# {1, 4} symmetric difference&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;A&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt; &lt;span class="c1"&gt;# False subset check&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;SQL &lt;code&gt;SELECT&lt;/code&gt; with &lt;code&gt;UNION&lt;/code&gt;, &lt;code&gt;INTERSECT&lt;/code&gt;, &lt;code&gt;EXCEPT&lt;/code&gt; maps directly to set operations.&lt;/p&gt;</description></item><item><title>Logic &amp; Proofs</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/05-logic-and-proofs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/05-logic-and-proofs/</guid><description>&lt;h1 id="logic--proofs"&gt;Logic &amp;amp; Proofs&lt;a class="anchor" href="#logic--proofs"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Logic is the science of valid reasoning — the same principles that govern circuit design, type systems, query optimisation, and formal verification. Proof techniques are how you demonstrate that algorithms are correct and that security properties hold.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="propositional-logic"&gt;Propositional Logic&lt;a class="anchor" href="#propositional-logic"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Propositional logic deals with statements (propositions) that are either true or false, connected by logical operators.&lt;/p&gt;
&lt;h3 id="logical-connectives"&gt;Logical Connectives&lt;a class="anchor" href="#logical-connectives"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Connective&lt;/th&gt;
					&lt;th&gt;Symbol&lt;/th&gt;
					&lt;th&gt;Name&lt;/th&gt;
					&lt;th&gt;English&lt;/th&gt;
					&lt;th&gt;Example&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;NOT&lt;/td&gt;
					&lt;td&gt;¬&lt;/td&gt;
					&lt;td&gt;Negation&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;not p&amp;rdquo;&lt;/td&gt;
					&lt;td&gt;¬(it is raining)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;AND&lt;/td&gt;
					&lt;td&gt;∧&lt;/td&gt;
					&lt;td&gt;Conjunction&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;p and q&amp;rdquo;&lt;/td&gt;
					&lt;td&gt;(sunny) ∧ (warm)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OR&lt;/td&gt;
					&lt;td&gt;∨&lt;/td&gt;
					&lt;td&gt;Disjunction&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;p or q&amp;rdquo; (inclusive)&lt;/td&gt;
					&lt;td&gt;(admin) ∨ (owner)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;XOR&lt;/td&gt;
					&lt;td&gt;⊕&lt;/td&gt;
					&lt;td&gt;Exclusive or&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;p or q but not both&amp;rdquo;&lt;/td&gt;
					&lt;td&gt;(left) ⊕ (right)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;IMPLIES&lt;/td&gt;
					&lt;td&gt;→&lt;/td&gt;
					&lt;td&gt;Implication&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;if p then q&amp;rdquo;&lt;/td&gt;
					&lt;td&gt;(logged_in) → (has_session)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;IFF&lt;/td&gt;
					&lt;td&gt;↔&lt;/td&gt;
					&lt;td&gt;Biconditional&lt;/td&gt;
					&lt;td&gt;&amp;ldquo;p if and only if q&amp;rdquo;&lt;/td&gt;
					&lt;td&gt;(x&amp;gt;0) ↔ (x is positive)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="truth-tables"&gt;Truth Tables&lt;a class="anchor" href="#truth-tables"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;AND:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Graph Theory</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/06-graph-theory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/06-graph-theory/</guid><description>&lt;h1 id="graph-theory"&gt;Graph Theory&lt;a class="anchor" href="#graph-theory"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Graphs model relationships between things — networks, dependencies, routes, social connections, state machines. Graph theory provides the language and algorithms for navigating, searching, and optimising these structures.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="definitions"&gt;Definitions&lt;a class="anchor" href="#definitions"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A &lt;strong&gt;graph&lt;/strong&gt; G = (V, E) consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V&lt;/strong&gt; — a set of &lt;strong&gt;vertices&lt;/strong&gt; (nodes)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;E&lt;/strong&gt; — a set of &lt;strong&gt;edges&lt;/strong&gt; (connections between vertices)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="types-of-graphs"&gt;Types of Graphs&lt;a class="anchor" href="#types-of-graphs"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Type&lt;/th&gt;
					&lt;th&gt;Description&lt;/th&gt;
					&lt;th&gt;Example&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Undirected&lt;/td&gt;
					&lt;td&gt;Edges have no direction&lt;/td&gt;
					&lt;td&gt;Facebook friendships&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Directed (digraph)&lt;/td&gt;
					&lt;td&gt;Edges have direction (u → v)&lt;/td&gt;
					&lt;td&gt;Twitter follows, dependencies&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Weighted&lt;/td&gt;
					&lt;td&gt;Edges have numeric weights&lt;/td&gt;
					&lt;td&gt;Road distances, latencies&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Unweighted&lt;/td&gt;
					&lt;td&gt;All edges are equal&lt;/td&gt;
					&lt;td&gt;Simple connectivity&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Simple&lt;/td&gt;
					&lt;td&gt;No self-loops or parallel edges&lt;/td&gt;
					&lt;td&gt;Most theoretical graphs&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Multigraph&lt;/td&gt;
					&lt;td&gt;Allows parallel edges&lt;/td&gt;
					&lt;td&gt;Flight routes between cities&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Complete (Kₙ)&lt;/td&gt;
					&lt;td&gt;Edge between every pair of vertices&lt;/td&gt;
					&lt;td&gt;Fully connected network&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Bipartite&lt;/td&gt;
					&lt;td&gt;Vertices split into two sets, edges only between sets&lt;/td&gt;
					&lt;td&gt;Job assignments, matching&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;DAG&lt;/td&gt;
					&lt;td&gt;Directed acyclic graph&lt;/td&gt;
					&lt;td&gt;Task dependencies, Git commits&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="terminology"&gt;Terminology&lt;a class="anchor" href="#terminology"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Term&lt;/th&gt;
					&lt;th&gt;Definition&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Adjacent&lt;/td&gt;
					&lt;td&gt;Two vertices connected by an edge&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Degree&lt;/td&gt;
					&lt;td&gt;Number of edges incident to a vertex&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;In-degree / Out-degree&lt;/td&gt;
					&lt;td&gt;Edges coming in / going out (directed graphs)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Path&lt;/td&gt;
					&lt;td&gt;Sequence of vertices where each consecutive pair is connected&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Cycle&lt;/td&gt;
					&lt;td&gt;Path that starts and ends at the same vertex&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Connected&lt;/td&gt;
					&lt;td&gt;Every vertex is reachable from every other (undirected)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Strongly connected&lt;/td&gt;
					&lt;td&gt;Every vertex reachable from every other following edge directions (directed)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Component&lt;/td&gt;
					&lt;td&gt;Maximal connected subgraph&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="the-handshaking-lemma"&gt;The Handshaking Lemma&lt;a class="anchor" href="#the-handshaking-lemma"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;In any undirected graph, the sum of all vertex degrees equals twice the number of edges:&lt;/p&gt;</description></item><item><title>Linear Algebra</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/07-linear-algebra/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/07-linear-algebra/</guid><description>&lt;h1 id="linear-algebra"&gt;Linear Algebra&lt;a class="anchor" href="#linear-algebra"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Linear algebra is the mathematics of vectors, matrices, and linear transformations. It is the computational engine behind machine learning, computer graphics, data compression, search engines, and recommendation systems.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="vectors"&gt;Vectors&lt;a class="anchor" href="#vectors"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A &lt;strong&gt;vector&lt;/strong&gt; is an ordered list of numbers. It can represent a point in space, a direction, a data record, or a feature embedding.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;v = [3, 4] 2D vector
w = [1, 0, -2, 5] 4D vector&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="vector-operations"&gt;Vector Operations&lt;a class="anchor" href="#vector-operations"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Operation&lt;/th&gt;
					&lt;th&gt;Formula&lt;/th&gt;
					&lt;th&gt;Example&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Addition&lt;/td&gt;
					&lt;td&gt;u + v = [u₁+v₁, u₂+v₂, &amp;hellip;]&lt;/td&gt;
					&lt;td&gt;[1,2] + [3,4] = [4,6]&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Scalar multiplication&lt;/td&gt;
					&lt;td&gt;c·v = [cv₁, cv₂, &amp;hellip;]&lt;/td&gt;
					&lt;td&gt;3·[1,2] = [3,6]&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Dot product&lt;/td&gt;
					&lt;td&gt;u·v = Σ uᵢvᵢ&lt;/td&gt;
					&lt;td&gt;[1,2]·[3,4] = 3+8 = 11&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Magnitude (norm)&lt;/td&gt;
					&lt;td&gt;‖v‖ = √(Σ vᵢ²)&lt;/td&gt;
					&lt;td&gt;‖[3,4]‖ = √(9+16) = 5&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Unit vector&lt;/td&gt;
					&lt;td&gt;v̂ = v / ‖v‖&lt;/td&gt;
					&lt;td&gt;[3,4]/5 = [0.6, 0.8]&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="the-dot-product"&gt;The Dot Product&lt;a class="anchor" href="#the-dot-product"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The dot product captures the notion of &lt;strong&gt;alignment&lt;/strong&gt; between two vectors:&lt;/p&gt;</description></item><item><title>Probability</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/08-probability/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/08-probability/</guid><description>&lt;h1 id="probability"&gt;Probability&lt;a class="anchor" href="#probability"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Probability quantifies uncertainty. It is the mathematical framework behind reliability engineering, machine learning, A/B testing, cryptographic security, and capacity planning. If you build systems that interact with the real world, you reason about probability whether you formalise it or not.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="foundations"&gt;Foundations&lt;a class="anchor" href="#foundations"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="sample-space-and-events"&gt;Sample Space and Events&lt;a class="anchor" href="#sample-space-and-events"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Experiment:&lt;/strong&gt; A process with uncertain outcome (rolling a die, receiving a request)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sample space (Ω):&lt;/strong&gt; The set of all possible outcomes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Event (A):&lt;/strong&gt; A subset of the sample space&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Rolling a die:
 Ω = {1, 2, 3, 4, 5, 6}
 A = &amp;#34;even number&amp;#34; = {2, 4, 6}
 P(A) = |A| / |Ω| = 3/6 = 1/2&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="axioms-of-probability"&gt;Axioms of Probability&lt;a class="anchor" href="#axioms-of-probability"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;P(A) ≥ 0 for any event A&lt;/li&gt;
&lt;li&gt;P(Ω) = 1 (something must happen)&lt;/li&gt;
&lt;li&gt;For mutually exclusive events: P(A ∪ B) = P(A) + P(B)&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="basic-rules"&gt;Basic Rules&lt;a class="anchor" href="#basic-rules"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Rule&lt;/th&gt;
					&lt;th&gt;Formula&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Complement&lt;/td&gt;
					&lt;td&gt;P(not A) = 1 - P(A)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Union&lt;/td&gt;
					&lt;td&gt;P(A ∪ B) = P(A) + P(B) - P(A ∩ B)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Mutually exclusive&lt;/td&gt;
					&lt;td&gt;P(A ∪ B) = P(A) + P(B)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Certain event&lt;/td&gt;
					&lt;td&gt;P(Ω) = 1&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Impossible event&lt;/td&gt;
					&lt;td&gt;P(∅) = 0&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="conditional-probability"&gt;Conditional Probability&lt;a class="anchor" href="#conditional-probability"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The probability of A given that B has occurred:&lt;/p&gt;</description></item><item><title>Statistics</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/09-statistics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/09-statistics/</guid><description>&lt;h1 id="statistics"&gt;Statistics&lt;a class="anchor" href="#statistics"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Statistics is the discipline of learning from data — summarising it, drawing inferences, and making decisions under uncertainty. For engineers, it is the foundation of A/B testing, performance benchmarking, capacity planning, and data-driven decision-making.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="descriptive-statistics"&gt;Descriptive Statistics&lt;a class="anchor" href="#descriptive-statistics"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="measures-of-central-tendency"&gt;Measures of Central Tendency&lt;a class="anchor" href="#measures-of-central-tendency"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Measure&lt;/th&gt;
					&lt;th&gt;Definition&lt;/th&gt;
					&lt;th&gt;When to Use&lt;/th&gt;
					&lt;th&gt;Sensitive to Outliers&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Mean&lt;/td&gt;
					&lt;td&gt;Sum / count&lt;/td&gt;
					&lt;td&gt;Symmetric data&lt;/td&gt;
					&lt;td&gt;Yes&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Median&lt;/td&gt;
					&lt;td&gt;Middle value (sorted)&lt;/td&gt;
					&lt;td&gt;Skewed data, outliers&lt;/td&gt;
					&lt;td&gt;No&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Mode&lt;/td&gt;
					&lt;td&gt;Most frequent value&lt;/td&gt;
					&lt;td&gt;Categorical data&lt;/td&gt;
					&lt;td&gt;No&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Response times [12, 15, 14, 13, 850] ms&lt;/p&gt;</description></item><item><title>Calculus Essentials</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/10-calculus-essentials/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/10-calculus-essentials/</guid><description>&lt;h1 id="calculus-essentials"&gt;Calculus Essentials&lt;a class="anchor" href="#calculus-essentials"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Calculus is the mathematics of change and accumulation. This section covers the minimum viable calculus for engineers — enough to understand gradient descent, optimisation, and the mathematical foundations of machine learning without a full analysis course.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="limits"&gt;Limits&lt;a class="anchor" href="#limits"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;A &lt;strong&gt;limit&lt;/strong&gt; describes the value a function approaches as its input approaches some point.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;lim (x → a) f(x) = L&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Means: as x gets arbitrarily close to a, f(x) gets arbitrarily close to L.&lt;/p&gt;</description></item><item><title>Information Theory</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/11-information-theory/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/11-information-theory/</guid><description>&lt;h1 id="information-theory"&gt;Information Theory&lt;a class="anchor" href="#information-theory"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Information theory, founded by Claude Shannon in 1948, quantifies information, uncertainty, and communication. It provides the mathematical framework for compression, error correction, cryptography, and — surprisingly — the loss functions used in machine learning.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="information-content"&gt;Information Content&lt;a class="anchor" href="#information-content"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;How much &amp;ldquo;information&amp;rdquo; does an event carry? Intuitively, rare events are more informative than common ones. &amp;ldquo;The sun rose this morning&amp;rdquo; is unsurprising (low information). &amp;ldquo;An earthquake just hit&amp;rdquo; is surprising (high information).&lt;/p&gt;</description></item><item><title>Mathematics in Practice</title><link>https://kyngo.github.io/learning-paths/paths/mathematics/12-math-in-practice/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kyngo.github.io/learning-paths/paths/mathematics/12-math-in-practice/</guid><description>&lt;h1 id="mathematics-in-practice"&gt;Mathematics in Practice&lt;a class="anchor" href="#mathematics-in-practice"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;This section bridges mathematical theory to engineering reality — the numerical traps that bite in production, the probabilistic methods that solve intractable problems, and the mathematical principles hiding inside everyday tools.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="numerical-stability"&gt;Numerical Stability&lt;a class="anchor" href="#numerical-stability"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="the-fundamental-problem"&gt;The Fundamental Problem&lt;a class="anchor" href="#the-fundamental-problem"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Computers work with finite-precision arithmetic. Every floating-point operation can introduce a small error, and these errors accumulate. Code that is mathematically correct can be numerically wrong.&lt;/p&gt;
&lt;h3 id="catastrophic-cancellation"&gt;Catastrophic Cancellation&lt;a class="anchor" href="#catastrophic-cancellation"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Subtracting nearly equal numbers amplifies relative error:&lt;/p&gt;</description></item></channel></rss>