Recognizing and Managing Complexity: Teaching Advanced Programming Concepts and Techniques Using the Zebra Puzzle

John D. Crabtree, Xihui "Paul" Zhang
Journal of Information Technology Education: Innovations in Practice  •  Volume 14  •  2015  •  pp. 171-189
Teaching advanced programming can be a challenge, especially when the students are pursuing different majors with diverse analytical and problem-solving capabilities. The purpose of this paper is to explore the efficacy of using a particular problem as a vehicle for imparting a broad set of programming concepts and problem-solving techniques. We present a classic brain teaser that is used to communicate and demonstrate advanced software development concepts and techniques. Our results show that students with varied academic experiences and goals, assuming at least one procedural/structured programming pre-requisite, can benefit from and also be challenged by such an exercise. Although this problem has been used by others in the classroom, we believe that our use of this problem in imparting such a broad range of topics to a diverse student population is unique.
Information technology education, object-oriented programming, software engineering, design techniques, algorithm complexity
155 total downloads
Share this

Back to Top ↑