diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 9621ad8..f50f390 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -11,7 +11,7 @@ We want to help bring academic research closer to practitioners and we strive to ### Respect content licenses -* **We will only merge pull requests that contain research papers that allow digital distribution.** Papers whose copyright prohibits redistribution will not be accepted; for example [license 1](http://www.acm.org/publications/policies/copyright-policy-v1/) from the [ACM digital library](http://www.acm.org/publications/policies/copyright_policy). +* **We will only merge pull requests that contain research papers that allow digital distribution.** Papers whose copyright prohibits redistribution will not be accepted; for example [license 8](http://www.acm.org/publications/policies/copyright-policy-v8/) from the [ACM digital library](http://www.acm.org/publications/policies/copyright_policy). * We encourage papers that do not allow digital distribution to be added to a README, with a link to the source URL, in the appropriate subject's folder. For example, [the distributed systems README](https://github.com/papers-we-love/papers-we-love/blob/master/distributed_systems/README.md). ### Follow our commit, naming, and directory-organization conventions diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 3fd5cab..5450f85 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -8,7 +8,7 @@ Papers We Love events are for anyone interested in Computer Science/Computer Eng **Be an adult, don't be a jerk.** -We value the participation of each member of the community and want all attendees to have an enjoyable and fulfilling experience. Accordingly, all attendees are expected to show respect and courtesy to other attendees throughout the meet-ups and at all Papers We Love events and interactions on the GitHub repository, IRC or [Slack](https://paperswelove.slack.com/messages/general/) channels. +We value the participation of each member of the community and want all attendees to have an enjoyable and fulfilling experience. Accordingly, all attendees are expected to show respect and courtesy to other attendees throughout the meet-ups and at all Papers We Love events and interactions on the GitHub repository, IRC, [gitter](https://gitter.im/papers-we-love/), or [Slack](https://paperswelove.slack.com/messages/general/) channels. Need help? ---------- diff --git a/README.md b/README.md index 68a2dd7..f50c982 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ ## ![Papers We Love](http://paperswelove.org/images/logo-top.svg) + + [![Gitter](https://badges.gitter.im/papers-we-love/community.svg)](https://gitter.im/papers-we-love/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) **Papers We Love** (*PWL*) is a community built around reading, discussing and learning more about academic computer science papers. This repository serves as a directory of some of the best papers the community can find, bringing together documents scattered across the web. You can also visit the [Papers We Love site](http://paperswelove.org/) for more info. @@ -15,6 +17,7 @@ Here are our official chapters. Let us know if you are interested in [starting o * [Atlanta](https://www.meetup.com/Papers-We-Love-Atlanta) * [Bangalore](http://www.meetup.com/Papers-we-love-Bangalore/) * [Barcelona](https://www.meetup.com/papers-we-love-bcn/) +* [Beijing](https://www.meetup.com/Beijing-Technology-Meetup-Group/) * [Belfast](http://www.meetup.com/Papers-We-Love-Belfast/) * [Berlin](http://www.meetup.com/Papers-We-Love-Berlin/) * [Bhubaneswar](https://www.facebook.com/groups/pwlbbsr/) @@ -22,6 +25,7 @@ Here are our official chapters. Let us know if you are interested in [starting o * [Brasilia](http://www.meetup.com/papers-we-love-bsb) * [Boulder](http://www.meetup.com/Papers-We-Love-Boulder/) * [Bucharest](http://www.meetup.com/papers-we-love-bucharest/) +* [Buenos Aires](https://paperswelove.org/buenos-aires/) * [Cairo](http://www.meetup.com/Papers-We-Love-Cairo/) * [Chattanooga](http://www.meetup.com/Papers-We-Love-Chattanooga/) * [Chicago](http://www.meetup.com/papers-we-love-chicago/) @@ -41,6 +45,7 @@ Here are our official chapters. Let us know if you are interested in [starting o * [Madrid](http://www.meetup.com/Papers-We-Love-Madrid/) * [Medellín](https://www.meetup.com/paperswelovemde/) * [Montreal](http://www.meetup.com/Papers-We-Love-Montreal/) +* [Mumbai](https://www.meetup.com/Papers-We-Love-Mumbai/) * [Munich](http://www.meetup.com/Papers-We-Love-Munich/) * [New York City](http://www.meetup.com/papers-we-love/) * [Paris](http://www.meetup.com/Papers-We-Love-Paris/) @@ -94,7 +99,7 @@ We're looking for pull requests related to papers we should add, better organiza * [Readings in Distributed Systems](http://christophermeiklejohn.com/distributed/systems/2013/07/12/readings-in-distributed-systems.html) * [Gradual Typing Bibliography](http://samth.github.io/gradual-typing-bib/) * [Security Data Science Papers](http://www.covert.io/the-definitive-security-datascience-and-machinelearning-guide/) -* [Research Papers from Robert Harper, Carnegie Mellon University](http://www.cs.cmu.edu/~rwh/papers.html) +* [Research Papers from Robert Harper, Carnegie Mellon University](https://www.cs.cmu.edu/~rwh/papers/index.html) * [Lobste.rs tagged as PDF](https://lobste.rs/t/pdf) * [The Morning Paper](http://blog.acolyer.org/) diff --git a/artificial_intelligence/README.md b/artificial_intelligence/README.md index 0ffe084..5924d89 100644 --- a/artificial_intelligence/README.md +++ b/artificial_intelligence/README.md @@ -10,3 +10,6 @@ * [:open_file_folder: Summary of Papers](judea_pearl/) * [Mastering the Game of Go with Deep Neural Networks and Tree Search](http://airesearch.com/wp-content/uploads/2016/01/deepmind-mastering-go.pdf) by Silver et al. + +* [A Universal Music Translation Network (2018)](https://arxiv.org/pdf/1805.07848.pdf) by Noam Mor, Lior Wolf, Adam Polyak & Yaniv Taigman + > This paper proposes a method for translating music across musical instruments, genres, and styles. It is based on a multi-domain wavenet autoencoder, with a shared encoder and a disentangled latent space that is trained end-to-end on waveforms. Employing a diverse training dataset and large net capacity, the domain-independent encoder enables translation even from musical domains that were not seen during training. The method is unsupervised and does not rely on supervision in the form of matched samples between domains or musical transcriptions. This method is evaluated on NSynth, as well as on a dataset collected from professional musicians, and achieve convincing translations, even when translating from whistling, potentially enabling the creation of instrumental music by untrained humans. \ No newline at end of file diff --git a/brain-computer-interface/README.md b/brain-computer-interface/README.md new file mode 100644 index 0000000..926ddff --- /dev/null +++ b/brain-computer-interface/README.md @@ -0,0 +1,6 @@ +# Brain–computer Interface + +- [Brain-computer interfaces for communication and control](http://www.cs.cmu.edu/~tanja/BCI/BCIreview.pdf) +- [Breaking the silence: Brain-computer interfaces (BCI) for communication and motor control](https://onlinelibrary.wiley.com/doi/full/10.1111/j.1469-8986.2006.00456.x) +- [Learning to Control a Brain–Machine Interface for Reaching and Grasping by Primates](https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.0000042) +- [BrainNet: A Multi-Person Brain-to-Brain Interface for Direct Collaboration Between Brains](https://arxiv.org/pdf/1809.08632.pdf) diff --git a/clustering_algorithms/README.md b/clustering_algorithms/README.md deleted file mode 100644 index b052414..0000000 --- a/clustering_algorithms/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## Clustering Algorithms - -[On the resemblance and containment of documents](https://www.cs.princeton.edu/courses/archive/spr05/cos598E/bib/broder97resemblance.pdf) (Andrei Z. Broder) diff --git a/combinatory_logic/README.md b/combinatory_logic/README.md index ccd23ac..b83f38c 100644 --- a/combinatory_logic/README.md +++ b/combinatory_logic/README.md @@ -1,12 +1,14 @@ # Combinatory Logic * [Flattening Combinators: Surviving Without Parentheses] - by Chris Okasaki (2003) + by Chris Okasaki (2003) ([DOI]) * [Combinatorial Analysis and Computers] by Marshall Hall Jr. and Donald E. Knuth (1965) [Flattening Combinators: Surviving Without Parentheses]: - http://www.westpoint.edu/eecs/SiteAssets/SitePages/Faculty%20Publication%20Documents/Okasaki/jfp03flat.pdf + https://web.archive.org/web/20170828181221/http://www.westpoint.edu:80/eecs/SiteAssets/SitePages/Faculty%20Publication%20Documents/Okasaki/jfp03flat.pdf +[DOI]: + https://doi.org/10.1017/S0956796802004483 [Combinatorial Analysis and Computers]: http://poncelet.math.nthu.edu.tw/disk5/js/computer/hall-knuth.pdf diff --git a/computer_graphics/README.md b/computer_graphics/README.md index 5413471..4c256e7 100644 --- a/computer_graphics/README.md +++ b/computer_graphics/README.md @@ -28,7 +28,7 @@ This is a really great paper that is both complex and straightforward. This pape * [Light Propagation Volumes in CryEngine 3](http://www.crytek.com/download/Light_Propagation_Volumes.pdf) ### Bump mapping -* [Interactive Horizon Mapping: Shadows for bump-mapped surfaces](http://research.microsoft.com/en-us/um/people/cohen/bs.pdf) +* [Interactive Horizon Mapping: Shadows for bump-mapped surfaces](https://www.ppsloan.org/publications/bs.pdf) ### Interior mapping * [Interior Mapping: A new technique for rendering realistic buildings](http://www.proun-game.com/Oogst3D/CODING/InteriorMapping/InteriorMapping.pdf) @@ -54,3 +54,8 @@ This is a really great paper that is both complex and straightforward. This pape - A seminal paper that lead to many interesting applications in graphics as well as more broadly in design; see also the bibliography at [shapegrammar.org](http://shapegrammar.org/). + +### Simulating Ocean Water + +* [Simulating Ocean Water](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.161.9102&rep=rep1&type=pdf) + - Seminal paper on water surface simulation and rendering. diff --git a/computer_vision/README.md b/computer_vision/README.md index 6d30165..f03d0d7 100644 --- a/computer_vision/README.md +++ b/computer_vision/README.md @@ -6,3 +6,7 @@ * [Panorama Weaving: Fast and Flexible Seam Processing](http://www.sci.utah.edu/~bsumma/projects/weaving/) + +* [Object Identification for Computer Vision Using Image Segmentation](https://ieeexplore.ieee.org/document/5529412) + +* [Computer Vision Based Detection and Localization of Potholes in Asphalt Pavement Images](https://ieeexplore.ieee.org/document/7726722) diff --git a/cryptography/README.md b/cryptography/README.md index 2a47d94..3193fcd 100644 --- a/cryptography/README.md +++ b/cryptography/README.md @@ -10,7 +10,7 @@ * [Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2 (2017)](https://papers.mathyvanhoef.com/ccs2017.pdf) (Mathy Vanhoef, Frank Piessens) ## Related Works -### [A Mathematical Theory of Cryptography (1945)](http://www.cs.bell-labs.com/who/dmr/pdfs/shannoncryptshrt.pdf) - Shannon +### [A Mathematical Theory of Cryptography (1945)](https://www.iacr.org/museum/shannon/shannon45.pdf) - Shannon The original classified memo for Bell Labs that was republished in 1949 as ["Communication Theory of Secrecy Systems"](communication-theory-of-secrecy-systems.pdf). ### :scroll: [A Mathematical Theory of Communication (1948)](../information_theory/a-mathematical-theory-of-communication-1948.pdf) - Shannon diff --git a/data_compression/README.md b/data_compression/README.md index a083cf9..4f26f4a 100644 --- a/data_compression/README.md +++ b/data_compression/README.md @@ -1,4 +1,5 @@ # Data Compression * :scroll: [Data Compression](data-compression.pdf) - > This paper surveys a variety of data compression methods spanning almost 40 years of research, from the work of Shannon, Fano and Huffman in the 40's, to a technique developed in 1986. \ No newline at end of file + + > This paper surveys a variety of data compression methods spanning almost 40 years of research, from the work of Shannon, Fano and Huffman in the 40's, to a technique developed in 1986. diff --git a/data_structures/README.md b/data_structures/README.md index 0ba5953..35fffb0 100644 --- a/data_structures/README.md +++ b/data_structures/README.md @@ -1,9 +1,10 @@ # Data Structures * [Dynamic Hash Tables](http://www.csd.uoc.gr/~hy460/pdf/Dynamic%20Hash%20Tables.pdf) -* [Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms](http://www.research.ibm.com/people/m/michael/podc-1996.pdf) +* [Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms](https://www.cs.rochester.edu/u/scott/papers/1996_PODC_queues.pdf) * [RRB-Trees: Efficient Immutable Vectors](http://infoscience.epfl.ch/record/169879/files/RMTrees.pdf) * [Cuckoo Hashing](http://www.it-c.dk/people/pagh/papers/cuckoo-jour.pdf) +* [Fenwick Tree](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.14.8917&rep=rep1&type=pdf) * [Hopscotch Hashing](http://mcg.cs.tau.ac.il/papers/disc2008-hopscotch.pdf) ## Hosted Papers diff --git a/design/README.md b/design/README.md index 63159b1..57c76de 100644 --- a/design/README.md +++ b/design/README.md @@ -1,6 +1,7 @@ # Design * [No Silver Bullet — Essence and Accidents of Software Engineering](http://faculty.salisbury.edu/~xswang/Research/Papers/SERelated/no-silver-bullet.pdf) * [Traits: A Mechanism for Fine-Grained Reuse](http://scg.unibe.ch/archive/papers/Duca06bTOPLASTraits.pdf) +* [THING-MODEL-VIEW-EDITOR an Example from a planningsystem](http://heim.ifi.uio.no/~trygver/1979/mvc-1/1979-05-MVC.pdf) * :scroll: [Out of the Tar Pit](out-of-the-tar-pit.pdf) > We identify common causes of complexity and discuss general approaches which can be taken to eliminate them where they are accidental in nature. diff --git a/distributed_systems/README.md b/distributed_systems/README.md index d874e22..6ffb0b4 100644 --- a/distributed_systems/README.md +++ b/distributed_systems/README.md @@ -9,7 +9,7 @@ ## External Papers -* [:scroll:](a-note-on-distributed-computing.pdf) [A Note on Distributed Computing](http://www.eecs.harvard.edu/~waldo/Readings/waldo-94.pdf) +* [:scroll:](a-note-on-distributed-computing.pdf) [A Note on Distributed Computing](http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=5A960A7B16A7BB42A99D7B6EFC30FB25?doi=10.1.1.41.7628&rep=rep1&type=pdf) * [A simple totally ordered broadcast protocol](http://diyhpl.us/~bryan/papers2/distributed/distributed-systems/zab.totally-ordered-broadcast-protocol.2008.pdf) @@ -63,7 +63,7 @@ * [Unicorn: A System for Searching the Social Graph](http://db.disi.unitn.eu/pages/VLDBProgram/pdf/industry/p871-curtiss.pdf) -* [Unikernels: Library Operating Systems for the Cloud](http://anil.recoil.org/papers/2013-asplos-mirage.pdf) +* [Unikernels: Library Operating Systems for the Cloud](http://unikernel.org/files/2013-asplos-mirage.pdf) * [Untraceable Electronic Mail, Return Addresses, and Digital Pseudonyms](http://www.cs.utexas.edu/~shmat/courses/cs395t_fall04/chaum81.pdf) diff --git a/economics/README.md b/economics/README.md index 4e2a403..835fd88 100644 --- a/economics/README.md +++ b/economics/README.md @@ -6,6 +6,8 @@ * [Optimal Bidding in Online Auctions (2001)](http://www.mit.edu/~dbertsim/papers/Revenue%20Management/Optimal%20Bidding%20in%20Online%20Auctions.pdf) by Dimitris Bertsimas, Jerey Hawkinsy, Georgia Perakis +* [Online Ad Auctions (2009)](online-ad-auctions.pdf) by Hal Varian + ## Open Source * [The Simple economics of Open Source (2000)](http://www.people.hbs.edu/jlerner/simple.pdf) by Josh Lerner and Jean Tirole diff --git a/economics/online-ad-auctions.pdf b/economics/online-ad-auctions.pdf new file mode 100644 index 0000000..81e8921 Binary files /dev/null and b/economics/online-ad-auctions.pdf differ diff --git a/faults_and_verification/README.md b/faults_and_verification/README.md new file mode 100644 index 0000000..a2cc2f7 --- /dev/null +++ b/faults_and_verification/README.md @@ -0,0 +1,24 @@ +# Program Faults and Verification + +[Fault detection](https://en.wikipedia.org/wiki/Fault_detection_and_isolation), and [program validation](https://en.wikipedia.org/wiki/Software_verification_and_validation), and [formal validation](https://en.wikipedia.org/wiki/Formal_verification) are highly interrelated topics. Each deal with proving or disproving the correctness of systems as intended, and the classification of incorrect behavior. + + +## Program Verification + +* [Coq: The world’s best macro assembler?](https://research.microsoft.com/en-us/um/people/nick/coqasm.pdf) +* :scroll: [Epitaxis: a system for syntactic and semantic software queries](epitaxis-a-system-for-syntactic-and-semantic-software-queries.pdf) + +## Fault Protection + +* [GN&C Fault Protection Fundamentals](https://trs.jpl.nasa.gov/bitstream/handle/2014/41696/08-0125.pdf) +> As software becomes more and more integrated in our daily lives, we +> need, more than ever, for the software we write to work reliably in a +> wide range of conditions--even, and especially, in unexpected +> conditions. This paper, written by Robert Rasmussen from the Jet +> Propulsion Laboratory in 2008, documents and explains some fundamental +> principles about designing fault tolerant systems as learned through +> the hard-won experience of designing Guidance, Navigation, and Control +> (GN&C) systems for spacecraft. This paper is rich in principles, +> examples, and advice, and has a lot to offer to our industry +> generally--even for those of us who don't actively work on software for +> spaceships! diff --git a/program_verification/epitaxis-a-system-for-syntactic-and-semantic-software-queries.pdf b/faults_and_verification/epitaxis-a-system-for-syntactic-and-semantic-software-queries.pdf similarity index 100% rename from program_verification/epitaxis-a-system-for-syntactic-and-semantic-software-queries.pdf rename to faults_and_verification/epitaxis-a-system-for-syntactic-and-semantic-software-queries.pdf diff --git a/gamification/README.md b/gamification/README.md index 2a6d384..e44b21a 100644 --- a/gamification/README.md +++ b/gamification/README.md @@ -4,11 +4,11 @@ * [Defining Gamification - A Service Marketing Perspective](http://www.rolandhubscher.org/courses/hf765/readings/p17-huotari.pdf) -* [Design Requirements for Technologies that Encourage Physical Activity](http://www.katherineeveritt.com/papers/p457-consolvo.pdf) +* [Design Requirements for Technologies that Encourage Physical Activity](https://www.cs.helsinki.fi/u/thusu/opinnot/uschool/T-121.5500/p457-consolvo.pdf) * [Exploring the Potential of Gamification Among Frail Elderly Persons](http://gamification-research.org/wp-content/uploads/2011/04/12-Gerling.pdf) -* [From Game Design Elements to Gamefulness: Defining “Gamification”](http://dl.dropboxusercontent.com/u/220532/MindTrek_Gamification_PrinterReady_110806_SDE_accepted_LEN_changes_1.pdf) +* [From Game Design Elements to Gamefulness: Defining “Gamification”](https://uwaterloo.ca/scholar/sites/ca.scholar/files/lnacke/files/From_game_design_elements_to_gamefulness-_defining_gamification.pdf) * [MoviPill: Improving Medication Compliance for Elders - Using a Mobile Persuasive Social Game](http://www.ic.unicamp.br/~oliveira/doc/Ubicomp2010_MoviPill.pdf) @@ -18,4 +18,4 @@ * :scroll: [Gamification in Education: What, How, Why Bother?](gamification-in-education-what-how-why-bother.pdf) -* :scroll: [Why Students Engage in “Gaming the System” Behavior in Interactive Learning Environments](why-students-engage-in-gaming-the-system-behavior-in-interactive-learning-environments.pdf) \ No newline at end of file +* :scroll: [Why Students Engage in “Gaming the System” Behavior in Interactive Learning Environments](why-students-engage-in-gaming-the-system-behavior-in-interactive-learning-environments.pdf) diff --git a/gossip/README.md b/gossip/README.md index 5923e31..5578b3a 100644 --- a/gossip/README.md +++ b/gossip/README.md @@ -7,7 +7,7 @@ If you only read one of these papers, start with the classic Demers, et al paper Briefly, a peer sampling service is a system that maintains a restricted set (partial view) of the all machines participating in a gossip system. * [The Peer Sampling Service: Experimental Evaluation of Unstructured Gossip-Based Implementations](http://infoscience.epfl.ch/record/83409/files/neg--1184036295all.pdf) * [HyParView: a membership protocol for reliable gossip-based broadcast](http://asc.di.fct.unl.pt/~jleitao/pdf/dsn07-leitao.pdf) -* [SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol](http://www.cs.cornell.edu/~asdas/research/dsn02-swim.pdf) +* [SWIM: Scalable Weakly-consistent Infection-style Process Group Membership Protocol](http://www.cs.cornell.edu/info/projects/spinglass/public_pdfs/swim.pdf) # Epidemic broadcast * [Large-Scale Newscast Computing on the Internet ](http://www.soc.napier.ac.uk/~benp/dream/dreampaper17.pdf) diff --git a/information_retrieval/README.md b/information_retrieval/README.md index bfacac0..c73926f 100644 --- a/information_retrieval/README.md +++ b/information_retrieval/README.md @@ -47,4 +47,14 @@ The included documents are * [:scroll:](authoritative-sources-in-a-hyperlinked-environment.pdf) [Authoritative Sources in a Hyperlinked Environment](https://www.cs.cornell.edu/home/kleinber/auth.pdf) - Jon M. Kleinberg -This paper introduces the **HITS algorithm**, a link analysis algorithm that rates webpages. Unlike the more famous page rank algorithm, the hits algorithm makes a distinction between webpage behavior classifies them as hubs and authorities. A page is authoratitative (in the sense the page has a large number of incoming links) or acts as a hub (a directory of sort, which can be measured by the number of outgoing link). The hits algorithm computes two scores for a page (authority and hub score) where the algorithm iteratively computes the hub score as sum of authority scores of outgoing links and authority scores as sum of hub scores of incoming links until a convergence is attained. These scores can then be used to rank documents. While this algorithm is famous in academia, its not very widely used in the industry (a variant of this algorithm was used by a company called Teoma which was acquired by AskJeeves) + This paper introduces the **HITS algorithm**, a link analysis algorithm that rates webpages. + Unlike the more famous page rank algorithm, the hits algorithm makes a distinction between + webpage behavior classifies them as hubs and authorities. A page is authoratitative + (in the sense the page has a large number of incoming links) or acts as a hub + (a directory of sort, which can be measured by the number of outgoing link). + The hits algorithm computes two scores for a page (authority and hub score) where + the algorithm iteratively computes the hub score as sum of authority scores of + outgoing links and authority scores as sum of hub scores of incoming links until + a convergence is attained. These scores can then be used to rank documents. + While this algorithm is famous in academia, its not very widely used in the + industry (a variant of this algorithm was used by a company called Teoma which was acquired by AskJeeves) diff --git a/paradigms/functional_programming/README.md b/languages-paradigms/functional_programming/README.md similarity index 94% rename from paradigms/functional_programming/README.md rename to languages-paradigms/functional_programming/README.md index 50440cb..fd378ec 100644 --- a/paradigms/functional_programming/README.md +++ b/languages-paradigms/functional_programming/README.md @@ -1,6 +1,6 @@ # Functional Programming -* [:scroll:](organizing-programs-without-classes.pdf) [Organizing Programs Without Classes](http://cs.au.dk/~hosc/local/LaSC-4-3-pp223-242.pdf) +* :scroll: [Organizing Programs Without Classes](organizing-programs-without-classes.pdf) * [:scroll:](functional-programming-with-bananas-lenses-envelops-and-barbed-wire.pdf) [Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire](http://eprints.eemcs.utwente.nl/7281/01/db-utwente-40501F46.pdf) From Patrick Thomson's [An introduction to Recursion Schemes](http://patrickthomson.ghost.io/an-introduction-to-recursion-schemes/): diff --git a/paradigms/functional_programming/concatenative-programming-an-overlooked-paradigm.pdf b/languages-paradigms/functional_programming/concatenative-programming-an-overlooked-paradigm.pdf similarity index 100% rename from paradigms/functional_programming/concatenative-programming-an-overlooked-paradigm.pdf rename to languages-paradigms/functional_programming/concatenative-programming-an-overlooked-paradigm.pdf diff --git a/paradigms/functional_programming/equal-rights-for-functional-objects.pdf b/languages-paradigms/functional_programming/equal-rights-for-functional-objects.pdf similarity index 100% rename from paradigms/functional_programming/equal-rights-for-functional-objects.pdf rename to languages-paradigms/functional_programming/equal-rights-for-functional-objects.pdf diff --git a/paradigms/functional_programming/functional-programming-with-bananas-lenses-envelops-and-barbed-wire.pdf b/languages-paradigms/functional_programming/functional-programming-with-bananas-lenses-envelops-and-barbed-wire.pdf similarity index 100% rename from paradigms/functional_programming/functional-programming-with-bananas-lenses-envelops-and-barbed-wire.pdf rename to languages-paradigms/functional_programming/functional-programming-with-bananas-lenses-envelops-and-barbed-wire.pdf diff --git a/paradigms/functional_programming/optimal-purely-functional-priority-queues.pdf b/languages-paradigms/functional_programming/optimal-purely-functional-priority-queues.pdf similarity index 100% rename from paradigms/functional_programming/optimal-purely-functional-priority-queues.pdf rename to languages-paradigms/functional_programming/optimal-purely-functional-priority-queues.pdf diff --git a/paradigms/functional_programming/organizing-programs-without-classes.pdf b/languages-paradigms/functional_programming/organizing-programs-without-classes.pdf similarity index 100% rename from paradigms/functional_programming/organizing-programs-without-classes.pdf rename to languages-paradigms/functional_programming/organizing-programs-without-classes.pdf diff --git a/paradigms/functional_programming/purely-functional-data-structures.pdf b/languages-paradigms/functional_programming/purely-functional-data-structures.pdf similarity index 100% rename from paradigms/functional_programming/purely-functional-data-structures.pdf rename to languages-paradigms/functional_programming/purely-functional-data-structures.pdf diff --git a/paradigms/functional_programming/why-functional-programming-matters.pdf b/languages-paradigms/functional_programming/why-functional-programming-matters.pdf similarity index 100% rename from paradigms/functional_programming/why-functional-programming-matters.pdf rename to languages-paradigms/functional_programming/why-functional-programming-matters.pdf diff --git a/paradigms/functional_reactive_programming/README.md b/languages-paradigms/functional_reactive_programming/README.md similarity index 100% rename from paradigms/functional_reactive_programming/README.md rename to languages-paradigms/functional_reactive_programming/README.md diff --git a/paradigms/functional_reactive_programming/a-survey-of-functional-reactive-programming.pdf b/languages-paradigms/functional_reactive_programming/a-survey-of-functional-reactive-programming.pdf similarity index 100% rename from paradigms/functional_reactive_programming/a-survey-of-functional-reactive-programming.pdf rename to languages-paradigms/functional_reactive_programming/a-survey-of-functional-reactive-programming.pdf diff --git a/paradigms/functional_reactive_programming/deprecating-the observer-pattern.pdf b/languages-paradigms/functional_reactive_programming/deprecating-the observer-pattern.pdf similarity index 100% rename from paradigms/functional_reactive_programming/deprecating-the observer-pattern.pdf rename to languages-paradigms/functional_reactive_programming/deprecating-the observer-pattern.pdf diff --git a/paradigms/functional_reactive_programming/frp-in-plt-scheme.pdf b/languages-paradigms/functional_reactive_programming/frp-in-plt-scheme.pdf similarity index 100% rename from paradigms/functional_reactive_programming/frp-in-plt-scheme.pdf rename to languages-paradigms/functional_reactive_programming/frp-in-plt-scheme.pdf diff --git a/paradigms/functional_reactive_programming/functional-reactive-animation.pdf b/languages-paradigms/functional_reactive_programming/functional-reactive-animation.pdf similarity index 100% rename from paradigms/functional_reactive_programming/functional-reactive-animation.pdf rename to languages-paradigms/functional_reactive_programming/functional-reactive-animation.pdf diff --git a/paradigms/functional_reactive_programming/ray-integrating-rx-and-async-for-direct-style-reactive-streams.pdf b/languages-paradigms/functional_reactive_programming/ray-integrating-rx-and-async-for-direct-style-reactive-streams.pdf similarity index 100% rename from paradigms/functional_reactive_programming/ray-integrating-rx-and-async-for-direct-style-reactive-streams.pdf rename to languages-paradigms/functional_reactive_programming/ray-integrating-rx-and-async-for-direct-style-reactive-streams.pdf diff --git a/paradigms/new_paradigms/README.md b/languages-paradigms/new_paradigms/README.md similarity index 100% rename from paradigms/new_paradigms/README.md rename to languages-paradigms/new_paradigms/README.md diff --git a/paradigms/new_paradigms/cognitive-computing-programming-paradigm-corelet-language.pdf b/languages-paradigms/new_paradigms/cognitive-computing-programming-paradigm-corelet-language.pdf similarity index 100% rename from paradigms/new_paradigms/cognitive-computing-programming-paradigm-corelet-language.pdf rename to languages-paradigms/new_paradigms/cognitive-computing-programming-paradigm-corelet-language.pdf diff --git a/paradigms/object_oriented_programming/README.md b/languages-paradigms/object_oriented_programming/README.md similarity index 100% rename from paradigms/object_oriented_programming/README.md rename to languages-paradigms/object_oriented_programming/README.md diff --git a/plt/README.md b/languages-theory/README.md similarity index 50% rename from plt/README.md rename to languages-theory/README.md index b9ff033..b0488e4 100644 --- a/plt/README.md +++ b/languages-theory/README.md @@ -2,26 +2,27 @@ * [Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs](http://www.thocp.net/biographies/papers/backus_turingaward_lecture.pdf) -* [:scroll:](https://github.com/papers-we-love/papers-we-love/blob/master/plt/programming-with-algebraic-effects-and-handlers.pdf) [Programming and Reasoning with Algebraic Effects and Dependent Types](http://eb.host.cs.st-andrews.ac.uk/drafts/effects.pdf) +* [:scroll:](https://github.com/papers-we-love/papers-we-love/blob/master/languages-theory/programming-with-algebraic-effects-and-handlers.pdf) [Programming and Reasoning with Algebraic Effects and Dependent Types](http://eb.host.cs.st-andrews.ac.uk/drafts/effects.pdf) * [Programming Languages: History and Future](http://www.csee.umbc.edu/courses/undergraduate/CMSC331/resources/papers/sammet1972.pdf) * [Soft Typing](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.24.9333&rep=rep1&type=pdf) -* [:scroll:](https://github.com/papers-we-love/papers-we-love/blob/master/plt/composable-and-compilable-macros-you-want-it-when.pdf) [Composable and Compilable Macros: You Want it When?](https://www.cs.utah.edu/plt/publications/macromod.pdf) +* [:scroll:](https://github.com/papers-we-love/papers-we-love/blob/master/languages-theory/composable-and-compilable-macros-you-want-it-when.pdf) [Composable and Compilable Macros: You Want it When?](https://www.cs.utah.edu/plt/publications/macromod.pdf) * :scroll: [Propositions as Types](http://homepages.inf.ed.ac.uk/wadler/papers/propositions-as-types/propositions-as-types.pdf) -* :scroll: [Fundamental Concepts in Programming Languages](https://github.com/papers-we-love/papers-we-love/blob/master/plt/fundamental-concepts-in-programming-languages.pdf) +* :scroll: [Fundamental Concepts in Programming Languages](https://github.com/papers-we-love/papers-we-love/blob/master/languages-theory/fundamental-concepts-in-programming-languages.pdf) -* :scroll: [On Understanding Types, Data Abstraction, and Polymorphism](https://github.com/papers-we-love/papers-we-love/blob/master/plt/on-understanding-types-data-abstraction-polymorphism.pdf) +* :scroll: [On Understanding Types, +Data Abstraction, and Polymorphism](https://github.com/papers-we-love/papers-we-love/blob/master/languages-theory/on-understanding-types-data-abstraction-polymorphism.pdf) -* :scroll: [Predicate Dispatching](https://github.com/papers-we-love/papers-we-love/blob/master/plt/predicate-dispatching.pdf) +* :scroll: [Predicate Dispatching](https://github.com/papers-we-love/papers-we-love/blob/master/languages-theory/predicate-dispatching.pdf) -* :scroll: [Principal type-schemes for functional programs](https://github.com/papers-we-love/papers-we-love/blob/master/plt/principal-type-schemes-for-functional-programs.pdf) +* :scroll: [Principal type-schemes for functional programs](https://github.com/papers-we-love/papers-we-love/blob/master/languages-theory/principal-type-schemes-for-functional-programs.pdf) -* :scroll: [Programming Languages: Application and Interpretation](https://github.com/papers-we-love/papers-we-love/blob/master/plt/programming-languages-application-and-interpretation.pdf) +* :scroll: [Programming Languages: Application and Interpretation](https://github.com/papers-we-love/papers-we-love/blob/master/languages-theory/programming-languages-application-and-interpretation.pdf) -* :scroll: [The Derivative of a Regular Type is its Type of One-Hole Contexts](https://github.com/papers-we-love/papers-we-love/blob/master/plt/the-derivative-of-a-regular-type-one-hole-contexts.pdf) +* :scroll: [The Derivative of a Regular Type is its Type of One-Hole Contexts](https://github.com/papers-we-love/papers-we-love/blob/master/languages-theory/the-derivative-of-a-regular-type-one-hole-contexts.pdf) -* :scroll: [Theory in Programming Practice](https://github.com/papers-we-love/papers-we-love/blob/master/plt/theory-in-programming-practice.pdf) \ No newline at end of file +* :scroll: [Theory in Programming Practice](https://github.com/papers-we-love/papers-we-love/blob/master/languages-theory/theory-in-programming-practice.pdf) diff --git a/plt/composable-and-compilable-macros-you-want-it-when.pdf b/languages-theory/composable-and-compilable-macros-you-want-it-when.pdf similarity index 100% rename from plt/composable-and-compilable-macros-you-want-it-when.pdf rename to languages-theory/composable-and-compilable-macros-you-want-it-when.pdf diff --git a/plt/fundamental-concepts-in-programming-languages.pdf b/languages-theory/fundamental-concepts-in-programming-languages.pdf similarity index 100% rename from plt/fundamental-concepts-in-programming-languages.pdf rename to languages-theory/fundamental-concepts-in-programming-languages.pdf diff --git a/plt/on-understanding-types-data-abstraction-polymorphism.pdf b/languages-theory/on-understanding-types-data-abstraction-polymorphism.pdf similarity index 100% rename from plt/on-understanding-types-data-abstraction-polymorphism.pdf rename to languages-theory/on-understanding-types-data-abstraction-polymorphism.pdf diff --git a/plt/predicate-dispatching.pdf b/languages-theory/predicate-dispatching.pdf similarity index 100% rename from plt/predicate-dispatching.pdf rename to languages-theory/predicate-dispatching.pdf diff --git a/plt/principal-type-schemes-for-functional-programs.pdf b/languages-theory/principal-type-schemes-for-functional-programs.pdf similarity index 100% rename from plt/principal-type-schemes-for-functional-programs.pdf rename to languages-theory/principal-type-schemes-for-functional-programs.pdf diff --git a/plt/programming-languages-application-and-interpretation.pdf b/languages-theory/programming-languages-application-and-interpretation.pdf similarity index 100% rename from plt/programming-languages-application-and-interpretation.pdf rename to languages-theory/programming-languages-application-and-interpretation.pdf diff --git a/plt/programming-with-algebraic-effects-and-handlers.pdf b/languages-theory/programming-with-algebraic-effects-and-handlers.pdf similarity index 100% rename from plt/programming-with-algebraic-effects-and-handlers.pdf rename to languages-theory/programming-with-algebraic-effects-and-handlers.pdf diff --git a/plt/propositions-as-types.pdf b/languages-theory/propositions-as-types.pdf similarity index 100% rename from plt/propositions-as-types.pdf rename to languages-theory/propositions-as-types.pdf diff --git a/plt/the-derivative-of-a-regular-type-one-hole-contexts.pdf b/languages-theory/the-derivative-of-a-regular-type-one-hole-contexts.pdf similarity index 100% rename from plt/the-derivative-of-a-regular-type-one-hole-contexts.pdf rename to languages-theory/the-derivative-of-a-regular-type-one-hole-contexts.pdf diff --git a/plt/theory-in-programming-practice.pdf b/languages-theory/theory-in-programming-practice.pdf similarity index 100% rename from plt/theory-in-programming-practice.pdf rename to languages-theory/theory-in-programming-practice.pdf diff --git a/languages/README.md b/languages/README.md new file mode 100644 index 0000000..b07991e --- /dev/null +++ b/languages/README.md @@ -0,0 +1,7 @@ +# Programming Language Theory + +Programming language theory (PLT) is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of programming languages and their individual features. + +## Included Papers + +* :scroll: [On the Expressive Power of Programming Languages](scp91-felleisen.ps.gz) [sciencedirect](https://www.sciencedirect.com/science/article/pii/016764239190036W)(Matthias Felleisen): "The literature on programming languages contains an abundance of informal claims on the relative expressive power of programming languages, but there is no framework for formalizing such statements nor for deriving interesting consequences. As a first step in this direction, we develop a formal notion of expressiveness and investigate its properties. To demonstrate the theory's closeness to published intuitions on expressiveness, we analyze the expressive power of several extensions of functional languages. Based on these results, we believe that our system correctly captures many of the informal ideas on expressiveness, and that it constitutes a good basis for further research in this direction. " (abstract) diff --git a/languages/scp91-felleisen.ps.gz b/languages/scp91-felleisen.ps.gz new file mode 100644 index 0000000..17b7d68 Binary files /dev/null and b/languages/scp91-felleisen.ps.gz differ diff --git a/machine_learning/General-self-similarity--an-overview.pdf b/machine_learning/General-self-similarity--an-overview.pdf new file mode 100644 index 0000000..2c11332 Binary files /dev/null and b/machine_learning/General-self-similarity--an-overview.pdf differ diff --git a/machine_learning/README.md b/machine_learning/README.md index 3a11ffa..c3b94b1 100644 --- a/machine_learning/README.md +++ b/machine_learning/README.md @@ -1,23 +1,59 @@ # Machine Learning + ## External Papers -* [Top 10 algorithms in data mining](http://www.cs.uvm.edu/~icdm/algorithms/10Algorithms-08.pdf) - While it is difficult to identify the top 10, this paper contains 10 very important data mining/machine learning algorithms -* [A Few Useful Things to Know about Machine Learning](http://homes.cs.washington.edu/~pedrod/papers/cacm12.pdf) - Just like the title says, it contains many useful tips and gotchas for machine learning -* [Random Forests](https://www.stat.berkeley.edu/~breiman/randomforest2001.pdf) - The initial paper on random forests -* [Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data](http://repository.upenn.edu/cgi/viewcontent.cgi?article=1162&context=cis_papers) - The paper introducing conditional random fields as a framework for building probabilistic models. -* [Support-Vector Networks](http://rd.springer.com/content/pdf/10.1007%2FBF00994018.pdf) - The initial paper on support-vector networks for classification. +* [Top 10 algorithms in data mining](http://www.cs.uvm.edu/~icdm/algorithms/10Algorithms-08.pdf) + + While it is difficult to identify the top 10, this paper contains 10 very important data mining/machine learning algorithms + +* [A Few Useful Things to Know about Machine Learning](http://homes.cs.washington.edu/~pedrod/papers/cacm12.pdf) + + Just like the title says, it contains many useful tips and gotchas for machine learning +* [Random Forests](https://www.stat.berkeley.edu/~breiman/randomforest2001.pdf) + + The initial paper on random forests +* [Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data](http://repository.upenn.edu/cgi/viewcontent.cgi?article=1162&context=cis_papers) + + The paper introducing conditional random fields as a framework for building probabilistic models. +* [Support-Vector Networks](http://rd.springer.com/content/pdf/10.1007%2FBF00994018.pdf) + + The initial paper on support-vector networks for classification. + * [The Fast Johnson-Lindenstrauss Transforms](https://www.cs.princeton.edu/~chazelle/pubs/FJLT-sicomp09.pdf) The Johnson-Lindenstrauss transform (JLT) prescribes that there exists a matrix of size `k x d`, where `k = O(1/eps^2 log d)` such that with high probability, a matrix A drawn from this distribution preserves pairwise distances up to epsilon (e.g. `(1-eps) * ||x-y|| < ||Ax - Ay|| < (1+eps) ||x-y||`). This paper was the first paper to show that you can actually compute the JLT in less that `O(kd)` operations (e.g. you don't need to do the full matrix multiplication). They used their faster algorithm to construct one of the fastest known approximate nearest neighbor algorithms. *Ailon, Nir, and Bernard Chazelle. "The fast Johnson-Lindenstrauss transform and approximate nearest neighbors." SIAM Journal on Computing 39.1 (2009): 302-322. Available: https://www.cs.princeton.edu/~chazelle/pubs/FJLT-sicomp09.pdf* -* [Applications of Machine Learning to Location Data](http://www.berkkapicioglu.com/wp-content/uploads/2013/11/thesis_final.pdf) - Using machine learning to design and analyze novel algorithms that leverage location data. +* [Applications of Machine Learning to Location Data](http://www.berkkapicioglu.com/wp-content/uploads/2013/11/thesis_final.pdf) -* ["Why Should I Trust You?" Explaining the Predictions of Any Classifier](http://www.kdd.org/kdd2016/papers/files/rfp0573-ribeiroA.pdf) - This paper introduces an explanation technique for any classifier in a interpretable manner. + Using machine learning to design and analyze novel algorithms that leverage location data. + +* ["Why Should I Trust You?" Explaining the Predictions of Any Classifier](http://www.kdd.org/kdd2016/papers/files/rfp0573-ribeiroA.pdf) + + This paper introduces an explanation technique for any classifier in a interpretable manner. + +* [Multiple Narrative Disentanglement: Unraveling *Infinite Jest*](http://dreammachin.es/p1-wallace.pdf) + + Uses an unsupervised approach to natural language processing that classifies narrators in David Foster Wallace's 1,000-page novel. + +* [ImageNet Classification with Deep Convolutional Neural Networks](http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf) + + This paper introduces AlexNet, a neural network architecture which dramatically improved over the state-of-the-art in image classification algorithms and is widely regarded as a breakthrough moment for deep learning. + +* [Interpretable machine learning: definitions, methods, and applications](https://arxiv.org/pdf/1901.04592.pdf) + + This paper introduces the foundations of the rapidly emerging field of interpretable machine learning. + +* [Distilling the Knowledge in a Neural Network](https://arxiv.org/pdf/1503.02531.pdf) + + This seminal paper introduces a method to distill information from an ensemble of neural networks into a single model. + +* [Truncation of Wavelet Matrices: Edge Effects and the Reduction of Topological Control](https://reader.elsevier.com/reader/sd/pii/0024379594000395?token=EB0AA78D59A9648480596F018EFB72E0A02FD5FA70326B24B9D501E1A6869FE72CC4D97FA9ACC8BAB56060D6C908EC83) by Freedman + + In this paper by Michael Hartley Freedman, he applies Robion Kirby “torus trick”, via wavelets, to the problem of compression. -* [Multiple Narrative Disentanglement: Unraveling *Infinite Jest*](http://dreammachin.es/p1-wallace.pdf) - uses an unsupervised approach to natural language processing to classify narrators in David Foster Wallace's 1,000-page novel. ## Hosted Papers @@ -33,3 +69,11 @@ *Bourgain, Jean, and Jelani Nelson. "Toward a unified theory of sparse dimensionality reduction in euclidean space." arXiv preprint arXiv:1311.2542; Accepted in an AMS Journal but unpublished at the moment (2013). Available: http://arxiv.org/abs/1311.2542* + +* :scroll: **[Understanding Deep Convolutional Networks](Understanding-Deep-Convolutional-Networks.pdf)** by Mallat + + Stéphane Mallat proposes a model by which renormalisation can identify self-similar structures in deep networks. [This video of Curt MacMullen discussing renormalization](https://www.youtube.com/watch?v=_qjPFF5Gv1I) can help with more context. + +* :scroll: **[General self-similarity: an overview](General-self-similarity--an-overview.pdf)** by Leinster + + Dr. Leinster's paper provides a concise, straightforward, picture of self-similarity, and its role in renormalization. diff --git a/machine_learning/Understanding-Deep-Convolutional-Networks.pdf b/machine_learning/Understanding-Deep-Convolutional-Networks.pdf new file mode 100644 index 0000000..0f4cbd8 Binary files /dev/null and b/machine_learning/Understanding-Deep-Convolutional-Networks.pdf differ diff --git a/mathematics/README.md b/mathematics/README.md index 515dc69..2702b20 100644 --- a/mathematics/README.md +++ b/mathematics/README.md @@ -1,5 +1,48 @@ ## Mathematics -* [:scroll:](transcendence-of-pi.pdf) [The Transcendence of pi](https://github.com/papers-we-love/papers-we-love/blob/master/mathematics/transcendence-of-pi.pdf) by Steve Mayer +* :scroll: [The Transcendence of Pi](transcendence-of-pi.pdf) by Steve Mayer + +* :scroll: [Tilings](tilings.pdf) by Ardila + + The paper covers a broad swath of the topic on analysis of tiling, and related strategies. + +* :scroll: [From Dominoes to Hexagons](from-dominoes-to-hexagons.pdf) by Thurston + + A paper on the generalization of tilings across different base planes. + +* :scroll: [Graph Isomorphism and Representation Theory](graph-isomorphism-and-representation-theory.pdf) by Daniel Litt + + The *graph isomorphism problem* shows how to construct graphs using a simple building-block ("basis"). The same method applies to finding different building blocks to construct the same things. This technique can be applied to file systems, greplin, trees, virtual DOM, etc. + + A short paper, it also shows how to use `𝔰𝔩₂(ℂ)` as a simple mathematical object that leads into the area of real mathematics—represention theory. + +* [Conway's ZIP proof](https://www.maths.ed.ac.uk/~v1ranick/papers/francisweeks.pdf) by George Francis and Jeffrey Weeks + + This paper presents a classification proof: "How can it be that you know something about _all possible_ `X`, even the `xϵX` you haven’t seen yet?" The well-diagramed discussion requires no calculus, crypto, ML, or dense notation, making it good for most knowledge levels. + +* [Packing of Spheres](http://neilsloane.com/doc/Me109.pdf) by N. Sloane + + Discusses the role of E8 & Leech lattices in optimal codes for mathematically-ideal compression. Ikosahedrons, a tool in this investigation, are also presented. + +* [Some Underlying Geometric Notions](https://pi.math.cornell.edu/~hatcher/AT/AT.pdf) by Hatcher + + High-Level survey which relates disparate topics, e.g. Platonic solids (A-D-E), Milnor’s exceptional fibre, and algebra. + +* [What is a Young Tableaux?](https://www.ams.org/notices/200702/whatis-yong.pdf) by Alexander Yong + + Young Tableau appear in combinatoric problems, representation theory, and the calculus of Grassmannians. Another common topic is sorting, and smarter ways to organise sub-sorts. +### Topology + +* [Topology of Numbers](https://pi.math.cornell.edu/~hatcher/TN/TNbook.pdf) by hatcher + +* [Applied Algebraic Topology and Sensor Networks](https://www.math.upenn.edu/~ghrist/preprints/ATSN.pdf) by Robert Ghrist + +* :scroll: [Intro to Tropical Algebra Geometry](intro-to-tropical-algebraic-geometry.pdf) + + Recently there have been some papers posted about tropical geometry of neural nets. Tropical is also said to be derived from CS. This is a good introduction. + +* [Elements of Algebraic Topology: Sheaves](https://www.math.upenn.edu/~ghrist/EAT/EATchapter9.pdf) by Ghrist + + Seminal writing on topological structures, from one most lauded books 'Elements of Algebraic Topology' diff --git a/mathematics/from-dominoes-to-hexagons.pdf b/mathematics/from-dominoes-to-hexagons.pdf new file mode 100644 index 0000000..93211f1 Binary files /dev/null and b/mathematics/from-dominoes-to-hexagons.pdf differ diff --git a/mathematics/graph-isomorphism-and-representation-theory.pdf b/mathematics/graph-isomorphism-and-representation-theory.pdf new file mode 100644 index 0000000..7595dd8 Binary files /dev/null and b/mathematics/graph-isomorphism-and-representation-theory.pdf differ diff --git a/mathematics/intro-to-tropical-algebraic-geometry.pdf b/mathematics/intro-to-tropical-algebraic-geometry.pdf new file mode 100644 index 0000000..12a347f Binary files /dev/null and b/mathematics/intro-to-tropical-algebraic-geometry.pdf differ diff --git a/mathematics/tilings.pdf b/mathematics/tilings.pdf new file mode 100644 index 0000000..b8a6033 Binary files /dev/null and b/mathematics/tilings.pdf differ diff --git a/memory_management/README.md b/memory_management/README.md index 265638c..c1ef78a 100644 --- a/memory_management/README.md +++ b/memory_management/README.md @@ -1,6 +1,6 @@ ## Memory Management -* [A Unified Theory of Garbage Collection](http://www.cs.virginia.edu/~cs415/reading/bacon-garbage.pdf) +* [A Unified Theory of Garbage Collection](https://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon04Unified.pdf) * [Teaching Garbage Collection without Implementing Compilers or Interpreters](https://cs.brown.edu/~sk/Publications/Papers/Published/cgkmf-teach-gc/paper.pdf) diff --git a/networks/README.md b/networks/README.md index 8a743a3..16aefaf 100644 --- a/networks/README.md +++ b/networks/README.md @@ -2,6 +2,6 @@ * [Bimodal Multicast](http://www.csl.mtu.edu/cs6461/www/Reading/Birman99.pdf) * [End-to-End Arguments in System Design](http://www.deepplum.com/dpr/locus/Papers/EndtoEnd.html) -* [Can SPDY Really Make the Web Faster?](http://www.comp.lancs.ac.uk/~elkhatib//Docs/2014.06_Netw.pdf) +* [Can SPDY Really Make the Web Faster?](http://www.eecs.qmul.ac.uk/~tysong/files/IFIPNetworking14.pdf) * [Datacenter Traffic Control: Understanding Techniques and Trade-offs](https://osf.io/6qzxc/) * [B4: Experience with a Globally-Deployed Software Defined WAN](https://dl.acm.org/citation.cfm?id=2486019) diff --git a/operating_systems/README.md b/operating_systems/README.md index 4793c4e..b7da84b 100644 --- a/operating_systems/README.md +++ b/operating_systems/README.md @@ -8,7 +8,6 @@ ## Jails and containers -* :scroll: [Jails: Confining the omnipotent root.](https://us-east.manta.joyent.com/bcantrill/public/ppwl-cantrill-jails.pdf) - -* :scroll: [Solaris Zones: Operating System Support for Consolidating Commercial Workloads](https://us-east.manta.joyent.com/bcantrill/public/ppwl-cantrill-zones.pdf) +* :scroll: [Jails: Confining the omnipotent root.](http://phk.freebsd.dk/pubs/sane2000-jail.pdf) +* :scroll: [Solaris Zones: Operating System Support for Consolidating Commercial Workloads](https://www.usenix.org/legacy/event/lisa04/tech/full_papers/price/price.pdf) diff --git a/organizational_simulation/README.md b/organizational_simulation/README.md deleted file mode 100644 index 3156c95..0000000 --- a/organizational_simulation/README.md +++ /dev/null @@ -1,6 +0,0 @@ -## Organizational Simulation - -* [:scroll:](common-ground-and-coordination-in-joint-activity.pdf) [Common Ground and Coordination in Joint Activity](http://jeffreymbradshaw.net/publications/Common_Ground_Single.pdf) by Klein, Feltovich, and Woods - - > The paper is the result of what happens when people with backgrounds in mathematics, psychology, and artificial intelligence (Feltovich and Bradshaw) get together to ask questions about how teams operate alongside the originators of modern decision-making and cognitive systems engineering research (Klein and Woods). The concepts outlined in the paper have provided frames and directions in designing tools and environments where successful work requires multiple actors (whether they are people or software agents!) to succeed. This seminal paper takes a deep dive into not just people and teamwork, but what comprises the sometimes invisible activity of coordination, collaboration, cooperation, and the contracts and expectations entities have with each other along the way. The paper has had far-reaching influence in multiple domains: military intelligence, space transportation and aviation, and more recently: software engineering and operations on the web. Let me walk you through where this paper came from, what makes this paper critical to the future of software, and a hint about what I'm sure it means about the future. - @allspaw - diff --git a/pattern_matching/README.md b/pattern_matching/README.md index de527fe..29de767 100644 --- a/pattern_matching/README.md +++ b/pattern_matching/README.md @@ -1,6 +1,19 @@ # Pattern Matching +[Pattern matching algorithms](https://en.wikipedia.org/wiki/Pattern_matching) extend beyond strings, to include trees and other data structures. + +🧭 Part of the pattern-matching group, in PWL + +* [Pattern Matching](../pattern_matching/README.md) +* [Stringology](../pattern_stringology/README.md) + +---- + * :scroll: [Compiling Pattern Matching to good Decision Trees](compiling-pattern-matching-to-good-decision-trees.pdf) by Luc Maranget. Paper address the issue of compiling ML pattern matching to efficient decisions trees. * :scroll: [Extensible Pattern Matching in an Extensible Language](extensible-pattern-matching-extensible-language.pdf) by Sam Tobin-Hochstadt. Paper present a sophisticated pattern matcher for [Racket](http://racket-lang.org/), implemented as language extension using macros. * :scroll: [Warnings for pattern matching](warnings-for-pattern-matching.pdf) by Luc Maranget. Paper examine the ML pattern-matching anomalies of useless clauses and non-exhaustive matches. * :scroll: [Efficient String Matching: An Aid to Bibliographic Search](aho-corasick-string-matching.pdf) by Alfred V. Aho and Margaret J. Corasick. A single-pass pattern matching algorithm used in early versions of fgrep and similar projects. [Aho–Corasick entry](http://xlinux.nist.gov/dads//HTML/ahoCorasick.html) in NIST's Dictionary of Algorithms and Data Structures. + +## Clustering Algorithms + +* [On the resemblance and containment of documents](https://www.cs.princeton.edu/courses/archive/spr05/cos598E/bib/broder97resemblance.pdf) (Andrei Z. Broder) diff --git a/stringology/README.md b/pattern_stringology/README.md similarity index 68% rename from stringology/README.md rename to pattern_stringology/README.md index b617ad0..098bcff 100644 --- a/stringology/README.md +++ b/pattern_stringology/README.md @@ -1,5 +1,13 @@ # Stringology +[Stringology](https://en.wikipedia.org/wiki/String_(computer_science)#String_processing_algorithms) refers to one of the various kinds of string processing algorithms. + + +🧭 Part of the pattern-matching group, in PWL + +* [Pattern Matching](../pattern_matching/README.md) +* [Stringology](../pattern_stringology/README.md) + ## External Papers * [A Taxonomy of Suffix Array Construction Algorithms](http://www.cas.mcmaster.ca/~bill/best/algorithms/07Taxonomy.pdf) diff --git a/privacy/README.md b/privacy/README.md new file mode 100644 index 0000000..328b78f --- /dev/null +++ b/privacy/README.md @@ -0,0 +1,10 @@ +## Privacy + +* [k-ANONYMITY: A model for Protecting Privacy (1998)](https://dataprivacylab.org/dataprivacy/projects/kanonymity/kanonymity.pdf) +* [Differential Privacy(2006)](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/dwork.pdf) +* [Robust De-anonymization of Large Sparse Datasets(2008)](https://www.cs.utexas.edu/~shmat/shmat_oak08netflix.pdf) +* [Broken Promises of Privacy: Responding to the Surprising Failure of Anonymization(2010)](https://www.uclalawreview.org/broken-promises-of-privacy-responding-to-the-surprising-failure-of-anonymization-2/) +* [Timing Attacks on Web Privacy(2000)](https://sip.cs.princeton.edu/pub/webtiming.pdf) +* [Protecting Browser State from Web Privacy Attacks(2006)](https://crypto.stanford.edu/sameorigin/sameorigin.pdf) +* [KHyperLogLog: Estimating Reidentifiability and +Joinability of Large Data at Scale(2019)](https://storage.googleapis.com/pub-tools-public-publication-data/pdf/40bc2804cbd3e41ed28dc8991316361eca48630c.pdf) diff --git a/program_verification/README.md b/program_verification/README.md deleted file mode 100644 index 7e3318a..0000000 --- a/program_verification/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Program Verification - -* [Coq: The world’s best macro assembler?](https://research.microsoft.com/en-us/um/people/nick/coqasm.pdf) diff --git a/robotics/README.md b/robotics/README.md index cfdc0cd..2221fe5 100644 --- a/robotics/README.md +++ b/robotics/README.md @@ -9,7 +9,7 @@ Robotics [Online Trajectory Generation: Basic Concepts for Instantaneous Reactions to Unforeseen Events](http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5350749) -[Probablistic Roadmaps for Path Planning in High-Dimensional Configuration Spaces](http://www.kavrakilab.org/sites/default/files/kavraki1996prm-high-dim-conf.pdf) +[Probablistic Roadmaps for Path Planning in High-Dimensional Configuration Spaces](https://www.cs.cmu.edu/~./motionplanning/papers/sbp_papers/PRM/prmbasic_01.pdf) [Rapidly-Exploring Random Trees: A New Tool for Path Planning](http://msl.cs.uiuc.edu/~lavalle/papers/Lav98c.pdf) @@ -29,7 +29,7 @@ planning. The problem of motion planning scales exponentially with the degrees of freedom a robot has and the degrees of freedom the obstacles in an environment have. Thus, planning with high degrees of freedom leads to many problems such as incompleteness and extremely slow speed. The PRM method was the first to -propose a sampling-based stratey to deal with motion planning and +propose a sampling-based strategy to deal with motion planning and created a practical method for offline planning of robot manipulators. The RRT method modified PRM by using a tree structure rather than a graph so that non-holonomic and other constraints could be considered diff --git a/software_engineering_orgs/README.md b/software_engineering_orgs/README.md new file mode 100644 index 0000000..a78f3c0 --- /dev/null +++ b/software_engineering_orgs/README.md @@ -0,0 +1,21 @@ +# Software Engineering Organizations + +The [practice of software engineering](https://en.wikipedia.org/wiki/Software_engineering), and [its history](https://en.wikipedia.org/wiki/History_of_software_engineering) is, itself, a complex study in [humanity](https://en.wikipedia.org/wiki/No_Silver_Bullet), [coordination](https://en.wikipedia.org/wiki/Software_development_process), and communication. + +## Software Engineering + +* [Studying Attitudes and Social Norms in Agile Software Development (2019)](https://arxiv.org/pdf/1904.09225.pdf) by Lucas Gren + > This paper reviews research on attitudes and social norms and connect it to the agile software development context. Author proposes additional theories from social psychology that would most certainly be useful for further sense-making of human factors-related research on agile teams. + +* [Happiness and the productivity of software engineers (2019)](https://arxiv.org/ftp/arxiv/papers/1904/1904.08239.pdf) by Daniel Graziotin & Fabian Fagerholm + > This paper provides an overview of studies on the happiness of software developers. You will learn why it is important to make software developers happy, how happy they really are, what makes them unhappy, and what is expected for their productivity while developing software. + +* [Why Software Projects need Heroes (Lessons Learned from 1100+ Projects) (2019)](https://arxiv.org/pdf/1904.09954.pdf) by Suvodeep Majumder, Joymallya Chakraborty, Amritanshu Agrawal & Tim Menzies + > This paper explores the effect of having heroes in projects, from a code quality perspective. Authors identify the hero developers of 1100+ open source GitHub projects. Based on the analysis, they find the majority of all projects are *"hero" projects* and commits from *hero developers* (who contribute the most code) result in far fewer bugs than other developers -- which is contrary to the literature. + +## Organizational Simulation + +* [:scroll:](common-ground-and-coordination-in-joint-activity.pdf) [Common Ground and Coordination in Joint Activity](http://jeffreymbradshaw.net/publications/Common_Ground_Single.pdf) by Klein, Feltovich, and Woods + + > The paper is the result of what happens when people with backgrounds in mathematics, psychology, and artificial intelligence (Feltovich and Bradshaw) get together to ask questions about how teams operate alongside the originators of modern decision-making and cognitive systems engineering research (Klein and Woods). The concepts outlined in the paper have provided frames and directions in designing tools and environments where successful work requires multiple actors (whether they are people or software agents!) to succeed. This seminal paper takes a deep dive into not just people and teamwork, but what comprises the sometimes invisible activity of coordination, collaboration, cooperation, and the contracts and expectations entities have with each other along the way. The paper has had far-reaching influence in multiple domains: military intelligence, space transportation and aviation, and more recently: software engineering and operations on the web. Let me walk you through where this paper came from, what makes this paper critical to the future of software, and a hint about what I'm sure it means about the future. - @allspaw + diff --git a/organizational_simulation/common-ground-and-coordination-in-joint-activity.pdf b/software_engineering_orgs/common-ground-and-coordination-in-joint-activity.pdf similarity index 100% rename from organizational_simulation/common-ground-and-coordination-in-joint-activity.pdf rename to software_engineering_orgs/common-ground-and-coordination-in-joint-activity.pdf diff --git a/speech_recognition/README.md b/speech_recognition/README.md index 5844169..33eb666 100644 --- a/speech_recognition/README.md +++ b/speech_recognition/README.md @@ -2,7 +2,7 @@ ## External Papers -[A tutorial on hidden Markov models and selected applications in speech recognition](http://luthuli.cs.uiuc.edu/~daf/courses/Signals%20AI/Papers/HMMs/0.pdf) +[A tutorial on hidden Markov models and selected applications in speech recognition](http://www.cs.cmu.edu/~cga/behavior/rabiner1.pdf) [Weighted Finite-State Transducers in Speech Recognition](http://www.cs.nyu.edu/~mohri/pub/csl01.pdf) diff --git a/systems_modeling/README.md b/systems_modeling/README.md new file mode 100644 index 0000000..e7ad0be --- /dev/null +++ b/systems_modeling/README.md @@ -0,0 +1,3 @@ +# Systems modeling + +- [Statecharts: A Visual Formalism for Complex Systems](http://www.inf.ed.ac.uk/teaching/courses/seoc/2005_2006/resources/statecharts.pdf) diff --git a/unikernels/README.md b/unikernels/README.md index 6aac656..43311f9 100644 --- a/unikernels/README.md +++ b/unikernels/README.md @@ -1,9 +1,78 @@ -## Unikernels (LibOS) +# Unikernels + +## First-wave: lightweight kernels (microkernels) + +* [HYDRA: the kernel of a multiprocessor operating system](https://kilthub.cmu.edu/articles/HYDRA_--_the_kernel_of_a_multiprocessor_operating_system/6606224/files/12096734.pdf) +* [Two years of experience with a μ-Kernel based OS](https://dl.acm.org/citation.cfm?id=122124) +* [A persistent system in real use-experiences of the first 13 years](https://os.itec.kit.edu/downloads/publ_1993_liedtke_persistent-system-in-real-use.pdf) +* [SPIN: An extensible microkernel for application-specific operating system services](https://apps.dtic.mil/dtic/tr/fulltext/u2/a293537.pdf) +* [Extensibility safety and performance in the SPIN operating system](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.117.6702&rep=rep1&type=pdf) +* [Policy/mechanism separation in Hydra](https://www.systems.ethz.ch/sites/default/files/file/aos2012/Reading/week9/Policy%20mechanism%20separation%20in%20Hydra.pdf) +* [Improving IPC by kernel design](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.55.9939&rep=rep1&type=pdf) + +## Second-wave: cloud optimization (exokernels, multikernels) + +* [Exokernel: An operating system architecture for application-level resource management](http://pages.cs.wisc.edu/~remzi/Classes/736/Spring2014/Papers/exo-sosp95.pdf) +* [Exterminate all operating system abstractions](http://studies.ac.upc.es/doctorat/ENGRAP/hotos-jeremiad.pdf) +* [The Clive Operating System](http://lsub.org/export/clivesys.pdf) +* [The Multikernel: A new OS architecture for scalable multicore systems](http://www.cse.iitd.ac.in/~sbansal/csl862-os/readings/barrelfish.pdf) +* [IX: A Protected Dataplane Operating System for High Throughput and Low Latency](https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-belay.pdf) +* [The IX Operating System: Combining Low Latency, High Throughput, and Efficiency in a Protected Dataplane](https://infoscience.epfl.ch/record/223617/files/tocs16-ix.pdf) +* [Contiki - a lightweight and flexible operating system for tiny networked sensors](http://perso.citi.insa-lyon.fr/trisset/cours/rts12/articles/DGV04-contiki.pdf) +* [Arrakis: The Operating System Is the Control Plane](https://dl.acm.org/citation.cfm?id=2812806) +* [Embracing diversity in the Barrelfish manycore operating system](http://www.barrelfish.org/publications/barrelfish_mmcs08.pdf) +* [Decoupling Cores, Kernels, and Operating Systems](https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-zellweger.pdf) + +## Unikernels: bespoke, compile-time specialization based on a libOS + +### Introduction + +* [Unikernels: Library Operating Systems for the Cloud](http://unikernel.org/files/2013-asplos-mirage.pdf) +* [Unikernels: the rise of the virtual library operating system](https://cacm.acm.org/magazines/2014/1/170866-unikernels/fulltext) +* [Maximizing hypervisor scalability using minimal virtual machines](https://core.ac.uk/download/pdf/35074556.pdf) +* [Breaking up is hard to do: security and functionality in a commodity hypervisor](https://open.library.ubc.ca/media/download/pdf/24/1.0052016/1) +* [A case for high performance computing with virtual machines](http://mvapich.cse.ohio-state.edu/static/media/publications/abstract/huangwei-ics06.pdf) +* [Comparing the robustness of POSIX operating systems](https://users.ece.cmu.edu/~koopman/ballista/ftcs99/ftcs99.pdf) +* [Exploring the Design Space of Combining Linux with Lightweight Kernels for Extreme Scale Computing](http://www.sys.r-ccs.riken.jp/members_files/bgerofi/papers/ross15-linux+lwk.pdf) +* [Using kernel hypervisors to secure applications](https://ieeexplore.ieee.org/abstract/document/646188) + +### Specific libOS implementations -* [Unikernels: Library Operating Systems for the Cloud](http://anil.recoil.org/papers/2013-asplos-mirage.pdf) * [IncludeOS: A minimal, resource efficient unikernel for cloud services](http://folk.uio.no/paalee/publications/2015-cloudcom.pdf) +* [OSv—optimizing the operating system for virtual machines](https://www.usenix.org/system/files/conference/atc14/atc14-paper-kivity.pdf) +* [ClickOS and the art of network function virtualization](https://www.usenix.org/system/files/conference/nsdi14/nsdi14-paper-martins.pdf) +* [Enabling fast, dynamic network processing with clickos](http://conferences.sigcomm.org/sigcomm/2013/papers/hotsdn/p67.pdf) * [The rump kernel: A tool for driver development and a toolkit for applications](https://www.netbsd.org/gallery/presentations/justin/2015_AsiaBSDCon/justincormack-abc2015.pdf) +* [Flexible operating system internals: the design and implementation of the anykernel and rump kernels](https://aaltodoc.aalto.fi/bitstream/handle/123456789/6318/isbn9789526049175.pdf?sequence=1) +* [Rump Kernels: No OS? No Problem!](https://www.usenix.org/system/files/login/articles/login_1410_03_kantee.pdf) +* [HermitCore: A Unikernel for Extreme Scale Computing](https://dl.acm.org/citation.cfm?id=2931093) +* [llamaOS: A Solution for Virtualized High-Performance Computing Clusters](https://ieeexplore.ieee.org/document/6969511) +* [KylinX: A Dynamic Library Operating System for Simplified and Efficient Cloud Virtualization](https://www.usenix.org/conference/atc18/presentation/zhang-yiming) + +### Performance, comparisons and analysis + +* [The impact of operating system structure on memory system performance](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.52.4651&rep=rep1&type=pdf) +* [Hypervisors vs. Lightweight Virtualization: A Performance Comparison](https://www.researchgate.net/profile/Roberto_Morabito/publication/273756984_Hypervisors_vs_Lightweight_Virtualization_A_Performance_Comparison/links/550a83660cf26198a63afb10.pdf) +* [A performance evaluation of rump kernels as a multi-server os building block on sel4](http://echronos.systems/publications/csiro_full_text/Elphinstone_ZMH_17.pdf) +* [An updated performance comparison of virtual machines and linux containers](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.471.9242&rep=rep1&type=pdf) +* [My VM is Lighter (and Safer) than your Container](https://dl.acm.org/citation.cfm?id=3132763) +* [Security of OS-level virtualization technologies: Technical report](https://arxiv.org/pdf/1407.4245v1.pdf) +* [Time Provisioning Evaluation of KVM, Docker and Unikernels in a Cloud Platform](http://repositorio.pucrs.br/dspace/bitstream/10923/14178/2/Time_provisioning_evaluation_of_KVM_Docker_and_Unikernels_in_a_Cloud_Platform.pdf) + +### Applications of Unikernels -### High Availability Through Unikernel * [Tardigrade: Leveraging Lightweight Virtual Machines to Easily and Efficiently Construct Fault-Tolerant Services](https://www.usenix.org/node/189029) - +* [Unikernel-based approach for software-defined security in cloud infrastructures](https://hal.inria.fr/hal-01798793/document) +* [FADES: Fine-Grained Edge Offloading with Unikernels](http://home.in.tum.de/~ding/files/fades-pre-camera.pdf) +* [Enterprise IoT security and scalability: how unikernels can improve the status Quo](http://aura.abdn.ac.uk/bitstream/handle/2164/7988/PID4488667.pdf?sequence=1&isAllowed=y) +* [Unikernels Everywhere: The Case for Elastic CDNs](https://dl.acm.org/citation.cfm?id=3050757) +* [Towards minimalistic, virtualized content caches with minicache](http://cnp.neclab.eu/projects/minicache/minicache-workshop.pdf) +* [Jitsu: Just-in-time summoning of unikernels](https://www.usenix.org/system/files/conference/nsdi15/nsdi15-paper-madhavapeddy.pdf) +* [Enabling fast, dynamic network processing with clickOS](http://conferences.sigcomm.org/sigcomm/2013/papers/hotsdn/p67.pdf) +* [uniprof: A Unikernel Stack Profiler](https://flosch.eu/papers/2017-sigcomm-uniprof.pdf) +* [On the Fly TCP Acceleration with Miniproxy](https://arxiv.org/pdf/1605.06285.pdf) +* [Unikernel monitors: extending minimalism outside of the box](https://www.usenix.org/system/files/conference/hotcloud16/hotcloud16_williams.pdf) +* [Unikernels As Processes](https://sjmulder.nl/dl/pdf/2018%20-%20Williams%20et%20al%20-%20Unikernels%20as%20Processes.pdf) +* [On the Fly Orchestration of Unikernels: Tuning and Performance Evaluation of Virtual Infrastructure Managers](https://arxiv.org/pdf/1809.07701.pdf) +* [Live updating in Unikernels](https://www.duo.uio.no/bitstream/handle/10852/59240/45/live-updating-unikernels.pdf) +* [Android Unikernel: Gearing mobile code offloading towards edge computing](http://grid.hust.edu.cn/wusong/file/FGCS18.pdf) \ No newline at end of file