1. History of Algorithms
1. History of Algorithms
Resources
Muhammad ibn Musa al-Khwarizmi - Wikipedia
Quadratic equation - Wikipedia
A new way to make quadratic equations easy - MIT Technology Review
A Different Way to Solve Quadratic Equations - youtube
A Simple Proof of the Quadratic Formula Po-Shen Loh - arxiv
Cubic function - Cardano–Tartaglia formula- Wikipedia
Quartic function - Wikipedia
Fundamental Theorem of Algebra- Wikipedia
Galois Theory - Wikipedia
Galois Theory: Polynomials of Degree 5 and Up, Tokuei Higashino, Union College - williams.edu
Gödel's incompleteness theorems - Wikipedia
Halting problem - Wikipedia
Python symbolic mathematics library - wikipedia
Division of polynomials in python - stackoverflow
Root-finding numeric algorithms (Newton, bisection, etc)
The root-finding numeric Newton method when applied to complex polynomial defines a Newton Fractal (a class of Julia set) coloring each complex plane point, depending of the number of iterations to converge or depending to what root converges, if the algorithm starts in that complex plane point .
Julia set for Z^3 -1 Applet -ungrid
The Julia set - scipython
Fast Computation of Julia Set in Python - ibm
Julia fractal in Python - geeksforgeeks.
Top Ten Algorithms algorithms having "the greatest influence on the development and practice of science and engineering in the 20th century" nominated by the journal Computing in Science and Engineering February 2000
2. Competitive Programming
Ivan Yesid Castellanos Martinez <iycastellanosm@unal.edu.co>
Osman David Jimenez Gutierrez <odjimenezg@unal.edu.co>,
Grupo de Maratones UN:
Resources
Grupo de Maratones UN Slides
EXtreme Slides talk J.S. Dussan
CS 97SI: Introduction to Programming Contests - Jaehyun Park - Stanford University
CS3233 Competitive Programming - old teaching materials - Steven Halim - NUS
Competitive Programmer's Core Skills Coursera - Saint Petersburg State University
Competitive Programmer's Handbook PDF - Code Submission Evaluation System Finland - CSES
Common mistakes to be avoided in Competitive Programming in C++ | Beginners - Geeksforgeeks
Python - Most frequent problem for beginners (on Hackerearth) - Rishikesh Agrawani - Linkedin
Quiz2 Competitive Programming
Solve the two following simple problems
3. Computational Thinking and the Hour of Code
Resources
Computational Thinking - giiestemb UN
Taller SED Educación STEM - stem-academia.org
Hour of Code - giiestemb UN
Logo (programming language) wikipedia - jslogo - turtleacademy
NetLogo - northwestern
Blockly - A JavaScript library for building visual programming editors - https://developers.google.com/blockly
Scratch - https://scratch.mit.ed
Let' s teach kids to code - Mitch_Resnick_ - TED
MIT App Inventor - https://appinventor.mit.edu/
Resources
Python’s Scientific Ecosystem - algotradingun
Python
Python (programming language) - Wikipedia
Python Software Foundation - Python.org
Cognitive Class AI - cognitiveclass.ai
Resources
Lisp (programming language) https://en.wikipedia.org/wiki/Lisp_(programming_language)
Grace Hopper - COBOL
Java (programming language) https://en.wikipedia.org/wiki/Java_(programming_language)
JavaScript https://en.wikipedia.org/wiki/JavaScript
TLA+ Language - wikipedia
The Top Programming Languages 2019 - IEEE Spectrum
4. Trading Algorithms
Resources
$10K Third-Party Challenge: Design a Factor for a Large US Corporate Pension - quantopian
Upgrading to Python 3 https://www.quantopian.com/posts/upgrading-to-python-3
Markdown Cheatsheet github
Learn from the Experts Ep 2: Fast Iterative Factor Development with Kyle - youtube
Learn from the Experts Episode 3: Building Sector-Specific Factors with Leo - youtube
Lab 4 Quantopian Lectures 1-5 and Tutorial 1 Getting Started - UN Moodle
Lab 5 Reproduce the "The PyData Toolbox with Scott Sanderson" notebook in Google Colab - UN Moodle
UNAL Class Challenge
UNAL Class Challenge – quantopian
$10K Third-Party Challenge: Design a Factor for a Large US Corporate Pension – quantopian
1. Introduction and What this Course Will Do for You and Your Purposes – Financial Markets (2011) with Robert Shiller Yale Courses – youtube
2. Risk and Financial Crises – Financial Markets (2011) with Robert Shiller Yale Courses – youtube
Lab 6 Sample Mean Reversion modifications - UN Moodle
Lab 7 Hello World modifications with pipeline análisis - UN Moodle
Cross-sectional Equity Template Example
Lab 8 - Cross-sectional Equity Template modifications - UN Moodle
5. Pancakes With A Problem!
Resources
E 2569. Proposed by Harry Dweighter. - The American Mathematical Monthly The American Mathematical Monthly Vol. 82, No. 10, Dec., 1975 p 1010 - jstor
Flipping pancakes with mathematics - theguardian
William H. Gates and Christos Papadimitriou. Bounds For Sorting By Prefix Reversal. Discrete Mathematics, vol 27, pp 47-57, 1979 - sciencedirect
The Pancake Problems (1975, 1979, 1973) - Open Problems - Graph Theory and Combinatorics- Illinois
An (18/11)n upper bound for sorting by prefix reversals B. Chitturi, W. Fahle, Z. Meng, L. Morales, C.O. Shields, I.H. Sudborough∗ , W. Voit -Theoretical Computer Science 410 (2009) 3372–3390 - core.ac.uk
Cohen D.S.; Blum, M. On the problem of sorting burnt pancakes. Discrete Appl. Math. 61 (1995), no. 2, 105--120. mathcirclesnm.org
Heydari M.H.; Sudborough, I.H. On the diameter of the pancake network. J. Algorithms 25 (1997), no. 1, 67--94. . sciencedirect
A058986 Sorting by prefix reversal (or "flipping pancakes") - The On-Line Encyclopedia of Integer Sequences - oeis.org
A078941 Flipping burnt pancakes. - The On-Line Encyclopedia of Integer Sequences - oeis.org
Lab 9 Pancakes With A Problem! - UN Moodle
6. New Markets: The Invisible Hand of Algorithms
Resources
Slides link
Stable Marriage Problem – MRSI – Numberphile – cse.buffalo.edu
Quiz 3 - - The Stable Marriage Problem [ Book Excerpt] , reading materials:
The Stable Marriage Problem [ Book Excerpt]
2.11.1 Stable Matching: Video - MIT 6.042J Mathematics for Computer Science, Spring 2015 - Albert R. Meyer - youtube
Gale Shapley Algorithm for Stable Matching – S Sawhney – Youtube
Stable Marriage Problem – wikipedia
The Mathematics Of 1950’s Dating: Who wins The Battle of The Sexes? 15-251 Great Theoretical Ideas in Computer Science CMU Lecture 9 (September 25, 2007) ppt
College Admissions and the Stability of Marriage Author(s): D. Gale and L. S. Shapley Source: The American Mathematical Monthly, Vol. 69, No. 1 (Jan., 1962), pp. 9-15 - Harvard
Stable matching, as a game – towardsdatascience
An efficient algorithm for the “stable roommates” problem, Rrobert W. Irving, Journal of Algorithms 6, 577-595 (1985) - dcs.gla.ac.uk
Matching (Graph Theory) - brilliant
Matching Algorithms (Graph Theory) – brilliant
Game Theory
Game Theory - wikipedia
John Nash y la Teoría de Juegos - Sergio Monsalve - Lecturas Matemáticas Volumen 24 (2003), páginas 137–149 - cienciared
Teoría de Juegos ¿Hacia Donde vamos? (60 años después de von Neumann y Morgenstern) - Sergio Monsalve - redalyc
Nota postuma sobre el legado de John Nash - Sergio Monsalve - elespectador
Dinámica y Opmización- Sergio Monsalve Gómez - FCE UN - pdf
“New Market Models and Algorithms” Vijay Vaziarni UCI
How algorithms shape our world - Kevin Slavin- TED Talks
Lab 10 Gale-Shapley and Irving Algorithms (Groups of up to 2 students) - UN Moodle
7. Analysis of Algorithms
What is an algorithm?
Semantic analysis
Correctness
Complexity
Time complexity
Elementary operation
Principle of invariance
Resources
CLRS I.1
Time Complexity of Bubble Sort applet - ungrid
8. Complete search - Brute force and Quantum Algorithms
9. Asymptotic notation
Resources
CLRS I.3
DVP 0.3
Grokking 1
Lecture 2: Asymptotic Notation; Recurrences; Substitution, Master Method MIT Introduction-to-algorithms 2005
Videos
10. Incremental/Decremental Paradigm
Incremental/Decremental Paradigm
Insertion sort
Incremental Recurrences
Decremental - Bubble sort
Decremental + Efficient Data Structures - Heap Sort
Binary heaps
Heap sort
Priority queues
Resources
CLRS I.2.1
Visualization Sorting Algorithms Galles UCSF
Lecture 1: Administrivia; Introduction; Analysis of Algorithms, Insertion Sort, Mergesort MIT Introduction-to-algorithms 2005
Decremental + Efficient Data Structures - Heap Sort
CLRS II.6
VisuAlgo - https://visualgo.net/en/heap
Lecture 4: Heaps and Heap Sort MIT Introduction to Algorithms( 6.006) Fall 2011
Udacity CS 215 Lesson 4: It’s Who You Know Keeping track of your best friends using heaps
Heap Sort Animation Applet html
11. Greedy algorithms
Resources
Grokking 8
CLRS IV.16
AL 6
Slides link
Minimum Spanning Trees MST
CLRS VI.23, V .21
DVP 5
AL 15
Kruskal’s Minimum Spanning Tree
Disjoint Sets - Wikipedia - Visualgo - Galles UCSF
Prim’s Minimum Spanning Tree
16: Greedy Algorithms, MIT Introduction-to-algorithms 2005 - video - slides
12. Divide and Conquer I - Merge Sort
Divide and Conquer Paradigm
Merge Sort
Time Complexity Merge Sort
Resources
CLRS I.2.2
DVP 2
Grokking Algorithms 1
The famous PhoneBook - Video Clipt CS50 2012 Harvard - youtube
Sorting visualizations - visualgo
Sorting visualizations - Galles UCSF
Merge-sort with Transylvanian-saxon (German) folk dance - Algorithms - AlgoRythmics - youtube
MergeSortHawaii applet ungrid
MergeSortIITK applet ungrid
Sorting comparison demos
Quiz Divide and Conquer I - review
Lecture 1: Administrivia; Introduction; Analysis of Algorithms, Insertion Sort, Mergesort MIT Introduction-to-algorithms 2005
CLRS I.2.2, DVP 2 and Grokking Algorithms 1
12. Divide and Conquer I - Merge Sort
Other Examples of D-C
Chip Testing Problem
Binary Search
Convex Hull
Towers of Hanoi
Alternative Methods to Solve D-C Recurrences
Master theorem
Characteristic equation method
Substitution method
Z transform
Resources
Grokking 1 and 3
CLRS I.4
DVP 2
Convex hull visualization - youtube
Convex hull visualization - visualgo
Divide and Conquer, Merger Sort y complejidad de recurrencias - Programacion Competetiva UNAL
Lecture 2: Asymptotic Notation; Recurrences; Substitution, Master Method MIT Introduction-to-algorithms 2005
Towers of Hanoi visualization - towersofhanoi.info
Videos
14. Dynamic Programming
Resources
Grokking 9
CLRS IV.15
DVP 6
Laaksonen I.7 - Chapter 7 Dynamic Programming
Programación Dinámica UN - Programacion Competetiva UNAL
Fibonnaci
An introduction to the theory of dynamic programming - R, Bellman - RAND -1954 - Dtic.Mil - pdf
Lecture 15: Dynamic Programming, Longest Common Subsequence MIT Introduction to Algorithms (SMA 5503 ) Fall 2005
Lecture 10 Dynamic Programming Ackerman FSU
15. Graph Algorithms
Resources
Grokking 6 and 7
Laaksonen II
DVP 3 and 4
CLRS VI
Slides link
Graph Traversals (BFS-DFS) -
Shortest Paths
Dijkstra's algorithm
Bellman- Ford
Lecture 18: Shortest Paths II: Bellman-Ford, Linear Programming, Difference Constraints MIT Introduction-to-algorithms 2005
Floyd-Warshall
Lecture 19: Shortest Paths III: All-pairs Shortest Paths, Matrix Multiplication, Floyd-Warshall, Johnson MIT Introduction to Algorithms (SMA 5503 ) Fall 2005
CS3233 Competitive Programming - old teaching materials - Steven Halim, NUS, week05_graph_1.pdf
Udacity CS215 Intro to Algorithms - analyze networks
Coursera Algorithms on Graphs Udacity CS 215 Lesson 5: Strong and Weak Bonds Working with social networks with edge weights
16. Solving Hard (Challenging) Algorithmic Problems
Alexis Lenis Ochoa
Hard Algorithmic Problems
TSP - Orion UPS
Graph Isomorphism
SAT
NP (complexity) https://en.wikipedia.org/wiki/NP_(complexity)
NP-hardness https://en.wikipedia.org/wiki/NP-hardness
NP-complete problems https://en.wikipedia.org/wiki/NP-completeness
P versus NP https://en.wikipedia.org/wiki/P_versus_NP_problem
Stephan Ceroi´s lectures (in Spanish), ceroi@lirmm.fr in Calculability and Complexity
String Processing Algorithms
Information Retrieval
Personalized Medicine
Resources
Udacity CS 313 Intro to Theoretical Computer Science Dealing with Challenging Problems
Slides link
OM in the News: At UPS, the Algorithm is the Truck Driver Feb. 24, 2015 tags: algorithms, ORION, routing, scheduling, travelling salesman, UPS by Barry Render OM Blog
At UPS, the Algorithm Is the Driver, Steven Rosenbush and Laura Stevens, WSJ, Feb. 16, 2015 8:28 p.m. (local)
A Quasipolynomial Time Algorithm for Graph Isomorphism: The Details Math ∩ Programming jeremykun.com
The international SAT Competitions http://www.satcompetition.org/
Prizes Aside, the P-NP Puzzler Has Consequences nytimes.com
Coursera Algorithms on Strings
Vishal Sikka: The beauty and power of algorithms TED Talk
Pratik Shah: How AI is making it easier to diagnose disease TED Talk
Chinese scientists are creating CRISPR babies Antonio Regalado November 25, 2018 technologyreview.com
The Algorithm for Precision Medicine youtube.com
17 Randomization - Randomized Select and Quick Sort
Medians and Order Statistics
Randomized Select
Deterministic Select
Quicksort
Randomized Quicksort
Resources
CLRS II.7
DVP 2.4
Lecture 6: Order Statistics, Median MIT Introduction to Algorithms (SMA 5503 ) Fall 2005
Lecture 4: Quicksort, Randomized Algorithms MIT Introduction to Algorithms (SMA 5503 ) Fall 2005
Quick-sort with Hungarian (Küküllőmenti legényes) folk dance - AlgoRythmics - youtube
IPython notebook: quicksort two finger comp distrib (tiempo)
Sorting visualizations - visualgo
Sorting visualizations - Galles UCSF
Quicksort visualization applet - ungrid
Quicksort time distributions applets ungrid
Rondomixed Quicksort time distributions applets ungrid
Sorting comparison demos
Distributional Convergence for the Number of Symbol Comparisons Used by QuickSort from JA Fill, Johns Hopkings U.
Distributional Convergence for the Number of Symbol Comparisons Used by QuickSelect.from JA Fill, Johns Hopkings U.
18. Input Tuning - Sorting in Linear Time
Lower bound for sorting
Counting sort
Radix sort
Bucket sort
Resources
CLRS II.8
DVP Pg 63
Lecture 5: Linear-time Sorting: Lower Bounds, Counting Sort, Radix Sort MIT Introduction to Algorithms (SMA 5503) Fall 2005
19. String algorithms and bioinformatics
Luis Fernando Niño
Resources