Zachary Butler Headshot

Zachary Butler

Interim Department Chair

Department of Computer Science
Golisano College of Computing and Information Sciences

Office Hours
Wednesday: 9:30-11:30 Thursday: 9:30-10:30 or by appointment
Office Location

Zachary Butler

Interim Department Chair

Department of Computer Science
Golisano College of Computing and Information Sciences


BS in Electrical Engineering, Alfred University; Ph.D. in Robotics, Carnegie Mellon


Zack Butler is a Professor in the Department of Computer Science at RIT. He received his Ph.D. in Robotics from Carnegie Mellon in 2000. His research interests are in the general area of cooperative autonomous systems and computer science education. His publications have appeared in such venues as the International Journal of Robotics Research and the ACM Symposium of Computer Science Education. He is currently the PI on a grant from the National Science Foundation to study the use of pencil puzzles as a problem domain for introductory computing courses, and on a previous grant, developed a team of robots to autonomously roam the department and be easily programmed by students. He has taught a variety courses from the introductory level to the graduate level, including courses in Mobile Robot Programming and Puzzles for Computing that he developed.


Personal Links
Areas of Expertise

Select Scholarship

Published Conference Proceedings
Butler, Zack, Ivona Bezakova, and Kimberly Fluet. "Qualitative Analysis of Open-ended Comments in Introductory CS Courses." Proceedings of the ACM Technical Symposium on Computer Science Education. Ed. Elizabeth Hawthorne and Manuel Perez-Quinones. New York, NY: ACM, Web.
Butler, Zack, Ivona Bezakova, and Kimberly Fluet. "Analyzing Rich Qualitative Data to Study Pencil-Puzzle-based Assignments in CS1 and CS2." Proceedings of the ACM Conference on Innovation and Technology in Computer Science Education. Ed. P Andreou. New York, NY: ACM, Web.
Taylor, Cynthia, et al. "Propagating the Adoption of CS Educational Innovations." Proceedings of the ITiCSE 2018 Companion. Ed. Guido Rossling. New York, NY: ACM, Web.
Butler, Zack and Bezakova, Ivona. "On Beyond Sudoku: Pencil Puzzles for Introductory Computer Science." Proceedings of the SIGCSE 2015. Ed. Adrienne Decker and Kurt Eiselt. Denver, CO: ACM, Web.
Butler, Zack, Rajendra Raj, and Minseok Kwon. "Integrating Highly-Capable Corobots into a Computing Curriculum." Proceedings of the Frontiers in Education. Ed. Randa Shehab, Jim Sluss, and Deborah Trytten. Oklahoma City, OK: n.p., 2013. Web.
Butler, Zack, et al. "Easily-programmable Corobots for Student Use." Proceedings of the International Conference on Advanced Robotics. Ed. Javier Ruiz de Solar. Montevideo, UY: n.p., 2013. Web.
Journal Paper
Butler, Zack. "Mazes: Not Just For Kids." ACM Inroads 7. 3 (2016): 72. Print.
Butler, Zack and Hays, Jacob. "Task Allocation for Reconfigurable Teams." Robotics and Autonomous Systems 68. 1 (2015): 59-71. Print.
Published Article
Hays, Jacob and Zack Butler. “Behavior-Based Control of Self-Reconfigurable Robot Teams for Sensor Placement.” Intelligent Autonomous Systems, 11 (2010): 239-248. Print. *

Currently Teaching

4 Credits
This course serves as an introduction to computational thinking using a problem-centered approach. Specific topics covered include: expression of algorithms in pseudo code and a programming language; functional and imperative programming techniques; control structures; problem solving using recursion; basic searching and sorting; elementary data structures such as lists, trees, and graphs; and correctness, testing and debugging. Assignments (both in class and for homework) requiring a pseudo code solution and an implementation are an integral part of the course. An end-of-term project is also required.
4 Credits
This course serves as a means of bringing transfer students with some programming and data structures background to the same skill level that the computer science program's first year students have after completing CSCI 141 and 142. Problem solving skills and the choice and application of appropriate algorithms and data structures are at the core of the course. Assignments (both in class and for homework) requiring a design and an implementation are an integral part of the course. Larger programming projects are also required.
3 Credits
This course allows students to pursue two threads of research in computer science. One thread is the discovery and analysis of previous work in the field. Students will select, read and collectively discuss papers from conferences and journals in CS. A survey paper on a topic of the student's choice will be required. The other thread is an independent project. Students will select a topic, lay out weekly goals, and meet with the instructor weekly. A final report and presentation will be required.
3 Credits
An introduction to the theories and algorithms used to create artificial intelligence (AI) systems. Topics include search algorithms, logic, planning, machine learning, and applications from areas such as computer vision, robotics, and natural language processing. Programming assignments and oral/written summaries of research papers are required.
3 Credits
This course covers standard and novel techniques for mobile robot programming, including software architectures, reactive motion control, map building, localization and path planning. Other topics may include multiple robot systems, robot vision and non-traditional and dynamic robots. Students will implement various algorithms in simulation as well as on a real robot, and investigate and report on current research in the area. Course offered every other year.

In the News

  • March 17, 2023

    RIT students Mohammed Raeesul Irfan Riaz Ahmed, Eric Karschner, and Quinn Tucker

    CS@RIT hosts regional programming competition

    CS@RIT recently hosted regional competitors of the International Collegiate Programming Contest (ICPC), with 84 registered teams from 19 universities competing. The top four universities will advance to the North America Championship, from which the top teams will advance to the World Finals. Two RIT teams performed well, placing 13th and 17th overall. The contest involves teams of up to three students solving problems within five hours, using a single computer.