8
some useful lessons and insights for Kno.e.sis researchers on Programming & Algorithms Krishnaprasad Thirunarayan, Kno.e.sis

Some useful lessons and insights on Programming Languages & Algorithms

Embed Size (px)

DESCRIPTION

Prof. TK Prasad reviews/recommends some topical issues on programming languages and algorithms, based on his analysis/thoughts on some recent work from Kno.e.sis - what we can improve on, what we did right and others can learn from, what are some recent trends/progress we should be aware of.

Citation preview

Page 1: Some useful lessons and insights on Programming Languages & Algorithms

some useful lessons and insights for Kno.e.sis researchers on

Programming & Algorithms

Krishnaprasad Thirunarayan, Kno.e.sis

Page 2: Some useful lessons and insights on Programming Languages & Algorithms

• “Most of the fundamental ideas of science are essentially simple, and may, as a rule, be expressed in language comprehensible to everyone.”

― Albert Einstein– Elevator Pitch of Sorts.– If you do not even have one example, what use is your

general theory?

• “Nearly everything is really interesting if you go into it deeply enough.” ― Richard P. Feynman

• “The utility of a notion testifies not to its clarity but rather to the philosophical importance of clarifying it.” ― Nelson Goodman (Fact, Fiction and Forecast, 1955)

Page 3: Some useful lessons and insights on Programming Languages & Algorithms

Simple made Easy. – Rich Hickey (Designer of Clojure)

My view: Complexity results from promiscuous interleaving. Semantics can help clarify and sort each thread out.

Page 4: Some useful lessons and insights on Programming Languages & Algorithms

Variety of Bipartite Matching Problems

• n-Producers and n-Consumers, and nxn (transportation) cost matrix

=> Hungarian Algorithm• Different quantites of item• Different types of item• Unequal number of producers and consumers• Ambiguity in decoding messages and thus making

mistakes: probabilistic model based on message history

• Abstracting producer/consumer groups at different levels of spatial abstraction

Page 5: Some useful lessons and insights on Programming Languages & Algorithms

• Simplicity is the result of profound thought.– E.g., Vinh’s singleton property approach to refer to

triples is simple. Furthermore, it is easy to describe and use.

• For understanding Related Work: Develop a unifying framework to compare and contrast different works and potentially identify/fill gaps.

Page 7: Some useful lessons and insights on Programming Languages & Algorithms

• Dijkstra’s Shortest Path Algorithm (edge positive weights) => Greedy Algorithm

• Vs• Bellman Ford’s Shortest Path Algorithm (any

edge weights) => Dynamic Programming Algorithm

• Bellman-Ford used in preference to Dijsktra even for positive edge weights due to former’s locality property that makes it suitable for distributed implementation.– Cloud Implementations

Page 8: Some useful lessons and insights on Programming Languages & Algorithms

Algorithm in Pseudo-code form vs using PL-like data definitions/constructs

• Pseudo-code: Proof of correctness

• Data Structures: Analysis of space-time complexity