Dickinson will invite students back for the spring. Campus buildings are closed and face coverings are required on campus.
Full contact information
Office hours for Spring 2021
Current courses: COMP132 , COMP314
John MacCormick has degrees in mathematics from the University of Cambridge and the University of Auckland, and a doctorate in computer vision from the University of Oxford. He was a research fellow at Linacre College, Oxford from 1999-2000, a research scientist at HP Labs from 2000-2003, and a computer scientist with Microsoft Research from 2003-2007. Since 2007, Dr. MacCormick has been a professor of computer science at Dickinson College. He is the author of three books, including Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers and What Can Be Computed?: A Practical Guide to the Theory of Computation. Dr. MacCormick has filed over a dozen US patents on novel computer technologies and is the author of numerous peer-reviewed articles; his Nine Algorithms book has been translated into eight languages. Dr. MacCormick's work spans several sub-fields of computer science, including computer vision, large-scale distributed systems, computer science education, and the public understanding of computer science.
Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers has been re-released in a new 2020 edition for the Princeton Science Library series, together with an audio edition narrated by Quentin Cooper.
This is an undergraduate textbook for a course on Theory of Computation. The key characteristic of the book is that it is designed to be uniquely accessible to undergraduates, focussing on real computational problems using real computer programs as the computational model. Please see the official What Can Be Computed? website.
Here are direct links to ancillary materials for the book, which are released under the Creative Commons Attribution 4.0 International License:
The book also has a page at Princeton University Press, and is available from the usual sources such as Barnes & Noble and Amazon.
What is this book about? It explains how your cell phone, laptop, tablet, and other computers do the amazing things they do. How they can search the entire web in a fraction of a second. How they can transmit vast amounts of data over unreliable wireless connections, without making a single error. How they can recognize your speech and handwriting. And many others.
The book assumes no knowledge of computer science. It's designed to be read and enjoyed by anyone who's curious about how our computing devices manage to be so smart. Interested? Please, peek inside, or check out the table of contents. There's more good stuff at the 9 Algorithms Facebook page, and the book's official page at Princeton University Press. If you want to buy it, 9 Algorithms is available as an eBook or hardcover from all the usual suspects, including Barnes & Noble and Amazon. And of course there's a YouTube video:
Some people were kind enough to say nice things about the book; here are two of them:
9 Algorithms received an Honorable Mention for the 2012 Award for Best Professional/Scholarly Book in Computing & Information Sciences, awarded by the Association of American Publishers.
9 Algorithms has been translated (or in some cases, is currently being translated) into the following eight languages: traditional Chinese, simplified Chinese, Japanese, Korean, Russian, Italian, Greek, and Turkish.
Media coverage of the book includes:
Stochastic Algorithms for Visual Tracking: Probabilistic Modelling and Stochastic Algorithms for Visual Localisation and Tracking
Springer, 2002. 174 pages.
This technical monograph describes a mathematical and computational framework for implementing algorithms that track moving objects in video. The approach emphasizes the use of probability distributions to model knowledge of the object state. A key consideration is how to approximate, store, and efficiently update such distributions when the dimensionality of the object state is large.
Spring 2021:
Fall 2020:
Spring 2019:
Fall 2018:
Spring 2018:
Fall 2017:
Spring 2017:
Fall 2016:
Spring 2016:
Fall 2015:
Spring 2015:
Fall 2014:
Spring 2014:
Fall 2013:
Spring 2013:
Fall 2012:
Spring 2011:
Fall 2010:
Spring 2010:
Fall 2009:
Spring 2009:
Fall 2008:
Spring 2008:
Fall 2007:
My computer science research is motivated by the fundamental questions at the heart of artificial intelligence and computational theory: what problems can computers solve, and to what extent can computer programs exhibit the type of intelligence we recognize as human? I am currently working on modern reinterpretation of these questions based on the phenomenal advances we have seen in AI during the 21st century. This project takes the form of a book manuscript targeted at a general audience, entitled AI Alive: Minds, Brains, and the Modern Revolution in Artificial Intelligence.
In recent years, I have also investigated new approaches to teaching theory of computation to an undergraduate audience—approaches described in the book What Can Be Computed? and a 2020 article in Communications of the ACM.
In addition to these recent strands of research, I enjoy working on a wide variety of problems in computer science. These include computer vision—that is, getting computers to understand images and video—large-scale distributed data storage systems, and pair programming techniques for undergraduate computer science education.
Complementing this technical research, I have another personal goal: the public understanding of computer science in general and algorithmic thinking in particular. Efforts to achieve this type of public understanding led to the book Nine Algorithms That Changed the Future.
Here are a few of the questions my research has attempted to address over the years:
To get a more complete picture of my research, please take a look at my publications and patents. You may also be interested in the list of talks I have given, and a separate section describing research with undergraduate students below.
Distributed Detection With Diagnosis.
Paul Barham, Richard Black, Moises Goldszmidt, Rebecca Isaacs, John MacCormick, Richard Mortier. Filed October 2006.
Data replication in a distributed system.
William R. Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath, Lidong Zhou. Filed June 2006.
Searchable storage system.
William R. Hoffman, Marcus J. Jager, John P. MacCormick, Kristof Roomp, Chandramohan A. Thekkath. Filed June 2006.
Scheduling of index merges.
John P. MacCormick, Frank D. McSherry. Filed January 2006, issued March 2010.
Balanced prefetching exploiting structured data.
John P. MacCormick, Nicholas Charles Murphy, Chandramohan A. Thekkath, Lidong Zhou. Filed September 2005.
Method and system for estimating the three dimensional position of an object in a three dimensional physical space.
Adrian E. Broadhurst, Michael Harville, John P. MacCormick, Donald O. Tanguay. Filed in April 2005.
Systems and methods for structuring distributed fault-tolerant systems.
John MacCormick, Chandu Thekkath, Lidong Zhou. Filed January 2005.
Efficient Recovery of Replicated Data Items.
John MacCormick, Chandu Thekkath, Lidong Zhou. Filed December 2004, issued June 2010.
Method and apparatus for estimating time delays in systems of communicating nodes.
Marcos K. Aguilera, John MacCormick. Filed in October 2004, issued April 2006.
Method and system for renaming consecutive keys in a B-tree.
John MacCormick. Filed in April 2004.
System and method for preventing replay attacks.
Marcos K. Aguilera, Mark Lillibridge, John MacCormick. Filed in June 2003.
Method and system for securing block-based storage with capability data.
Marcos K. Aguilera, Minwen Ji, Mark David Lillibridge, John Philip MacCormick, Erwin Oertli, David Godbe Andersen, Michael Burrows, Timothy P. Mann, Chandramohan A. Thekkath. Filed May 2003.
Method and system for managing access control.
Marcos K. Aguilera, Minwen Ji, Mark David Lillibridge, John Philip MacCormick, Erwin Oertli, David Godbe Andersen, Michael Burrows, Timothy P. Mann, Chandramohan A. Thekkath. Filed May 2003.