Zachary Butler Headshot

Zachary Butler

Professor

Department of Computer Science
Golisano College of Computing and Information Sciences

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

Zachary Butler

Professor

Department of Computer Science
Golisano College of Computing and Information Sciences

Education

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

Bio

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.

585-475-6155

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

CSCI-140
4 Credits
This accelerated course covers material from the first-year sequence of courses and provides the foundation for all subsequent Computer Science courses. The course stresses problem solving while covering modern software development techniques and introducing essential software tools. Topics include tree and graph structures, nested data structures, objects, classes, inheritance, interfaces, object-oriented collection class libraries for abstract data types (e.g. stacks, queues, maps, and trees), and static vs. dynamic data types. Concepts of object-oriented design are a large part of the course. Software qualities related to object orientation, namely cohesion, minimal coupling, modifiability, and extensibility, are all introduced in this course, as well as a few elementary object-oriented design patterns. Input and output streams, graphical user interfaces, and exception handling are covered. Note: Requires department permission for registration.
CSCI-141
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.
CSCI-142
4 Credits
This course delves further into problem solving by continuing the discussion of data structure use and design, but now from an object-oriented perspective. Key topics include more information on tree and graph structures, nested data structures, objects, classes, inheritance, interfaces, object-oriented collection class libraries for abstract data types (e.g. stacks, queues, maps, and trees), and static vs. dynamic data types. Concepts of object-oriented design are a large part of the course. Software qualities related to object orientation, namely cohesion, minimal coupling, modifiability, and extensibility, are all introduced in this course, as well as a few elementary object-oriented design patterns. Input and output streams, graphical user interfaces, and exception handling are covered. Students will also be introduced to a modern integrated software development environment (IDE). Programming projects will be required.
CSCI-539
3 Credits
This course examines current topics in Artificial Intelligence. This is intended to allow faculty to pilot potential new undergraduate offerings. Specific course details (such as prerequisites, course seminar, format, learning outcomes, assessment methods, and resource needs) will be determined by the faculty member(s) who propose a specific seminar course in this area. Specific course instances will be identified as belonging to the Artificial Intelligence cluster, the Computer Graphics and Visualization cluster, the Security cluster, or some combination of these three clusters.
CSCI-571
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.
CSCI-630
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.