Cover of Data Structures and Algorithms in Java.

Learn Java in N Games

My project to provide classroom-ready game programming assignments for Java in CS1 or CS2 courses is at These activities have been peer reviewed at EngageCSEdu. Three of them (“Beetle”, “Shut the Box”, and “Towers of Hanoi”) won an EngageCSEdu Engagement Excellence Award in 2016.


Drake, P. (2006). Data Structures and Algorithms in Java. Prentice Hall.

Disclaimer: The program code is made available under the following copyright notice: Copyright 2006, by Pearson Education, Inc. by Drake; all rights reserved. Permission is granted for use in non-commercial applications provided this copyright notice remains intact and unchanged. The author and publisher make no warranty of any kind, expressed or implied, with regard to these programs. The author and publisher shall not be liable in any event for incidental or consequential damages in connection with, or arising out of the furnishing, performance of use of this program code.

Computer Go

The bulk of my research has been on writing artificially intelligent programs to play the classical Asian game of Go. The Orego project has its own page.

Other non-Go-related publications and presentations

(See the Orego page for computer Go publications.)

Best Student Poster, CCSC-NW 2017

Mullins, J., Richardson, S., and Drake, P. (2017). "Identifying Clouds With Convolutional Neural Networks." Poster presented at the 2017 John Rogers Summer Research Conference at Lewis & Clark College and at the Consortium for Computer Sciences in Colleges Northwest Conference 2017 at Washington State University Tri-Cities.

Mutch, T., Molnar, N., Cushing, J.B., Bailey, M., Lach, D., Zanocco, C., Orr, G., and Drake, P. (2017). "From Visualization to Visual Analytics for Environmental Science." VisWeek 2017, October 1-6, 2017, Phoenix, AZ.

Zanocco, C., Cushing, J.B., Bailey, M., Lach, D., Molnar, N., Mutch, T., Orr, J., and Drake, P. VISTAS:  "Visualization of Terrestrial  & Aquatic Systems – Exploring data on topographically complex landscapes." Invited presentation, Exploring Visualization Tools for Communicating Natural Resource Management Information (Visualization Tools Forum sponsored by the USFS Region 6 Landscape Architecture and Ecology Programs and the USFS Pacific Northwest Research Station), Portland State University Visualization Studio.  April 19, 2017.

Orr, G. and Drake, P. (2016) "A Brief Overview of Machine Learning With Python." Tutorial presentation at Consortium for Computing Sciences in Colleges Northwestern Regional Conference, Lewis & Clark College, Portland, OR.

Bunde, D., Mache, J., and Drake, P. (2014). "Adding parallel Haskell to the undergraduate programming language course". In The Journal of Computing Sciences in Colleges 30:1.

Drake, P. and Goadrich, M. (2014). "Learn Java in N Games". Workshop at the 45th ACM Technical Symposium on Computer Science Education (SIGCSE 2014).


Drake, P. (2011). "Learn Java in N Games". Workshop at Consortium for Computing Sciences in Colleges Northwestern Regional Conference.

Drake, P. and Sung, K. (2011). “Teaching Introductory Programming with Popular Board Games”. In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education (SIGCSE 2011).

Drake, P. and Kerr, N. (2006). “Developing a Computer Strategy Game in an Undergraduate Course in Software Development Using Extreme Programming”. In The Journal of Computing Sciences in Colleges 22:2.

Drake. P., Orr, G., and Cushing, J. (2006). “Games in the Computer Science Classroom.” Panel presented at the Eighth Annual Consortium for Computing Sciences in Colleges Northwestern Conference.

Drake, P. (2005). “Genetic Programming: Finding Algorithms by Evolution.”  Reed College Mathematics Talk.

Clearfield, M., Mix, K., and Drake, P. (2001). “Infants’ discrimination of small and large sets.” In K. Mix (Chair), The role of overall amount in early quantification. Symposium conducted at the biennial meeting of the Society for Research in Child Development, Minneapolis.

Drake, P., Mix, K., and Clearfield, M. (2000). “Precursors to Number: Making the Most of Continuous Amount.” In L. Gleitman and A. Joshi (Eds.), Proceedings of the Twenty-Second Annual Conference of the Cognitive Science Society, Lawrence Erlbaum Associates. 

Drake, P. (1996). “Multitask Constructive Induction.” In M. Gasser (Ed.), Online Proceedings of the 1996 Midwest Artificial Intelligence and Cognitive Science Conference.