An application-driven introductory C programming language course for freshman using the Raspberry Pi - methods and results
There is a need for application-driven programming courses in electrical engineering (EE) because many introductory programming courses contribute to high attrition rates and present a limited and decontextualized view of programming in engineering. Furthermore, a careful study of a programming-in-context course can provide new insights into how and why students express particular views of what programming is. It is expected that this project could benefit all EE students who take the resulting programming course, especially students who may be at-risk for leaving the discipline.
The principle project goal is the development and delivery of a application-based freshman programming course that emphasizes both software and hardware components that are typical of simple embedded applications. The course assumes no programming experience and no introductory orientation to the ECE profession.
The research component of this proposal is designed to measure whether or not, and to what extent, the course achieves the student learning outcomes. It will also contribute to basic research on how studentsﾒ epistemological stances towards programming influence their actions during programming.
The course has been developed and taught three times to date with a total of about 60 students. The Raspberry Pi 2 is the vehicle currently used to introduce students to the application-driven projects. Individual software-only homework assignments with EE applications are given in addition to hardware-based group 'lab' projects. The 3-credit course meets twice weekly for a 50 minute lecture plus a once-weekly 3 hour lab.
Studies compare students in the new class with students in a parallel 'traditional' introductory programming course. Furthermore, performances of both groups in a follow-on advanced programming course are compared.
a) Survey results have compared students who took the traditional programming sequence with students who took the alternative programming course and then the traditional sequence. Although changes in course assignments and assessments created some additional adjustments for students who had been in the alternative course, these students reflected much more positively on their experience in the alternative course. The alternative course was rated as more collaborative, less competitive, and more authentically engineering than the second course in the sequence. Students in the traditional course saw few differences. Individual free responses and interviews suggested several students saw the traditional class as better preparation for the next course in the sequence, whereas the alternative class was better preparation for their future as an engineer in general.
b) Key deliverables include qualitative data analysis of classroom video and student interviews, quantitative data analysis of surveys comparing traditional and alternative course participants, and the curriculum development materials which were designed and refined over the course of this project.
c) Ongoing qualitative data and survey analysis will explore the most recent iteration of the alternative course. Anticipated work also includes a grade book and/or retention analysis to examine student outcomes in the two course sequences.
First, the results from this research could impact the refinement of first-year programming courses targeted at electrical engineering majors, but which could be open to all students in engineering. The problem-based approach could help with retention of engineering-students and help improve diversity in engineering areas (with a reduction of attrition by students from underrepresented groups). To date, we have only a paper submitted to the 2016 ASEE meeting, but once the project nears completion, we will publish in other technical venues and on-line.
There have been no unexpected challenges to date.
We have a submission to ASEE only at this time