New Orleans, Louisiana
June 26, 2016
June 26, 2016
August 28, 2016
Electrical and Computer
We have developed and thrice taught a project-driven, 3-credit C programming course for first-year electrical and computer engineering (ECE) students. The course requires both traditional programming assignments and application-driven assignments in which the students write code to interact with hardware. The course involves two hours of lecture and one three-hour lab session each week. In addition to mastering the student learning outcomes of a traditional programming course, students in our course are introduced to many concepts from the electrical engineering discipline, including elements of circuit theory, electromagnetics, controls, and communication systems. In our department, this course is allowed as an alternative to a traditional software-only introductory C language course. Both courses are designed for students with little or no programming experience and both serve as a prerequisite for a more advanced programming course.
The Raspberry Pi computer is the device the students use for the hardware-based assignments. The laboratory room is equipped with a station for each student that includes a Raspberry Pi 2B and needed hardware (keyboard, mouse, HDMI/DVI monitor). It also contains all of the components, hardware, and test and measurement equipment needed to perform the labs. Students are also issued a Raspberry Pi 2B (RPi) kit that includes the device, case, charger, USB Wi-Fi adapter, cables and electronic components, and a microSD card. The microSD cards are preloaded with an image that includes all of the software needed to succeed in the course, plus copies of all the lecture documents, sample codes, and special instructions. Students are also provided with tutorials on how to connect their RPis to their laptops. Many students choose this route even in the lab as it provides a very convenient, portable interface to the RPi.
There are nine labs in the course. One-third of the labs are performed individually and the other two-thirds are designed to be done in groups of two. While some of the labs can be finished in three hours, many are to be completed outside of regular lab time, and students carry their microSD cards to and from lab for continuity. Students learn to work with various sensors and actuators, as well as operational amplifiers, A/D converters, and basic components. Sensors can be analog or digital, such as photoresistors, temperature sensors, IR and ultrasonic distance sensors, and three-axis magnetometers, gyros and accelerometers. Actuators include LEDs, servo and conventional motors. Digital devices require SPI or I2C communication.
The software programming assignments may be done on the RPi or any other machine, either in a Linux line-command environment or in any IDE. All of the non-hardware assignments are related to concepts and computations needed in sophomore and junior-level ECE courses.
The group project is designed for groups of 3-5 students. Groups are assigned after about 1/3 of the semester and have various preparatory tasks to perform in the middle third before the project begins in earnest the final third of the semester. The final project involves an autonomous vehicle using sensors to navigate an obstacle course and then a sensor-free return to start.
In this paper we will describe the course in detail and discuss student enrollment, performance and attitude differences between this course and our traditional 2-credit C programming course.
Lawson, W. G., & Secules, S., & Bhattacharyya, S., & Gupta, A. (2016, June), An Application-based Learning Approach to C Programming Concepts and Methods for Engineers Paper presented at 2016 ASEE Annual Conference & Exposition, New Orleans, Louisiana. 10.18260/p.26567
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2016 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015