For the past few years we have offered two versions of our introductory C programming course. The first is a traditional course where students are given individual paper-based programming assignments that do not involve any hardware besides the computer itself and its peripheral devices. In the other course, students do have some individual programming assignments, but there is a lab that involves mostly partner-based programming assignments emphasizing computer-controlled hardware-driven projects and a final multi-week group project. The Raspberry Pi (RPi) 3B computer is currently the device the students use for the hardware-based assignments, though there are many devices off the shelf today that have similar capabilities. Both classes use the same textbook. While the traditional course is two credits, the novel course is three credits to allow time for the hardware instruction. Students from both classes then need to take the same advanced C programming course that is also traditional in its format.
The novel course has been taught a total of four times for a total enrollment of about 80 students. This number has been limited by resources, as we have provided RPi kits for students and all necessary hardware from an NSF grant. The lecture has had at most 30 students and the once-weekly, three-hour computer labs have had at most 10 students. In contrast, the traditional course enrolls at least 90 students per year in two or three sections. The maximum lecture size is around 60 students and their hands-on, bi-weekly, hour-long discussion sessions are limited to 12 students.
We have been using mixed research methods, including student surveys, classroom observation, and student interviews, to compare the impact of these courses on student beliefs about programming, the electrical engineering profession, and their own abilities. The surveys have concentrated on pre-course and post-course identity and efficacy beliefs of the students. Preliminary findings [1] suggest that students in the novel course find their course more collaborative and more like “real-world” engineering than students in the traditional course did. Students in the novel course also had greater self-efficacy and identity gains, particularly regarding fitness as an engineer, as compared to students in the traditional course.
In this paper we will describe and discuss the results of our studies regarding student identity and efficacy beliefs from the two introductory courses for the totality of the NSF contract. We also detail the differences in the content and pedagogy of the traditional and novel courses and we will describe observations of student interactions in the two courses. We will present success rates for both cohorts of students in the advanced C programming course and look at the impact on students from underserved populations. Finally, we will discuss plans to develop a version of the advanced programming class that is hardware-driven.
[1] Authors, 2016
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.