Cementing Abstraction With A Concrete Application: A Focused Use Of Robotics In Cs1
Alexander S. Mentis, Charles Reynolds, Donald Abbott-McCune, Benjamin A. Ring · 2020
Teaching abstraction, modularity, and encapsulation, as well as the essential skill of reading, understanding, and using code generated by other programmers is important in an introductory programming course (hereafter referred to as CS1).A problem often encountered, however, is that the details of the underlying code hidden by good and interesting abstractions are often too complex to be used to teach beginning programmers to read and understand code written by others.This paper introduces an easy-to-use Ada wrapper package for the iRobot ® Create platform's Open Interface specification that is useful for illustrating the topics above, but it is implemented with code that is also relatively easy for beginning programmers to read.The accessibility of the underlying code further allows for its easy use in exploring more advanced concepts in follow-on CS and computer engineering courses.We believe our package and our approach toward its use support the successes other educators have had in integrating robotics into their curricula and overcome some of the difficulties that have been encountered.