using image processing projects to teach cs1 topics
As Computer Science educators, we know that students learn more from projects that are fun and challenging, that seem "real" to them, and that allow them to be creative in designing their solutions. When we have students beating down our office doors wanting to show us what they've done, we know we have designed a project that truly meets its pedagogical goals. In CS1 courses, it is often difficult to come up with large, real-world programming projects that are at an appropriate level and that really excite students. This is particularly true in the first half of the course when students are learning basic programming and problem solving skills. We found that assignments based on image processing are an effective way to teach many CS1 topics. Because students enjoy working on the projects, they come away with a solid understanding of the topics reinforced by the projects. In this paper, we discuss many ways in which image processing could be used to teach CS1 topics. As an example, we present two image processing projects that we use in our CS1 course. These large, real-world programs are designed so that students can successfully master them early in their first semester of programming. Even though our CS1 course is taught using the C programming language, these projects could easily be used by a CS1 course in C, C++, or Java. We provide starting point code for Java and C versions of the projects, and provide sample assignment write-ups on our project webpage [12].
image processing projects cs1 computer science education