Merge pull request #1 from papers-we-love/master

FROM UPSTREAM
pull/624/head
Robbi Nespu 3 years ago committed by GitHub
commit 4ce794d82d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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

@ -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?
----------
@ -16,7 +16,8 @@ Need help?
If you are experiencing harassment on or have concerns about content within the [GitHub repo](https://github.com/papers-we-love/papers-we-love), the **#paperswelove** IRC channel on Freenode, the **paperswelove.slack.com** Slack, [PapersWeLove.org](http://paperswelove.org), or via remote presentations, please contact:
- **Zeeshan Lakhani** [zeeshan@paperswelove.org](mailto:zeeshan@paperswelove.org)
- **Clint Newsom** [clint@paperswelove.org](mailto:clint@paperswelove.org)
- **Ines Sombra** [ines@paperswelove.org](mailto:ines@paperswelove.org)
- **Elaine Greenberg** [elaine@paperswelove.org](mailto:elaine@paperswelove.org)
- **Jeremy Heiler** (Github) [jeremy@paperswelove.org](mailto:jeremy@paperswelove.org)
- **Darren Newton** (paperswelove.org) [darren@paperswelove.org](mailto:darren@paperswelove.org)
- **All** [contact@paperswelove.org](mailto:contact@paperswelove.org)

@ -1,4 +1,6 @@
## ![Papers We Love](http://paperswelove.org/images/logo-top.svg)
## ![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.
@ -11,47 +13,55 @@ If you enjoy the papers, perhaps stop by a local chapter meetup and join in on t
Here are our official chapters. Let us know if you are interested in [starting one](https://github.com/papers-we-love/papers-we-love/wiki/Creating-a-PWL-chapter) in your city!
* [Amsterdam](http://www.meetup.com/papers-we-love-amsterdam/)
* [Athens](https://www.meetup.com/Papers-We-Love-Athens)
* [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/)
* [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/)
* [Boston](http://www.meetup.com/Papers-We-Love-Boston-Cambridge/)
* [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/)
* [Columbus, Ohio](http://www.meetup.com/Papers-We-Love-Columbus/)
* [Dallas](http://www.papersdallas.com/)
* [Gothenburg](https://www.meetup.com/Papers-We-Love-Gothenburg/)
* [Hamburg](http://www.meetup.com/Papers-We-Love-Hamburg/)
* [Hyderabad](http://www.meetup.com/papers-we-love-hyderabad/)
* [Iasi](http://www.meetup.com/Papers-We-Love-Iasi/)
* [Iowa City](https://www.meetup.com/techcorridorio)
* [Kathmandu](https://www.facebook.com/groups/PapersWeLoveKathmandu/)
* [Kyiv](https://www.facebook.com/groups/PapersWeLoveKyiv)
* [Lebanon](http://www.paperswelovelb.club)
* [London](http://www.meetup.com/papers-we-love-london)
* [Los Angeles](http://www.meetup.com/papers-we-love-la)
* [Madrid](http://www.meetup.com/Papers-We-Love-Madrid/)
* [Montreal](http://www.meetup.com/Papers-We-Love-Montreal/)
* [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/)
* [Philadelphia](http://www.meetup.com/Papers-We-Love-Philadelphia/)
* [Portland](http://www.meetup.com/Papers-We-Love-PDX/)
* [Pune](http://www.meetup.com/Doo-Things)
* [Reykjavík](http://www.meetup.com/Papers-We-Love-Reykjavik)
* [Raleigh-Durham](https://www.meetup.com/Papers-We-Love-Raleigh-Durham/)
* [Rio de Janeiro](https://www.meetup.com/pt-BR/papers-we-love-rio-de-janeiro/)
* [San Diego](http://www.meetup.com/Papers-We-Love-San-Diego/)
* [San Francisco](http://www.meetup.com/papers-we-love-too/)
* [Seattle](http://www.meetup.com/Papers-We-Love-Seattle/)
* [Seoul, Korea](http://www.meetup.com/seoul-tech-society)
* [Singapore](https://www.facebook.com/groups/paperswelovesg/)
* [St. Louis](http://www.meetup.com/Papers-We-Love-in-saint-louis/)
* [Teresina](https://www.meetup.com/pt-BR/Papers-We-Love-Teresina/)
* [Toronto](http://www.meetup.com/Papers-We-Love-Toronto/)
* [Vienna](http://www.meetup.com/Papers-We-Love-Vienna/)
* [Washington, DC](http://www.meetup.com/Papers-We-Love-DC-NoVA/)
* [Winnipeg](http://www.meetup.com/Papers-We-Love-Winnipeg/)
* [Winnipeg](http://pwlwpg.ca/)
* [Zürich](https://www.meetup.com/Papers-we-love-Zurich/)
All of our meetups follow our [Code of Conduct](CODE_OF_CONDUCT.md).
### Past Presentations
Check out our [Youtube](https://www.youtube.com/user/PapersWeLove) and [MixCloud](https://www.mixcloud.com/paperswelove/) (audio-only format) channels.
Check out our [YouTube](https://www.youtube.com/user/PapersWeLove) and [MixCloud](https://www.mixcloud.com/paperswelove/) (audio-only format) channels.
## Info
@ -59,9 +69,10 @@ We're looking for pull requests related to papers we should add, better organiza
### Other Good Places to Find Papers
* [Bell System Technical Journal, 1922-1983](https://www.alcatel-lucent.com/bell-labs-journals)
* [2 Minute Papers](https://www.youtube.com/user/keeroyz)
* [Bell System Technical Journal, 1922-1983](https://www.bell-labs.com/our-research/technical-journal/)
* [Best Paper Awards in Computer Science](http://jeffhuang.com/best_paper_awards.html)
* [Facebook](https://www.facebook.com/publications)
* [Facebook](https://research.fb.com/publications/)
* [Google Scholar](http://scholar.google.com/citations?view_op=top_venues&hl=en&vq=eng) (choose a subcategory)
* [Microsoft Research](http://research.microsoft.com/apps/catalog/default.aspx?t=publications)
* [Functional Programming Books Review](http://alexott.net/en/fp/books/)
@ -75,8 +86,8 @@ We're looking for pull requests related to papers we should add, better organiza
* [Services Engineering Reading List](https://github.com/mmcgrana/services-engineering)
* [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/security-datascience-papers/)
* [Research Papers from Robert Harper, Carnegie Mellon University](http://www.cs.cmu.edu/~rwh/papers.html)
* [Security Data Science Papers](http://www.covert.io/the-definitive-security-datascience-and-machinelearning-guide/)
* [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/)
@ -87,7 +98,7 @@ Please check out our [wiki-page](https://github.com/papers-we-love/papers-we-lov
Reading a paper is not the same as reading a blogpost or a novel. Here are a few handy resources to help you get started.
* [How to read an academic article](http://organizationsandmarkets.com/2010/08/31/how-to-read-an-academic-article/)
* [Advice on reading academic papers](http://www4.ncsu.edu/~akmassey/posts/2012-02-15-advice-on-reading-academic-papers.html)
* [Advice on reading academic papers](https://www.cc.gatech.edu/~akmassey/posts/2012-02-15-advice-on-reading-academic-papers.html)
* [How to read and understand a scientific paper](http://violentmetaphors.com/2013/08/25/how-to-read-and-understand-a-scientific-paper-2/)
* [Should I Read Papers?](http://michaelrbernste.in/2014/10/21/should-i-read-papers.html)
* [The Refreshingly Rewarding Realm of Research Papers](https://www.youtube.com/watch?v=8eRx5Wo3xYA)
@ -96,6 +107,18 @@ Reading a paper is not the same as reading a blogpost or a novel. Here are a few
* Love a Paper - [@loveapaper](https://twitter.com/loveapaper)
### Download papers
Open your favourite terminal and run:
```bash
$ ./scripts/download.sh
```
This will scrape markdown files for links to PDFs and download papers to their respective directories.
See [README.md](./scripts/README.md) for more options.
## Contributing Guidelines
Please take a look at our [CONTRIBUTING.md](https://github.com/papers-we-love/papers-we-love/blob/master/.github/CONTRIBUTING.md) file.

@ -0,0 +1,5 @@
## Affective Computing
* :scroll: [Affective Computing](http://affect.media.mit.edu/pdfs/95.picard.pdf)
* :scroll: [Theories, Methods and Current Research on Emotions](https://irenelopatovska.files.wordpress.com/2012/10/lopatovska_arapakis_2011_theories.pdf)

@ -4,5 +4,5 @@
* Referenced by [Two Secure Coding Tools for Analyzing Android Apps](http://blog.sei.cmu.edu/post.cfm/secure-coding-tools-analyzing-android-apps-118) :
* [Analyzing Inter-Application Communication in Android](https://www.eecs.berkeley.edu/~daw/papers/intents-mobisys11.pdf)
* [Effective Inter-Component Communication Mapping in Android with Epicc: An Essential Step Towards Holistic Security Analysis](http://www.cse.psu.edu/~duo114/pubs/octeau-sec13.pdf)
* [Effective Inter-Component Communication Mapping in Android with Epicc: An Essential Step Towards Holistic Security Analysis](http://docteau.github.io/pubs/octeau-sec13.pdf)
* [FlowDroid: Precise Context, Flow, Field, Object-sensitive and Lifecycle-aware Taint Analysis for Android Apps](http://www.bodden.de/pubs/far+14flowdroid.pdf)

@ -1,6 +1,6 @@
## Artificial Intelligence
* [:scroll:](3-bayesian-network-inference-algorithm.pdf) [Analysis of Three Bayesian Network Inference Algorithms:Variable Elimination, Likelihood Weighting, and Gibbs Sampling](https://github.com/papers-we-love/papers-we-love/blob/master/artificial_intelligence/3-bayesian-network-inference-algorithm.pdf) by Rose F. Liu, Rusmin Soetjipto
* :scroll: [Analysis of Three Bayesian Network Inference Algorithms: Variable Elimination, Likelihood Weighting, and Gibbs Sampling](3-bayesian-network-inference-algorithm.pdf) by Rose F. Liu, Rusmin Soetjipto
* :scroll: [Efficient Selectivity and Backup Operators in Monte-Carlo Tree Search](efficient-selectivity-and-backup-operators-in-monte-carlo-tree-search.pdf)
@ -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.

@ -6,24 +6,18 @@
> complex probability models, identified conditional independence
> relationships as the key organizing principle for uncertain knowledge,
> and described an efficient, distributed, exact inference algorithm.
> -- <cite>[ACM Turing Award Short Annotated Bibliography][1]</cite>
[A theory of inferred causation](http://ftp.cs.ucla.edu/pub/stat_ser/r156-reprint.pdf) - with Thomas S. Verma.
> Introduces minimal-model semantics as a basis for causal discovery,
> and shows that causal directionality can be inferred from patterns
> of correlations without resorting to temporal information.
> -- <cite>[ACM Turing Award Short Annotated Bibliography][1]</cite>
[Causal diagrams for empirical research](http://ftp.cs.ucla.edu/pub/stat_ser/R218-B-L.pdf) - extended version linked.
> Introduces the theory of causal diagrams and its associated do-calculus;
> the first (and still the only) mathematical method to enable a
> systematic removal of confounding bias in observations.
> -- <cite>[ACM Turing Award Short Annotated Bibliography][1]</cite>
[The algorithmization of counterfactuals](http://ftp.cs.ucla.edu/pub/stat_ser/r360.pdf) -
> Describes a computational model that explains how humans generate,
> evaluate and distinguish counterfactual statements so swiftly and
> consistently.
> -- <cite>[ACM Turing Award Short Annotated Bibliography][1]</cite>
[1]: http://amturing.acm.org/bib/pearl_2658896.cfm

@ -7,4 +7,13 @@
* [WaveNet: A Generative Model for Raw Audio](https://arxiv.org/pdf/1609.03499.pdf) by a team @ Google DeepMind, 2016
* [Announcement and interactive examples](https://deepmind.com/blog/wavenet-generative-model-raw-audio/)
* [[Python] Implementation with the Keras Neural Networks library](https://github.com/basveeling/wavenet)
* [[Python] Implementation with the TensorFlow Machine Intelligence library](https://github.com/ibab/tensorflow-wavenet)
* [[Python] Implementation with the TensorFlow Machine Intelligence library](https://github.com/ibab/tensorflow-wavenet)
* :scroll: [Real time chord recognition for live performance](real-time-chord-detection.pdf) by Adam M. Stark, Mark D. Plumbley
* [[C++] Implementation of real time chord detection](https://github.com/adamstark/Chord-Detector-and-Chromagram)
* :scroll: [ESSENTIA: An Audio Analysis Library for MusicInformation Retrieval](essentia.pdf) by Music Technology Group, Universitat Pompeu Fabra, Barcelona, Spain
* [[C++] Essential open source library](https://github.com/MTG/essentia)
* :scroll: [MARSYAS: A framework for audio analysis](marsyas.pdf) by George Tzanetakis and Perry Cook
* [[C++] Marsyas open source audio processing framework](https://github.com/marsyas/marsyas)

Binary file not shown.

Binary file not shown.

@ -0,0 +1,6 @@
Bioinformatics
===========
## Sequence Analysis
* [SneakySnake: A Fast and Accurate Universal Genome Pre-Alignment Filter for CPUs, GPUs, and FPGAs (2019)](https://arxiv.org/abs/1910.09020v2)
* [Shouji: a fast and efficient pre-alignment filter for sequence alignment (2019)](https://arxiv.org/ftp/arxiv/papers/1809/1809.07858.pdf)
* [Shifted Hamming distance: a fast and accurate SIMD-friendly filter to accelerate alignment verification in read mapping (2015)](https://doi.org/10.1093/bioinformatics/btu856)

@ -0,0 +1,6 @@
# Braincomputer 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 BrainMachine 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)

@ -3,3 +3,5 @@
* [:scroll:](a-constant-algorithm-for-implementing-the-lfu-cache-eviction-scheme.pdf) [An O(1) algorithm for implementing the LFU cache eviction scheme](https://github.com/papers-we-love/papers-we-love/blob/master/caching/a-constant-algorithm-for-implementing-the-lfu-cache-eviction-scheme.pdf) by Prof. Ketan Shah, Anirban Mitra, Dhruv Matani
* [:scroll:](2q-a-low-overhead-high-performance-buffer-management-replacement-algorithm.pdf) [2Q: A Low Overhead High Performance Buffer Management Replacement Algorithm](http://www.vldb.org/conf/1994/P439.PDF) by Theodore Johnson and Dennis Shasha
* [:scroll:](a-program-optimization-for-automatic-database-result-caching.pdf)[A Program Optimization for Automatic Database Result Caching](http://adam.chlipala.net/papers/SqlcachePOPL17/SqlcachePOPL17.pdf) by Ziv Scully and Adam Chlipala

@ -1,3 +0,0 @@
## Clustering Algorithms
[On the resemblance and containment of documents](http://gatekeeper.dec.com/ftp/pub/dec/SRC/publications/broder/positano-final-wpnums.pdf) (Andrei Z. Broder)

@ -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)
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
https://web.archive.org/web/20170904072400/http://poncelet.math.nthu.edu.tw/disk5/js/computer/hall-knuth.pdf

@ -1,11 +1,13 @@
## Computer Science Fundamentals and History
* "Turing, On computable numbers, with an application to the Entscheidungsproblem" by Alan Turing
* As a PDF: [Turing, On computable numbers, with an application to the Entscheidungsproblem](https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf)
* As a PDF: [Turing, On computable numbers, with an application to the Entscheidungsproblem](https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf)
* As a collection of single images: [Turing, On computable numbers, with an application to the Entscheidungsproblem](http://www.turingarchive.org/browse.php/B/12) by Alan Turing
* [Mealy, A Method for Synthesizing Sequential Circuits] (http://www3.alcatel-lucent.com/bstj/vol34-1955/articles/bstj34-5-1045.pdf) by George H. Mealy
* [Mealy, A Method for Synthesizing Sequential Circuits](http://www3.alcatel-lucent.com/bstj/vol34-1955/articles/bstj34-5-1045.pdf) by George H. Mealy
* :scroll: [Back to the Future - The Story of Squeak, A Practical Smalltalk Written in Itself](story-of-squeak-a-practical-smalltalk-written-in-itself.pdf) by Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace & Alan Kay
* :scroll: [Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I](recursive-functions-of-symbolic-expressions-and-their-computation-by-machine-parti.pdf) by John McCarthy
* :scroll: [An Axiomatic Basis for Computer Programming](axiomatic-basis-computer-programming.pdf) by C. A. R. HOARE
* :scroll: [An Axiomatic Basis for Computer Programming](axiomatic-basis-computer-programming.pdf) by C. A. R. HOARE
* [On the Computational Complexity of Algorithims](http://www.ams.org/journals/tran/1965-117-00/S0002-9947-1965-0170805-7/S0002-9947-1965-0170805-7.pdf) by J. HARTMANIS AND R. E. STEARNS
* :scroll: [Hints for Computer System Design](hints-for-computer-system-design.pdf)
* :scroll: [Early Lisp History: 1956-1959](early-lisp-history-1956-1959-herbert-stoyan-html-rendering.pdf) by Herbert Stoyan. This is a pdf rendering of the HTML page available at Archive.org.
* :scroll: [Why Programming is a good medium for expressing poorly understood and sloppily-formulated ideas](http://web.media.mit.edu/~minsky/papers/Why%20programming%20is--.html) by Marvin Minsky

@ -1,6 +1,6 @@
### Rendering
* [:scroll:](digital_video_stabilization_and_rolling_shutter_correction_using_gyroscopes.pdf) [Digital Video Stabilization and Rolling Shutter Correction using Gyroscopes](http://graphics.stanford.edu/papers/stabilization/karpenko_gyro.pdf)
* :scroll: [Digital Video Stabilization and Rolling Shutter Correction using Gyroscopes](http://graphics.stanford.edu/papers/stabilization/karpenko_gyro.pdf)
This is a really great paper that is both complex and straightforward. This paper "present a robust, real-time video stabilization and rolling shutter correction technique based on gyroscopes". I think this is a great paper because it makes a clever use of a commodity technology (smartphones' gyroscopes) to make a state-of-the-art improvement to a central components of phones: video cameras by removing the shakes and rolling shutter artifacts of a video in real-time.
* [An Improved Illumination Model for Shaded Display](https://www.cs.drexel.edu/~david/Classes/CS586/Papers/p343-whitted.pdf)
@ -21,11 +21,14 @@ This is a really great paper that is both complex and straightforward. This pape
### Object modeling
* [3-Sweep: Extracting Editable Objects from a Single Photo](http://www.cs.tau.ac.il/~dcor/articles/2013/3-Sweep-Extracting-Editable-Objects.pdf) - [Video](https://www.youtube.com/watch?v=Oie1ZXWceqM)
### Photo editing
* [Deep Photo Style Transfer](https://arxiv.org/pdf/1703.07511.pdf) (2017) - [Code](https://github.com/luanfujun/deep-photo-styletransfer) - A deep-learning approach to photographic style transfer (that is, taking the style of one photo and automatically applying it to another). The images in this paper are gorgeous.
### Lighting
* [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)
@ -42,8 +45,8 @@ This is a really great paper that is both complex and straightforward. This pape
> Of all the ways to manipulate a 3D mesh, push/ technique popularized by SketchUp is one of the most approachable and fun. PushPull++ is a recent paper that elaborates on the technique, cleaning up a lot of edge cases and unlocking new features, using wonderfully straightforward math. The potential for 3D modeling tools or procedural mesh generation APIs built on these simple ideas is very exciting.
> The paper presents the technique and the tool that the authors built. I will focus on the technique, as s the part I loved more in this paper (quote by Ramsey Nasser).
### Image Processing
* :scroll: [Imaging Vector Fields Using Line Integral Convolution](http://cs.brown.edu/courses/csci2370/2000/1999/cabral.pdf) by Brian Cabral and Leith Leedom
### Shape grammars
@ -51,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.

File diff suppressed because one or more lines are too long

@ -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)

@ -7,9 +7,10 @@
* [RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis (2013)](http://www.cs.tau.ac.il/~tromer/papers/acoustic-20131218.pdf)
* [The Moral Character of Cryptographic Work (2015)](http://web.cs.ucdavis.edu/~rogaway/papers/moral-fn.pdf)
* [:scroll:](ntru-prime.pdf) [NTRU Prime (2016)](https://eprint.iacr.org/2016/461.pdf) (Daniel J. Bernstein, Chitchanok Chuengsatiansup, Tanja Lange, and Christine van Vredendaal)
* [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

@ -1,4 +1,23 @@
# 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.
> 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.
## Scientific Data Compression
* :scroll: [Fast Error-bounded Lossy HPC Data Compression with SZ](fast_error_bounded_Lossy_hpc_data_compression_with_sz.pdf)
> This is the first version of SZ. In this paper, SZ is introduced to achieve data reduction using regression-based data point prediction.
* :scroll: [Significantly Improving Lossy Compression for Scientific Data Sets Based on Multidimensional Prediction and Error-Controlled Quantization](Significantly_Improving_Lossy_Compression_for_Scientific_Data_Sets_Based_on_Multidimensional_Prediction_and_Error-Controlled_Quantization.pdf)
> This work is known as SZ-1.4. In this work, SZ employs multi-dimensional data prediction so that data with dimension larger than 1 is no longer linearized into single dimension before compression. In this way, more data locality is preserved thus compression ratio is improved.
* :scroll: [Error-Controlled Lossy Compression Optimized for High Compression Ratios of Scientific Datasets](Error-Controlled_Lossy_Compression_Optimized_for_High_Compression_Ratios_of_Scientific_Datasets.pdf)
> This work is known as SZ-2.0. In this work, authors proposed an online selection tool between 2 predictors, the mean-integrated Lorenzo predictor and linear regression-based predictor. Users can choose the predictor that yields larger compression ratio with higher prediction accuracy.
* :scroll: [Fixed-Rate Compressed Floating-Point Arrays](fixed-rate_compressed_floating_point_arrays.pdf)
* :scroll: [FPC: A High-Speed Compressor for Double-Precision Floating-Point Data](fpc_a_high_speed_compressor_for_double_precision_floating_point_data.pdf)

File diff suppressed because one or more lines are too long

@ -1,4 +1,8 @@
# Data Replication
* :scroll: [A comprehensive study of Convergent and Commutative Replicated Data Types](a-comprehensive-study-of-convergent-and-communative-replicated-data-types.pdf)
* :scroll: [Immutability Changes Everything](http://cidrdb.org/cidr2015/Papers/CIDR15_Paper16.pdf)
> An overview on the patterns in computing leveraging immutability.
Nowadays, keeping immutable copies of data is almost inexpensive. One of the advantages of this fact is that it
can alleviate the burden of coordinated accesses to the data in the different layers of the SW/HW stack.
* :scroll: [A comprehensive study of Convergent and Commutative Replicated Data Types](a-comprehensive-study-of-convergent-and-communative-replicated-data-types.pdf)
> Eventual consistency aims to ensure that replicas of some mutable shared object converge without foreground synchronisation. We study a principled approach: to base the design of shared data types on some simple formal conditions that are sufficient to guarantee even- tual consistency. We call these types Convergent or Commutative Replicated Data Types (CRDTs).

@ -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)
* [Cuckoo Hashing](https://www.cs.tau.ac.il/~shanir/advanced-seminar-data-structures-2009/bib/pagh01cuckoo.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

@ -42,27 +42,32 @@
* [Towards a Next Generation Data Center Architecture: Scalability and Commoditization](http://research.microsoft.com/pubs/79348/presto27-greenberg.pdf)
## Hosted Papers
* :scroll: [A Solution to the Network Challenges of Data Recovery in Erasure-coded Distributed Storage Systems: A Study on the Facebook Warehouse Cluster](network-challenges-of-data-recovery-in-erasure-coded-distributed-storage-systems.pdf)
* :scroll: [Bigtable: A Distributed Storage System for Structured Data](bigtable-a-distributed-storage-system-for-structured-data.pdf)
* :scroll: [Database Metatheory: Asking Big Queries](database-metatheory--asking-the-big-queries.pdf)
* :scroll: [Dynamo: Amazons Highly Available Key-value Store](dynamo-amazons-highly-available-key-value-store.pdf)
* :scroll: [Elle: Inferring Isolation Anomalies from Experimental Observations](elle-inferring-isolation-anomalies-from-experimental-observations.pdf)
* :scroll: [Flat Datacenter Storage](flat-datacenter-storage.pdf)
* :scroll: [Freenet: A Distributed Anonymous Information Storage and Retrieval System](freenet-a-distributed-anonymous-information-and-retrieval-system.pdf)
* :scroll: [Megastore: Providing Scalable, Highly Available Storage for Interactive Services](megastore-providing-scalable-highly-available-storage-for-interactive-services.pdf)
* :scroll: [The Google File System](the-google-file-system.pdf)
* :scroll: [A Solution to the Network Challenges of Data Recovery in Erasure-coded Distributed Storage Systems: A Study on the Facebook Warehouse Cluster](network-challenges-of-data-recovery-in-erasure-coded-distributed-storage-systems.pdf)
* :scroll: [Megastore: Providing Scalable, Highly Available Storage for Interactive Services](megastore-providing-scalable-highly-available-storage-for-interactive-services.pdf)
* :scroll: [RADOS: A Scalable, Reliable Storage Service for Petabyte-scale Storage Clusters](rados-a-scalable-reliable-storage-service-for-petabyte-scale-storage-clusters.pdf)
* :scroll: [Spanner: Googles Globally-Distributed Database](spanner-google's-globally-distributed-database.pdf)
* :scroll: [Spartan: A distributed array framework with smart tiling](spartan-a-distributed-array-framework-with-smart-tiling.pdf)
* :scroll: [Stasis: Flexible Transactional Storage](stasis-flexible-transactional-storage.pdf)
* :scroll: [TAO: Facebooks Distributed Data Store for the Social Graph'](tao-facebook-distributed-datastore.pdf)

@ -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.

@ -1,3 +1,11 @@
# Digital Currency
* :scroll: [Bitcoin](bitcoin.pdf) * :scroll: [PeerCoin](peercoin.pdf) * :scroll: [PrimeCoin](primecoin.pdf)
## External Papers
* [Ethereum: a secure decentralized generalized transaction ledger](https://ethereum.github.io/yellowpaper/paper.pdf)
## Hosted Papers
* :scroll: [Bitcoin](bitcoin.pdf)
* :scroll: [PeerCoin](peercoin.pdf)
* :scroll: [PrimeCoin](primecoin.pdf)

@ -0,0 +1,13 @@
# Distributed File Systems
* [Sun NFS](http://www.cs.ucf.edu/~eurip/papers/sandbergnfs.pdf)
* [Google (GFS)](https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
* [Hadoop (HDFS)](https://storageconference.us/2010/Papers/MSST/Shvachko.pdf)
* [Ceph](https://www.ssrc.ucsc.edu/Papers/weil-osdi06.pdf)
* [Coda](http://www.coda.cs.cmu.edu/ljpaper/lj.html)
* [Frangipani](https://pdos.csail.mit.edu/6.824/papers/thekkath-frangipani.pdf)

@ -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)
@ -17,7 +17,7 @@
* [Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications](http://pdos.csail.mit.edu/papers/chord:sigcomm01/chord_sigcomm.pdf)
* [Kafka: a Distributed Messaging System for Log Processing](http://research.microsoft.com/en-us/um/people/srikanth/netdb11/netdb11papers/netdb11-final12.pdf)
* [Kafka: a Distributed Messaging System for Log Processing](http://notes.stephenholiday.com/Kafka.pdf)
* [Large-scale cluster management at Google with Borg](http://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/43438.pdf)
@ -31,7 +31,7 @@
* [Omega: flexible, scalable schedulers for large compute clusters](http://research.google.com/pubs/archive/41684.pdf)
* [Orleans: Distributed Virtual Actors for Programmability and Scalability] (http://research.microsoft.com/apps/pubs/default.aspx?id=210931)
* [Orleans: Distributed Virtual Actors for Programmability and Scalability](http://research.microsoft.com/apps/pubs/default.aspx?id=210931)
* [Paxos Made Live - An Engineering Perspective](http://www.cs.utexas.edu/users/lorenzo/corsi/cs380d/papers/paper2-1.pdf)
@ -49,6 +49,8 @@
* [The Byzantine Generals Problem](http://www.andrew.cmu.edu/course/15-749/READINGS/required/resilience/lamport82.pdf)
* [Hashgraph Consensus: Fair, Fast, Byzantine Fault Tolerance](https://swirlds.com/downloads/SWIRLDS-TR-2016-01.pdf)
* [:scroll:](the-chubby-lock-service-for-loosely-coupled-distributed-systems.pdf) [The Chubby Lock Service for Loosely-Coupled Distributed Systems](http://static.googleusercontent.com/media/research.google.com/en/us/archive/chubby-osdi06.pdf)
* [:scroll:](join-calculus.pdf) [The Join Calculus: a Language for Distributed Mobile Programming](http://research.microsoft.com/en-us/um/people/fournet/papers/join-tutorial.pdf)
@ -61,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)
@ -83,9 +85,9 @@
* :scroll: [Beehive: O(1) Lookup Performance for Power-Law Query Distributions in Peer-to-Peer Overlays](beehive-lookup-performance-for-power-law-query-distributions-in-peer-to-peer-overlays.pdf)
* :scroll: [Byzantine Chain Replication](bizantine-chain-replication.pdf)
* :scroll: [Byzantine Chain Replication](byzantine-chain-replication.pdf)
* :scroll: [A Byzantine Fault Tolerant Distributed Commit Protocol](bizantine-fault-tolerant-distributed-commit-protocol.pdf)
* :scroll: [A Byzantine Fault Tolerant Distributed Commit Protocol](byzantine-fault-tolerant-distributed-commit-protocol.pdf)
* :scroll: [Brewers Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services](brewers-conjecture.pdf)
@ -130,7 +132,7 @@ Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web](con
* :scroll: [Large-scale Incremental Processing Using Distributed Transactions and Notifications](large-scale-incremental-processing-using-distributed-transactions-and-notifications.pdf)
* :scroll: [Life beyond Distributed Transactions: an Apostates Opinion](life-beyoud-distributed-transactions-an-apostates-opinion.pdf)
* :scroll: [Life beyond Distributed Transactions: an Apostates Opinion](life-beyond-distributed-transactions-an-apostates-opinion.pdf)
* :scroll: [MapReduce: Simplified Data Processing on Large Clusters](mapreduce-simplified-data-processing-on-large-clusters.pdf)
@ -154,7 +156,7 @@ Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web](con
* :scroll: [Signal/Collect: Graph Algorithms for the (Semantic) Web](signal-%26-collect-graph-algorithms-for-the-\(semantic\)-web.pdf)
* :scroll: [Slution of a Problem in
* :scroll: [Slution of a Problem in
Concurrent Programming Control](solution-of-a-problem-in-concurrent-programming-control.pdf)
* :scroll: [Sparse Partitions](sparse-partitions.pdf)
@ -253,12 +255,14 @@ Full Cluster Geo-replication](tiered-replication-a-cost-effective-alternative-to
* :scroll: [Warp: Multi-Key Transactions for Key-Value Stores](../datastores/warp-multi-key-transactions-for-key-value-stores.pdf)
* :scroll: [Spartan: A distributed array framework with smart tiling](../datastores/spartan-a-distributed-array-framework-with-smart-tiling.pdf)
### Physics
* :scroll: [“On the Electrodynamics of Moving Bodies” (1905) — Einstein](../physics/on-the-electrodynamics-of-moving-bodies.pdf)
By solving the [asymmetries](http://en.wikipedia.org/wiki/Moving_magnet_and_conductor_problem) that arise in Maxwells equations, Einsteins 1905 paper set the stage for current distributed systems work by demonstrating that there is no absolute frame of reference and by providing an upper bound on the speed of communication.
### <a name="testing-verification-and-correctness"></a>Testing, Verification, and Correctness
* :scroll: [Simple Testing Can Prevent Most Critical Failures:
@ -266,5 +270,3 @@ An Analysis of Production Failures in Distributed
Data-Intensive Systems](https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf)
* :scroll: [IronFleet: Proving Practical Distributed Systems Correct](http://research.microsoft.com/pubs/255833/IronFleet-twocol.pdf)

@ -4,8 +4,18 @@
* [Auctions and bidding: A guide for computer scientists (2011)](http://www.sci.brooklyn.cuny.edu/~parsons/projects/mech-design/publications/bluffers-final.pdf) by S. Parsons, J. Rodriguez-Aguilar, M. Klein
* [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
* [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
* [The Simple Economics of Open Source (2000)](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=224008) by Josh Lerner and Jean Tirole
## Contract enforcement/principal-agent models
* [Contract Enforceability and Economic Institutions in Early Trade: The Maghribi Traders' Coalition (1993)](https://web.stanford.edu/~avner/Greif_Papers/1993%20Greif%20AER%201993.pdf) by Avner Grief
## Game theory
* [Two-person cooperative games (1950)](https://www.rand.org/content/dam/rand/pubs/papers/2005/P172.pdf) by John Forbes Nash

Binary file not shown.

@ -5,4 +5,4 @@ It can be used in the analysis of algorithms [(Wikipedia)](http://en.wikipedia.o
## Included Papers
* [:scroll:](a-theoreticians-guide-to-the-experimental-analysis-of-algorithms.pdf) [A Theoretician's Guide to the Experimental Analysis of Algorithms](http://davidsjohnson.net/papers/experguide.pdf) (David S. Johnson): An exceptionally well-written guide to correctly evaluating algorithms by experimental analysis. The techniques described in this paper do not only apply to theoreticians although the title might lead one to believe so. The examples used in this paper and specifically the method of listing straight-forward principles illustrated by pit-falls and pet peeves make for an excellent must-read for everyone intending to publish experimental algorithm results.
* :scroll: [A Theoretician's Guide to the Experimental Analysis of Algorithms](a-theoreticians-guide-to-the-experimental-analysis-of-algorithms.pdf) (David S. Johnson): An exceptionally well-written guide to correctly evaluating algorithms by experimental analysis. The techniques described in this paper do not only apply to theoreticians although the title might lead one to believe so. The examples used in this paper and specifically the method of listing straight-forward principles illustrated by pit-falls and pet peeves make for an excellent must-read for everyone intending to publish experimental algorithm results.

@ -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 worlds 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!

@ -4,18 +4,18 @@
* [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)
* [Removing Gamification from an Enterprise SNS](http://www.jennthom.com/papers/gamification.pdf)
* [Removing Gamification from an Enterprise SNS](https://dl.acm.org/doi/pdf/10.1145/2145204.2145362)
## Hosted Papers
* :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)
* :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)

@ -1,4 +1,5 @@
* [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)
> An overview for programmers and language implementors for understanding different garbage collection algorithms.
* [A LISP Garbage-Collector for Virtual-Memory Computer Systems](https://www.cs.purdue.edu/homes/hosking/690M/p611-fenichel.pdf)
* [Incremental Collection of Mature Objects](http://pdf.aminer.org/000/465/194/incremental_collection_of_mature_objects.pdf)

@ -1,13 +1,13 @@
## Gossip
If you only read one of these papers, start with the classic Demers, et al paper:
* [Epidemic Algorithms for Replicated Database Maintenance] (http://bitsavers.informatik.uni-stuttgart.de/pdf/xerox/parc/techReports/CSL-89-1_Epidemic_Algorithms_for_Replicated_Database_Maintenance.pdf)
* [Epidemic Algorithms for Replicated Database Maintenance](http://bitsavers.informatik.uni-stuttgart.de/pdf/xerox/parc/techReports/CSL-89-1_Epidemic_Algorithms_for_Replicated_Database_Maintenance.pdf)
# Peer sampling services
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)
@ -16,6 +16,6 @@ Briefly, a peer sampling service is a system that maintains a restricted set (pa
* [Epidemic Broadcast Trees](http://www.gsd.inesc-id.pt/~ler/reports/srds07.pdf)
# Failure Detectors
* [A Gossip-Style Failure Detection Service](http://ecommons.cornell.edu/bitstream/1813/7341/2/98-1687.ps)
* [The ϕ Accrual Failure Detector ](http://ddg.jaist.ac.jp/pub/HDY+04.pdf)
* [A Gossip-Style Failure Detection Service](https://ecommons.cornell.edu/bitstream/handle/1813/7341/98-1687.pdf)
* [The ϕ Accrual Failure Detector ](https://dspace.jaist.ac.jp/dspace/bitstream/10119/4784/1/IS-RR-2004-010.pdf)

@ -17,35 +17,44 @@ The included documents are
significantly better results that popular existing models. This
paper won a honorable mention at CIKM 2013.
* [:scroll:](pagerank.pdf) [Pagerank Algorithm](http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf) - Lawrence Page, Sergey Brin, Rajeev Motwani and Terry Winograd
This paper introduces the PageRank algorithm, which forms the backbone of
the present day google search engine. Pagerank operates by assessing the
number of incoming and outgoing hyper links to a given web page and ranks the
pages based on the link structure of a page. The authors also implemented
* [:scroll:](the-pagerank-citation-ranking-bringing-order-to-the-web) [The PageRank Citation Ranking: Bringing Order to the Web](http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf) - Lawrence Page, Sergey Brin, Rajeev Motwani and Terry Winograd
This paper introduces the PageRank algorithm, which forms the backbone of
the present day google search engine. Pagerank operates by assessing the
number of incoming and outgoing hyper links to a given web page and ranks the
pages based on the link structure of a page. The authors also implemented
PageRank on the backrub system (now called the Google Search
Engine) in the [Anatomy of a Large-Scale Hypertextual Web Search Engine]
Engine) in the [Anatomy of a Large-Scale Hypertextual Web Search Engine]
http://infolab.stanford.edu/~backrub/google.html which assigned page ranks to
every webpage in the world wide web. Google is currently the most commercially
sucessful generic search engine in the world.
sucessful generic search engine in the world.
* [:scroll:](ocapi-trec3.pdf) [Okapi System](http://trec.nist.gov/pubs/trec3/papers/city.ps.gz) - Stephen E. Robertson, Steve Walker, Susan Jones, Micheline Hancock-Beaulieu, and Mike Gatford
* [:scroll:](okapi-at-trec3.pdf) [Okapi at TREC3](http://trec.nist.gov/pubs/trec3/papers/city.ps.gz) - Stephen E. Robertson, Steve Walker, Susan Jones, Micheline Hancock-Beaulieu, and Mike Gatford
This paper introduces the now famous Okapi information retrieval
framework which introduces the BM25 ranking function for ranked
framework which introduces the BM25 ranking function for ranked
retrieval. It is one of the first implementations of the probabilistic
retrieval frameworks in literature. BM25 is a bag of words retrieval
retrieval frameworks in literature. BM25 is a bag of words retrieval
function. The IDF(Inverse document frequency) term can be interpreted
via information theory. If a query q appears in n(q) docs the probability
of picking a doc randomly and it containing that term :p(q) = n(q) / D,
where D is the number of documents. The information content based on
of picking a doc randomly and it containing that term :p(q) = n(q) / D,
where D is the number of documents. The information content based on
shannon's noisy channel model is = -log(p(q)) = log (D / n(q)). Smoothing
by adding a constant to both numberator and demoninator leads to IDF term
used in BM25. BM25 has been shown to be one of the best probabilistic
used in BM25. BM25 has been shown to be one of the best probabilistic
weighting schemes. While the paper was in postscript form, the committer has
changed the format to pdf as per guidelines of papers we love via ps2pdf.
* [:scroll:](hits.pdf) [Hits Algorithm](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 autho rities. 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)
* [: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)

@ -1,51 +0,0 @@
## Information Retrieval
Information retrieval is the activity of obtaining information resources relevant to an information need from a collection of information resources. (Says Wikipedia).
The included documents are
* [:scroll:](graph_of_word_and_tw_idf.pdf) [Graph of Word and TW-IDF](http://www.lix.polytechnique.fr/~rousseau/papers/rousseau-cikm2013.pdf) - Francois Rousseau & Michalis Vazirgiannis
The traditional IR system stores term-specific statistics (typically
a term's frequency in each document - which we call TF) in an index.
Such a model ignores dependencies between terms and considers a
document's terms to occur independently of each other (and is aptly
called the bag-of-words model). In this paper the authors use a
statistic that uses a graph representation of a document to encode
dependencies between terms and replace the TF statistic with a new
TW statistic based on the graph constructed and achieve
significantly better results that popular existing models. This
paper won a honorable mention at CIKM 2013.
* [:scroll:](pagerank.pdf) [Pagerank Algorithm](http://ilpubs.stanford.edu:8090/422/1/1999-66.pdf) - Lawrence Page, Sergey Brin, Rajeev Motwani and Terry Winograd
This paper introduces the PageRank algorithm, which forms the backbone of
the present day google search engine. Pagerank operates by assessing the
number of incoming and outgoing hyper links to a given web page and ranks the
pages based on the link structure of a page. The authors also implemented
PageRank on the backrub system (now called the Google Search
Engine) in the [Anatomy of a Large-Scale Hypertextual Web Search Engine]
http://infolab.stanford.edu/~backrub/google.html which assigned page ranks to
every webpage in the world wide web. Google is currently the most commercially
sucessful generic search engine in the world.
* [:scroll:](ocapi-trec3.pdf) [Okapi System](http://trec.nist.gov/pubs/trec3/papers/city.ps.gz) - Stephen E. Robertson, Steve Walker, Susan Jones, Micheline Hancock-Beaulieu, and Mike Gatford
This paper introduces the now famous Okapi information retrieval
framework which introduces the BM25 ranking function for ranked
retrieval. It is one of the first implementations of the probabilistic
retrieval frameworks in literature. BM25 is a bag of words retrieval
function. The IDF(Inverse document frequency) term can be interpreted
via information theory. If a query q appears in n(q) docs the probability
of picking a doc randomly and it containing that term :p(q) = n(q) / D,
where D is the number of documents. The information content based on
shannon's noisy channel model is = -log(p(q)) = log (D / n(q)). Smoothing
by adding a constant to both numberator and demoninator leads to IDF term
used in BM25. BM25 has been shown to be one of the best probabilistic
weighting schemes. While the paper was in postscript form, the committer has
changed the format to pdf as per guidelines of papers we love via ps2pdf.
* [:scroll:](hits.pdf) [Hits Algorithm](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 autho rities. 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)

@ -2,7 +2,7 @@
* :scroll: [A Mathematical Theory of Communication](a-mathematical-theory-of-communication-1948.pdf)
* [Differential Privacy](http://www.msr-waypoint.com/pubs/64346/dwork.pdf)
* [Differential Privacy](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/dwork.pdf)
- How do we quantify the exposure an individual faces from being
included in a statistical dataset? How do we anonymize aggregated
data in a way that has formal guarantees?

@ -1,16 +1,17 @@
# 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/):
> In 1991, Erik Meijer, Maarten Fokkinga, and Ross Paterson published their now-classic paper Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire. Though this paper isnt widely known outside of the functional programming community, its contributions are astonishing: the authors use category theory to express a set of simple, composable combinators, called recursion schemes, that automate the process of traversing and recursing through nested data structures. Though recursion schemes predate Meijer et. als work, this paper brings the enormous abstractive power of category theory to bear on the subject of traversing data structures—its a magnificent example of how category-theoretical concepts can bring both rigor and simplicity to day-to-day programming tasks.
* :scroll: [Equal Rights for Functional Objects or,
The More Things Change, The More They Are the Same](equal-rights-for-functional-objects.pdf)
* :scroll: [Optimal Purely Functional Priority Queues](optimal-purely-functional-priority-queues.pdf)
* :scroll: [Why Functional Programming Matters](why-functional-programming-matters.pdf)
* [:scroll:](purely-functional-data-structures.pdf) [Purely Functional Data Structures](https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf)
## Applicative Programming

@ -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)
* :scroll: [Theory in Programming Practice](https://github.com/papers-we-love/papers-we-love/blob/master/languages-theory/theory-in-programming-practice.pdf)

@ -0,0 +1,3 @@
# C++
* [Why C++ is not just an Object-Oriented Programming Language-Original](http://www.stroustrup.com/oopsla.pdf)

@ -0,0 +1,3 @@
# C
* [The Development of the C Language-Original](https://www.bell-labs.com/usr/dmr/www/chist.pdf)

@ -0,0 +1,3 @@
# Go
* [Go Lang Original Paper](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.138.6297&rep=rep1&type=pdf)

@ -0,0 +1,5 @@
# Java
* [Java Original Paper](https://pdfs.semanticscholar.org/ee07/8894734c70589cb9653e2169a4342ae02355.pdf)
* [Java Whitepaper](http://www.stroustrup.com/1995_Java_whitepaper.pdf)

@ -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)

@ -20,4 +20,4 @@ This is a cross-listing of papers related to Clojure, it's core, contrib and pop
* QuickCheck
* [QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs](http://www.cs.tufts.edu/~nr/cs257/archive/john-hughes/quick.pdf)
* [QuickCheck Testing for Fun and Profit](http://people.inf.elte.hu/center/fulltext.pdf)
* Property-Based Testing, best explained in John Hughes own talk at [ClojureWest 2014](https://www.youtube.com/watch?v=zi0rHwfiX1Q&list=PLZdCLR02grLp__wRg5OTavVj4wefg69hM).
* Property-Based Testing, best explained in John Hughes own talk [Testing the Hard Stuff and Staying Sane](https://www.youtube.com/watch?v=zi0rHwfiX1Q&list=PLZdCLR02grLp__wRg5OTavVj4wefg69hM).

@ -0,0 +1,10 @@
# Erlang
* [Making reliable distributed systems in the presence of software errors](http://erlang.org/download/armstrong_thesis_2003.pdf)
PhD thesis of Joe Armstrong, Erlangs co-inventor, describing the origins of Erlang.
* [A History of Erlang](http://webcem01.cem.itesm.mx:8005/erlang/cd/downloads/hopl_erlang.pdf) by Joe Armstrong
* [Characterizing the Scalability of Erlang VM on Many-core Processors](http://www.diva-portal.org/smash/get/diva2:392243/FULLTEXT01.pdfOn) by Jianrong Zhang
* [On the Scalability of the Erlang Term Storage](http://winsh.me/papers/erlang_workshop_2013.pdf) by David Klaftenegger, Konstantinos Sagonas, Kjell Winblad

@ -5,3 +5,13 @@
* :scroll: [Making a Fast Curry: Push/Enter vs. Eval/Apply for Higher-order Languages](making-a-fast-curry-push-enter-versus-eval-apply-for-higher-order-languages.pdf) by Simon Marlow and Simon Peyton Jones. A classic... describes well the execution model GHC uses for Haskell, and catches the brilliant authors in a design pivot from original intuition to new conclusions based on empirical data.
* :scroll: [A Poor Man's Concurrency Monad](a-poor-mans-concurrency-monad.pdf) by Koen Claessen. Paper describes how without adding any primitives to the language, you could define a concurrency monad transformer in Haskell.
* :scroll: [Parallel Generational-Copying Garbage Collection with a Block-Structured Heap](../garbage_collection/parallel_generational_copying_garbage_collection_with_a_block_structured_heap.pdf). In Haskell, data immutability forces us to produce a lot of temporary data but also helps to collect this garbage rapidly. This paper explains how the Glasgow Haskell Compiler accomplishes this task in a simple, yet effective, manner with no programmer intervention.
* [Notions of Computation and Monads](https://ac.els-cdn.com/0890540191900524/1-s2.0-0890540191900524-main.pdf?_tid=45497e1c-b5c9-11e7-963f-00000aacb361&acdnat=1508526351_2f3bf288ce0f81ff89fb10ece92eeb9e) by Eugenio Moggi. One of the canonical references for Monads in the functional paradigm. It relates the semantics of computations to equivalences of programs for various notions of computations.
* [The Essence of Functional Programming](https://page.mi.fu-berlin.de/scravy/realworldhaskell/materialien/the-essence-of-functional-programming.pdf) by Philip Wadler. This paper uses monads to structure functional programs in Haskell. A very good reference for understanding monads and more generally in the context of programming languages.
* [Monad Transformers and Modular Interpreters](http://haskell.cs.yale.edu/wp-content/uploads/2011/02/POPL96-Modular-interpreters.pdf) by Sheng Liang, Paul Hudak and Mark Jones. Canonical paper on Monad Transformers: the canonical way in which to combine monads and the basis of the popular mtl Haskel library.
* [Extensible Effects: An Alternative to Monad Transformers](http://okmij.org/ftp/Haskell/extensible/exteff.pdf) by Oleg Kiselyov, Amr Sabry and Cameron Swords. A popular position paper introducing algebraic effects as an alternative to Monad Transformers. Effects are modelled using type level Open Unions of Effect Sets (one for each effect) with the Free Monad interpretation of Algebraic Effects. Is the basis for the extensible effects library.
* [Freer Monads, More Extensible Effects](http://okmij.org/ftp/Haskell/extensible/more.pdf) by Oleg Kiselyov and Hiromi Ishii. An extension of the extensible-effects library that removes the Functor constraint on the Free Monad Type.
* [Data types a la carte](http://www.cs.ru.nl/~W.Swierstra/Publications/DataTypesALaCarte.pdf) by Wouter Swierstra. Popular paper on using smart constructors and injection operators in order to solve Wadler's expression problem. Also a canonical method of developing algebraic effects by using effect Functors, see Wu, Shrijvers and Hinze(below).
* [Effect Handlers in Scope](http://www.cs.ox.ac.uk/people/nicolas.wu/papers/Scope.pdf) by Nicolas Wu, Tom Shrijvers and Ralf Hinze. Very interesting paper on developing algebraic effects, and handlers a la carte. Extends Swierstra's work by introducing higher order syntax to handle the interaction of effects (such as state and exceptions where errors backtrack the state).
* [Fusion for Free: Efficient Algebraic Handlers](https://people.cs.kuleuven.be/~tom.schrijvers/Research/papers/mpc2015.pdf) by Nicolas Wu and Tom Shrijvers. Under the Interpretation of effectful computations as Free Monad abstract syntax trees and handlers as folds, this paper introduces Term Monads to folds in order to enable fold fusion. The handlers may then be combined into a single fold and inlined by GHC to provide performance that rivals, and in some cases, outperforms extensible effects and mtl libraries (proofs and tests included).
* [Handlers In Action](http://homepages.inf.ed.ac.uk/slindley/papers/handlers.pdf) by Ohad Kammar, Sam Lindley and Nicolas Oury. A popular position paper and basis of a Haskell library to develop algebraic effects and handlers. The template Haskell library supports open handlers by using type families instead of co-product functors a la carte.
* [Composing Fractals](http://web.cecs.pdx.edu/~mpj/pubs/composing-fractals.pdf) by Mark P. Jones. This paper describes a simple but flexible family of Haskell programs for drawing pictures of fractals such as Mandelbrot and Julia sets. Its main goal is to showcase the elegance of a compositional approach to program construction, and the benefits of a clean separation between different aspects of program behavior.

Binary file not shown.

@ -1,19 +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](https://www.researchgate.net/publication/29467751_Top_10_algorithms_in_data_mining)
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)
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.
## Hosted Papers
@ -29,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.

@ -0,0 +1,48 @@
## Mathematics
* :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 havent 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), Milnors 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'

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save