Top Five

  • The fundamentals of contempary culture and a step away from postmodern. And the discussion of the idea of the copy or simulation. It very important today with the amount of digital exhaust or data we are all creating.

  • We live in a time where personal data and big data are crossing over. Where we are today as individual with this and where we are collectively as a society is possibly becoming one of the most important topic of this century. This book for me is a must read.

  • There are always grand problems society needs to solve. But how does one train themselves to try and work on these types of topics? One of the great mathematicians of our age outlines his style of thinking by which great ideas are conceived. Such an important book for me personally.

  • His work in this area will challenge anyone who wishes to understand the world in which we live as people understand an interact with it.

  • Goffman's insight reveals human character to be not fixed or stable, but liquid and consciously maintained. What does this mean when we are considering building a personal wearable computer? The analysis of the structure of our social interactions might help us change the way we think or design computers today.

Geographies: Understanding Space and Place

  • Lefebvre, Henri, and Donald Nicholson-Smith. The production of space. Vol. 142. Blackwell: Oxford, 1991

  • Ingold, Tim. The Perception of the Environment. New York: Routledge, 2000.

  • Thrift, Nigel. Non-Representational Theory: Space, Politics, Affect. London: Routledge, 2008

  • Lorimer, Hayden. “Cultural Geography: Non-Representational Conditions and Concerns.” Progress in Human Geography 32, no. 4 (2008): 551–59.

  • Hall, Edward. The Hidden Dimension. New York: Doubleday, 1966

  • Hecht, Brent, and David A. Shamma. "A crash course in modern geography for HCI researchers and practitioners." In CHI'14 Extended Abstracts on Human Factors in Computing Systems, pp. 1031-1032. 2014

  • The politics of truth: History, colonialism, taxonomies, and modernity

  • Rancière, Jacques. "The aesthetic dimension: Aesthetics, politics, knowledge." Critical Inquiry 36, no. 1 (2009): 1-19

  • Butler, Judith. Frames of war: When is life grievable?. Verso Books, 2016.

  • Fausto-Sterling, Anne. "Gender, Race, and Nation The Comparative Anatomy of." Skin deep, spirit strong: The black female body in American culture (2002): 66.

  • Bowker, G., & Star, S. L. (1999). Sorting things out. Classification and its consequences, 4.

  • Hobsbawm, Eric, and Terence Ranger, eds. The invention of tradition. Cambridge University Press, 2012.

Memory: Commemoration, memorials, and forgetting

  • Small, Scott A. Forgetting: The Benefits of Not Remembering. Crown Publishing Group (NY), 2021.

  • Genova, Lisa. Remember. Simon and Schuster, 2021.

  • Craik, Kenneth James Williams. The nature of explanation. Vol. 445. CUP Archive, 1952.

  • Young, James E. "The counter-monument: memory against itself in Germany today." Critical inquiry 18, no. 2 (1992): 267-296.

  • Hawkins, Peter S. "Naming names: The art of memory and the NAMES Project AIDS quilt." Critical inquiry 19, no. 4 (1993): 752-779.

Collectives: Emergent behaviors, belonging, cooperation, and collaboration

  • Marsh, Leslie, and Christian Onof. "Stigmergic epistemology, stigmergic cognition." Cognitive Systems Research 9, no. 1-2 (2008): 136-149

  • Anderson, Benedict. Imagined communities: Reflections on the origin and spread of nationalism. Verso books, 2006.

  • Brey, P. (2006). Evaluating the social and cultural implications of the Internet. Acm Sigcas Computers and Society, 36(3), 41-48.

  • Ahmed, S. “Collective Feelings: Or the Impressions Left by Others.” Theory Culture and Society 21 (2004): 25–42.

  • Pentland, Alex, and Tracy Heibeck. "Honest signals." MIT Press (2008).

  • Star, Susan Leigh, and James R. Griesemer. "Institutional ecology, translations' and boundary objects: Amateurs and professionals in Berkeley's Museum of Vertebrate Zoology, 1907-39." Social Studies of Science 19, no. 3 (1989): 387-420.

Cybernetics: Ecologies, networks, and interactions

  • Latour, Bruno. Reassembling the Social: An Introduction to Actor-Network-Theory. Oxford: Oxford Univ. Press, 2005.

  • Ingold, Tim. "The temporality of the landscape." World Archaeology 25, no. 2 (1993): 152-174.

  • Ingold, Tim. "14 Designing Environments for Life." Anthropology and nature (2013): 233.

  • Kockelman, Paul. Agent, person, subject, self: A theory of ontology, interaction, and infrastructure. Oxford University Press, 2013. 14

  • Oxman, Neri. "Age of entanglement." Journal of Design and Science (2016). 14

  • Duranti, A., & Goodwin, C. (Eds.). Rethinking context: Language as an interactive phenomenon (Vol. 11). Cambridge University Press, 1992 15

  • Dunn, Winnie, Catana Brown, and Ann McGuigan. "The ecology of human performance: A framework for considering the effect of context." The American Journal of Occupational Therapy 48, no. 7 (1994): 595-607.

Phenomenology: Space, time, and being

  • Duranti, Alessandro. "Husserl, intersubjectivity and anthropology." Anthropological theory 10, no. 1-2 (2010): 16-35. 16

  • Merleau-Ponty, Maurice. "Phenomenology of perception." Translated by Colin Smith. New (1965). 16

  • Heidegger, Martin. Being and time. Suny Press, 2010.

The politics and ethics of mapping

  • Pickles, John. A History of Spaces: Cartographic Reason, Mapping and the Geo-Coded World. London: Routledge, 2004. 

  • Ramaswamy, Sumathi. The Lost Land of Lemuria: Fabulous Geographies, Catastrophic Histories. Berkeley: University of California Press, 2004. 

  • Roberts, Les, ed. Mapping cultures: Place, practice, performance. Springer, 2012.

Embodied cognition: Mind, body, and world

  • Clark, Andy. Being there: Putting brain, body, and world together again. MIT Press, 1998. 18

  • Brooks, Rodney A. "Intelligence without representation." Artificial intelligence 47, no. 1-3 (1991): 139-159. 18

  • Johnson, Mark. Embodied Mind, Meaning, and Reason: How Our Bodies Give Rise to Understanding. Chicago: Univ. of Chicago Press, 2017.

Virtual reality and computing: at the intersection of the technical, social, and environmental

  • Kockelman, Paul. The art of interpretation in the age of computation. Oxford University Press, 2017. 19

  • Dijkstra, Edsger W. "The humble programmer." Communications of the ACM 15, no. 10 (1972): 859-866. 19

  • Dourish, Paul. "What we talk about when we talk about context." Personal and ubiquitous computing 8, no. 1 (2004): 19-30. 19

  • Doan, AnHai, Alon Halevy, and Zachary Ives. Principles of data integration. Elsevier, 2012. 19

  • Seaver, Nick. "What should an anthropology of algorithms do?." Cultural anthropology 33, no. 3 (2018): 375-385. 19

  • Stephanidis, C., Salvendy, G., Antona, M., Chen, J. Y., Dong, J., Duffy, V. G., ... & Zhou, J. (2019). Seven HCI grand challenges. International Journal of Human–Computer Interaction, 35(14), 1229-1269.

Databases

  • Lemahieu, W., Broucke, S. van den and Baesens, B. (2018) Principles of database management. Cambridge University Press.

Digital Electronics

  • Harris, D.M. and Harris, S.L. (2013). Digital design and computer architecture. Morgan Kaufmann (2nd ed.). The first edition is still relevant.

  • Katz, R.H. (2004). Contemporary logic design. Benjamin/Cummings. The 1994 edition is more than sufficient.

  • Hayes, J.P. (1993). Introduction to digital logic design. Addison-Wesley.

Discrete Mathematics

  • Biggs, N.L. (2002). Discrete mathematics. Oxford University Press (Second Edition).

  • Davenport, H. (2008). The higher arithmetic: an introduction to the theory of numbers. Cambridge University Press.

  • Hammack, R. (2013). Book of proof. Privately published (Second edition). Available at:

  • http://www.people.vcu.edu/ rhammack/BookOfProof/index.html

  • Houston, K. (2009). How to think like a mathematician: a companion to undergraduate mathematics. Cambridge University Press.

  • Kozen, D.C. (1997). Automata and computability. Springer.

  • Lehman, E.; Leighton, F.T.; Meyer, A.R. (2014). Mathematics for computer science. Available on-line.

  • Velleman, D.J. (2006). How to prove it: a structured approach. Cambridge University Press (Second Edition).

Foundations of Computer Science

  • John Whitington. OCaml from the Very Beginning. (http://ocaml-book.com).

  • Okasaki, C. (1998). Purely functional data structures. Cambridge University Press.

Introduction to Graphics

  • Shirley, P. and Marschner, S. (2009). Fundamentals of Computer Graphics. CRC Press (3rd ed.).

  • Foley, J.D., van Dam, A., Feiner, S.K. and Hughes, J.F. (1990). Computer graphics: principles and practice. Addison-Wesley (2nd ed.).

  • Kessenich, J.M., Sellers, G. and Shreiner, D (2016). OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.5 with SPIR-V, [seventh edition and later]

  • Hainich, R. and Bimber, O. (2016) Displays: Fundamentals and Applications. CRC Press (2nd ed.).

  • Boreskov, A. and Shikin, E. (2013) Computer Graphics: From Pixels to Programmable Graphics Hardware. CRC Press.

  • Reinhard, E., et. al. (2010) High Dynamic Range Imaging: Acquisition, Display, and Image-Based Lighting. Morgan Kaufmann (2nd ed.).

Object-Oriented Programming

No single text book covers all of the topics in this course. For those new to OOP, the best introductions are usually found in the introductory programming texts for OOP languages (such as Java, Python or C++). Look for those that are for people new to programming rather than those that are designed for programmers transitioning between languages (the Deitel book is highlighted for this reason). The web is also a very useful resource -- look for Java tutorials.

  • Deitel, H.M. and Deitel, P.J. (2009). Java: How to Program. Prentice Hall (8th ed.).

  • Flanagan, D. (2005). Java in a nutshell : a desktop quick reference. O’Reilly (5th ed.).

  • Flanagan, D. (2004). Java examples in a nutshell : a tutorial companion to Java in a nutshell. O’Reilly (3rd ed.).

  • Gamma, E., Helm, R., Johnson, R. and Vlissides, A. (1995). Design patterns: elements of reusable object-oriented software. Addison-Wesley.

  • Bloch, J. and Gafter, N. (2005). Java puzzlers. Addison-Wesley.

Algorithms

  • Cormen, T.H., Leiserson, C.D., Rivest, R.L. and Stein, C. (2009). Introduction to Algorithms. MIT Press (3rd ed.). ISBN 978-0-262-53305-8

  • Sedgewick, R., Wayne, K. (2011). Algorithms. Addison-Wesley. ISBN 978-0-321-57351-3.

  • Kleinberg, J. and Tardos, É. (2006). Algorithm design. Addison-Wesley. ISBN 978-0-321-29535-4.

  • Knuth, D.A. (2011). The Art of Computer Programming. Addison-Wesley. ISBN 978-0-321-75104-1.

Machine Learning and Real-world Data

  • Jurafsky, D. and Martin, J. (2008). Speech and language processing. Prentice Hall.

  • Easley, D. and Kleinberg, J. (2010). Networks, crowds, and markets: reasoning about a highly connected world. Cambridge University Press.

Operating Systems

  • Bacon, J. and Harris, T. (2003). Operating systems. Addison-Wesley (3rd ed.).

  • Silberschatz, A., Peterson, J.L. and Galvin, P.C. (2008). Operating systems concepts. Wiley (8th ed.).

  • Anderson, T. and Dahlin, M. (2014). Operating Systems: Principles and Practice. Recursive Books (2nd ed.).

  • Leffler, S. (1989). The design and implementation of the 4.3BSD Unix operating system. Addison-Wesley.

  • McKusick, M.K., Neville-Neil, G.N. and Watson, R.N.M. (2014) The Design and Implementation of the FreeBSD Operating System. Pearson Education. (2nd ed.).

Interaction Design

  • Preece, J., Rogers, Y. and Sharp, H. (2015). Interaction design. Wiley (4th ed.).

Introduction to Probability

  • Ross, S.M. (2014). A First course in probability. Pearson (9th ed.).

  • Bertsekas, D.P. and Tsitsiklis, J.N. (2008). Introduction to probability. Athena Scientific.

  • Grimmett, G. and Welsh, D. (2014). Probability: An Introduction. Oxford University Press (2nd ed.).

  • Dekking, F.M., et. al. (2005) A modern introduction to probability and statistics. Springer.

Software and Security Engineering

My Favourite Programming Books

  • Kernighan, B.W. and Ritchie, D.M. (1988). The C programming language. Prentice Hall (2nd ed.).

  • Marijn Haverbeke. Eloquent JavaScript : A Modern Introduction to Programming. San Francisco, No Starch Press, 2019.

  • Shaw, Zed A. Learn Python 3 the Hard Way. Addison-Wesley Professional, 26 June 2017.