New Orleans, Louisiana
June 26, 2016
June 26, 2016
June 29, 2016
978-0-692-68565-5
2153-5965
Electrical and Computer
20
10.18260/p.26567
https://peer.asee.org/26567
626
Prof. Lawson has earned five degrees from the University of Maryland, including a Ph,D, in Electrical Engineering in 1985. In his professional career at College Park, where he has been a full professor since 1997, he has worked on high-power microwave devices, medical devices, and engineering education. He is an author or coauthor on 5 books and over 70 refereed journal articles and 200 conference presentations and publications.
Stephen is an Education PhD student at UMD, researching engineering education. He has a prior academic and professional background in engineering, having worked professionally as an acoustical engineer. He has taught introduction to engineering design in the Keystone Department at the UMD A. James Clark Engineering School. Stephen's research interests include equity, culture, and the sociocultural dimensions of engineering education.
Shuvra S. Bhattacharyya is a Professor in the Department of Electrical and Computer Engineering at the University of Maryland, College Park. He holds a joint appointment in the University of Maryland Institute for Advanced Computer Studies (UMIACS). He is also a part time visiting professor in the Department of Pervasive Computing at the Tampere University of Technology, Finland, as part of the Finland Distinguished Professor Programme (FiDiPro). He is an author of six books, and over 250 papers in the areas of signal processing, embedded systems, electronic design automation, wireless communication, and wireless sensor networks. He received the B.S. degree from the University of Wisconsin at Madison, and the Ph.D. degree from the University of California at Berkeley. He has held industrial positions as a Researcher at the Hitachi America Semiconductor Research Laboratory (San Jose, California), and Compiler Developer at Kuck & Associates (Champaign, Illinois). He has held a visiting research position at the US Air Force Research Laboratory (Rome, New York). He has been a Nokia Distinguished Lecturer (Finland) and Fulbright Specialist (Austria and Germany). He has received the NSF Career Award (USA). He is a Fellow of the IEEE.
Ayush Gupta is Assistant Research Professor in Physics and Keystone Instructor in the A. J. Clark School of Engineering at the University of Maryland. Broadly speaking he is interested in modeling learning and reasoning processes. In particular, he is attracted to fine-grained analysis of video data both from a micro-genetic learning analysis methodology (drawing on knowledge in pieces) as well as interaction analysis methodology. He has been working on how learners' emotions are coupled with their conceptual and epistemological reasoning. He is also interested in developing models of the dynamics of categorizations (ontological) underlying students' reasoning in physics. Lately, he has been interested in engineering design thinking and engineering ethics education.
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