Book cover

References

Chapter 1

G. Strang. Introduction to Linear Algebra. Wellesley Cambridge Press, fourth edition, 2009.

W. Rudin. Principles of Mathematical Analysis. McGraw-Hill, third edition, 1976.

W. F. Trench. Introduction to Real Analysis. Pearson, 2003.

G. Thomas, M. D. Weir, and J. Hass. Thomas’ Calculus. Addison Wesley, twelfth edition, 2009.

W. Feller. An Introduction to Probability Theory and its Application, volume 1. John Wiley and Sons, third edition, 1968.

Sheldon M. Ross. Introduction to Probability Models. Academic Press, tenth edition, 2009.

A. DasGupta. Fundamentals of Probability: A First Course. Springer, 2010.

G. Casella and R. L. Berger. Statistical Inference. Duxbury, second edition, 2001.

G. A. Seber and A. J. Lee. Linear Regression Analysis. Wiley Interscience, 2003.

M. Kutner, C. Nachtsheim, J. Neter, and W. Li. Applied Linear Statistical Models. McGraw-Hill, fifth edition, 2004.

B. Schölkopf and A. Smola. Learning with Kernels. MIT Press, 2002.

C. D. Manning and H. Schutze. Foundations of Statistical Natural Language Processing. MIT Press, 1999.

C. M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.

K. P. Murphy. Machine Learning: A Probabilistic Perspective. MIT Press, 2012.

Chapter 2

D. A. Patterson and J. L. Hennessy. Computer Organization and Design. Morgan Kaufmann, fourth edition, 2011.

J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, fifth edition, 2011.

D. E. Knuth. Art of Computer Programming, Volume 1: Fundamental Algorithms. Addison Wesley, third edition, 1997.

D. E. Knuth. The Art of Computer Programming, Volume 1, Fascicle 1: MMIX - A RISC Computer for the New Millennium. Addison Wesley, 2005.

Chapter 3

A. Silberschatz, P. B. Galvin, and G. Gagne. Operating System Concepts. Wiley, eighth edition, 2008.

M. G. Sobell. Practical Guide to Ubuntu Linux. Prentice Hall, third edition, 2010.

C. Newham. Learning the BASH Shell. O’Reilly Media Inc., third edition, 2005.

Chapter 4

B. Stroustrup. The C++ Programming Language. Addison-Wesley, fourth edition, 2013.

S. B. Lippman, J. Lajoie, and B. Moo. C++ Primer. Addison-Wesley, fifth edition, 2012.

N. M. Josuttis. The C++ Standard Library: A Tutorial and Reference. Addison-Wesley, second edition, 2012.

Chapter 5

C. Horstamann and G. Cornell. Core Java, volume 1. Prentice Hall, ninth edition, 2012.

C. Horstamann and G. Cornell. Core Java, volume 2. Prentice Hall, ninth edition, 2013.

J. Bloch. Effective Java: 2nd Edition. 2008.

Chapter 6

C. M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.

K. P. Murphy. Machine Learning: A Probabilistic Perspective. MIT Press, 2012.

Anil K. Jain and Richard C. Dubes. Algorithms for Clustering Data. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1988. ISBN 0-13-022278-X.

Leonard Kaufman and Peter J. Rousseeuw. Finding groups in data : an introduction to cluster analysis. Wiley series in probability and mathematical statistics. Wiley, New York, 1990. ISBN 0-471-87876-6. A Wiley-Interscience publication.

M. Lutz. Programming Python. O’Reilly Media Inc., fourth edition, 2011.

M. Lutz. Learning Python. O’Reilly Media Inc., fifth edition, 2013.

W. McKinney. Python for data analysis. O’Reilly Media Inc., 2013.

S. Bird, E. Klein, and E. Loper, editors. Natural Language Processing with Python. O’Reilly Media Inc., 2009.

Chapter 7

J. Fox. Aspects of the social organization and trajectory of the R project. The R Journal, 1/2, 2009.

Chapter 8

L. Wilkinson. The Grammer of Graphics. Springer, second edition, 2005.

W. S. Cleveland. The Elements of Graphing Data. Hobart Press, 1985.

W. S. Cleveland. Visualizing Data. Hobart Press, 1993.

J. W. Tuckey. Exploratory Data Analysis. Addison Wesley, 1977.

D. Sarkar. Lattice: Multivariate Data Visualization with R. Springer, 2008.

Chapter 9

H. Wickham. Reshaping data with the reshape package. Journal of Statistical Software, 210 (12), 2007.

H. Wickham. The split-apply-combine strategy for data analysis. Journal of Statistical Software, 400 (1), 2011.

R. J. A. Little and D. B. Rubin. Statistical Analysis with Missing Data. Wiley, second edition, 2002.

P. J. Huber. Robust Statistics. Wiley, 1981.

R. Maronna, D. R. Martin, and V. J. Yohai. Robust Statistics: Theory and Methods. Wiley, 2006.

M. Kutner, C. Nachtsheim, J. Neter, and W. Li. Applied Linear Statistical Models. McGraw-Hill, fifth edition, 2004.

P. Spector. Data Manipulation with R. Springer, 2008.

Chapter 10

Maged M. Michael and Michael L. Scott. Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In Proceedings of the Fifteenth Annual ACM Symposium on Principles of Distributed Computing, PODC ’96, pages 267–275, New York, NY, USA, 1996. ACM. ISBN 0-89791-800-2. doi: 10.1145/248052.248106. URL http://doi.acm.org/10.1145/248052.248106.

B. Goetz and T. Peierls. Java Concurrency in Practice. Addison-Wesley, 2006. ISBN 9780321349606.

J. Bloch. Effective Java: 2nd Edition. 2008.

F. Junqueira and B. Reed. ZooKeeper: Distributed Process Coordination. O’Reilly Media, Incorporated, 2013. ISBN 9781449361303.

Chapter 11

D. Ariely. Predictably Irrational, Revised and Expanded Edition: The Hidden Forces That Shape Our Decisions. Business & economics. HarperCollins, 2010. ISBN 9780061353246.

E. Catmull and A. Wallace. Creativity, Inc.: Overcoming the Unseen Forces That Stand in the Way of True Inspiration. Random House Publishing Group, 2014. ISBN 9780679644507.

R.C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Robert C. Martin series. Prentice Hall, 2009. ISBN 9780132350884.

S. McConnell. Code Complete. DV-Professional. Microsoft Press, 2009. ISBN 9780735636972.

C. Kaner, J. Bach, and B. Pettichord. Lessons Learned in Software Testing: A Context-Driven Approach. Wiley, 2011. ISBN 9781118080559.

Chapter 12

M. Bravington. Debugging without (too many) tears. The R Journal, 30 (3):0 29–32, 2003.

Chapter 13

B. Forta. Sams Teach Yourself SQL in 10 Minutes. Always Learning. Sams, 2013. ISBN 9780672336072.

R. Elmasri and S. Navathe. Fundamentals of Database Systems. Addison-Wesley, 2011. ISBN 9780136086208.

Chapter 14

J. Bentley. Programming Pearls. Pearson Education, 2016. ISBN 9780134498034.

Andrew Hunt and David Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999. ISBN 0-201-61622-X.

F.P. Brooks. The Mythical Man-Month, Anniversary Edition: Essays On Software Engineering. Pearson Education, 1995. ISBN 9780132119160.

M. Cohn. Agile Estimating and Planning. Pearson Education, 2005. ISBN 9780132703109.

David Karger, Eric Lehman, Tom Leighton, Rina Panigrahy, Matthew Levine, and Daniel Lewin. Consistent hashing and random trees: Distributed caching protocols for relieving hot spots on the world wide web. In Proceedings of the Twenty-ninth Annual ACM Symposium on Theory of Computing, STOC ’97, pages 654–663, New York, NY, USA, 1997. ACM. ISBN 0-89791-888-6. doi: 10.1145/258533.258660. URL http://doi.acm.org/10.1145/258533.258660.

R.C. Martin. Clean Architecture. Robert C. Martin. Pearson Education, 2017. ISBN 9780134494166.

M.T. Nygard. Release It!: Design and Deploy Production-ready Software. Pragmatic Bookshelf Series. Pragmatic Bookshelf, 2007. ISBN 9780978739218.

M. Howard and D. LeBlanc. Writing Secure Code. Best Practices Series. Microsoft Press, 2003. ISBN 9780735617223.

Chapter 15

Wolfram Schultz, Peter Dayan, and P. Read Montague. A neural substrate of prediction and reward. Science, 2750 (5306):0 1593–1599, 1997. ISSN 0036-8075. doi: 10.1126/science.275.5306.1593. URL http://science.sciencemag.org/content/275/5306/1593.

H. Scarlett. Neuroscience for Organizational Change: An Evidence-Based Practical Guide to Managing Change. Kogan Page, 2016. ISBN 9780749474881.

M. Feathers. Working Effectively with Legacy Code. Robert C. Martin Series. Pearson Education, 2004. ISBN 9780132931755.

W. Isaacson. Steve Jobs. Simon & Schuster, 2011. ISBN 9781451648539.

M.T. Nygard. Release It!: Design and Deploy Production-ready Software. Pragmatic Bookshelf Series. Pragmatic Bookshelf, 2007. ISBN 9780978739218.

Andrew Hunt and David Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999. ISBN 0-201-61622-X.

M. M. Lehman. Programs, life cycles, and laws of software evolution. Proceedings of the IEEE, 680 (9):0 1060–1076, Sept 1980. ISSN 0018-9219. doi: 10.1109/PROC.1980.11805.

Melissa R. Dale and Clemente Izurieta. Impacts of design pattern decay on system quality. In Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM ’14, pages 37:1–37:4, New York, NY, USA, 2014. ACM. ISBN 978-1-4503-2774-9. doi: 10.1145/2652524.2652560. URL http://doi.acm.org/10.1145/2652524.2652560.

R.C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Robert C. Martin series. Prentice Hall, 2009. ISBN 9780132350884.

D. Kahneman. Thinking, Fast and Slow. Farrar, Straus and Giroux, 2011. ISBN 9781429969352.

David N. Card and Robert L. Glass. Measuring Software Design Quality. Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1990. ISBN 0-13-568593-1.

R. W. Selby and V. R. Basili. Analyzing error-prone system structure. IEEE Transactions on Software Engineering, 170 (2):0 141–152, Feb 1991. ISSN 0098-5589. doi: 10.1109/32.67595.

S. Levy. In The Plex: How Google Thinks, Works, and Shapes Our Lives. Simon & Schuster, 2011. ISBN 9781416596714.