From 8e9ef5ba62b8bee028428384ad5666e245eb854c Mon Sep 17 00:00:00 2001 From: Mitja Felicijan Date: Sun, 17 Feb 2019 21:53:36 +0100 Subject: content update --- .../basic-math-in-programming/default.pug | 206 --------------------- 1 file changed, 206 deletions(-) delete mode 100644 slides/presentations/basic-math-in-programming/default.pug (limited to 'slides/presentations/basic-math-in-programming/default.pug') diff --git a/slides/presentations/basic-math-in-programming/default.pug b/slides/presentations/basic-math-in-programming/default.pug deleted file mode 100644 index 7ca262b..0000000 --- a/slides/presentations/basic-math-in-programming/default.pug +++ /dev/null @@ -1,206 +0,0 @@ -section - h1 Why understanding of basic math is important for computer programing - p September 21, 2018, rev2 - a(href="https://twitter.com/mitjafelicijan") @mitjafelicijan - -section - h2 Agenda - ol - li Levenshtein distance - li Shortest path algorithm - li Distance Formula - li - -section.center - q We Cannot Solve Our Problems With The Same Thinking We Used When We Created Them. - footer — Albert Einstein - -section - h2 How we usually find solutions and why this is problematic? - - ul - li We search for code example instead of algorithms. - li We copy and paste and do testing on trial&error principle. - li We don't take enough time to properly understand problem we a re trying to solve. - li Brute force solutions we make are usually not optimized - -section - h2 Levenshtein distance - p The Levenshtein distance is a string metric for measuring difference between two sequences. Informally, the Levenshtein distance between two words is the minimum number of single-character edits (i.e. insertions, deletions or substitutions) required to change one word into the other. - - hr - - div.center - img(src="levenshtein-distance.svg", height="150") - - hr - - div.center - img(src="test.png") - - hr - - pre - code.language-python - | def levenshtein(seq1, seq2): - | oneago = None - | thisrow = range(1, len(seq2) + 1) + [0] - | for x in xrange(len(seq1)): - | twoago, oneago, thisrow = oneago, thisrow, [0] * len(seq2) + [x + 1] - | for y in xrange(len(seq2)): - | delcost = oneago[y] + 1 - | addcost = thisrow[y - 1] + 1 - | subcost = oneago[y - 1] + (seq1[x] != seq2[y]) - | thisrow[y] = min(delcost, addcost, subcost) - | return thisrow[len(seq2) - 1] - - - hr - - h4 Going further - ul - li - a(href="https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance") https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance - li - a(href="https://en.wikipedia.org/wiki/Levenshtein_distance") https://en.wikipedia.org/wiki/Levenshtein_distance - li - a(href="https://rosettacode.org/wiki/Levenshtein_distance") https://rosettacode.org/wiki/Levenshtein_distance - - - - - - - - - - - - -section - h2 Basic linear algebra - - pre - code.language-css - | body { - | background: black; - | } - - pre - code.language-javascript - | $(document).ready(function() { - | $('pre code').each(function(i, block) { - | hljs.highlightBlock(block); - | }); - | }); - - hr - figcaption.right Step 1: Finding nearest point - - div.center - img(src="drawing1.svg") - - hr - figcaption.right Step 1: Finding nearest point - - $$ \large{ \mathbb{R}^2 ∈ \vec{a} \bar{a} } $$ - $$ \large{ e^{i\pi} + 1 = 0 } $$ - $$ \large{ x = {-b \pm \sqrt{b^2-4ac} \over 2a} } $$ - - hr - figcaption.right Step 2: Finding nearest point - - pre - code.language-python - | fruits = ["apple", "banana", "cherry"] - | for x in fruits: - | if x == "banana": - | break - | print(x) - - hr - figcaption.right Finding nearest point - - $$ \large{ \mathbb{R}^2 ∈ \vec{a} \bar{a} } $$ - $$ \large{ e^{i\pi} + 1 = 0 } $$ - $$ \large{ x = {-b \pm \sqrt{b^2-4ac} \over 2a} } $$ - - hr - figcaption.right Finding nearest point - - pre - code.language-c - | #include - | int main () { - | for( ; ; ) { - | printf("This loop will run forever.\n"); - | } - | return 0; - | } - - hr - figcaption.right Finding nearest point - - pre - code.language-python - | fruits = ["apple", "banana", "cherry"] - | for x in fruits: - | if x == "banana": - | break - | print(x) - - hr - figcaption.right Finding nearest point - - pre - code.language-sql - | SELECT `CustomerName`, `City` FROM `Customers`; - - hr - figcaption.right Finding nearest point - - pre - code.language-go - | package main - | import "fmt" - | func main() { - | sum := 0 - | for i := 0; i < 10; i++ { - | sum += i - | } - | fmt.Println(sum) - | } - - hr - figcaption.right Finding nearest point - - pre - code.language-javascript - | $(document).ready(function() { - | $('pre code').each(function(i, block) { - | hljs.highlightBlock(block); - | }); - | }); - - hr - figcaption.right Finding nearest point - - pre - code.language-css - | body { - | background: black; - | } - -section - h3 Grid example - div.grid.col-1-1 - div Lipsum - div Lipsum - - div.grid.col-2-1 - div Lipsum - div Lipsum - - div.grid.col-1-2 - div Lipsum - div Lipsum -- cgit v1.2.3