Academic journal article Journal of STEM Education : Innovations and Research

Enhancing the Programming Experience for First-Year Engineering Students through Hands-On Integrated Computer Experiences

Academic journal article Journal of STEM Education : Innovations and Research

Enhancing the Programming Experience for First-Year Engineering Students through Hands-On Integrated Computer Experiences

Article excerpt


This paper describes the redesign and implementation of the course, "Introduction to Programming for Engineers" using microcontroller (MCU) hardware as the programming target. The objective of this effort is to improve the programming competency for engineering students by more closely relating the initial programming experience to the students' notion of engineering through the introduction of significant hands-on experiences. Through this experience, the project also seeks to improve students' satisfaction and success in subsequent courses with programming content. The course is organized around the traditional programming course topics, with all programming exercises performed on MCU hardware. Details of course implementation are provided, along with an assessment of data collected over four semesters. The primary outcomes demonstrate that the MCU can serve as an effective programming platform for incoming students, that hands-on experiences are important motivators in a programming course, and that students readily relate computer control as a primary function of engineers.

1. Introduction

Many students enter engineering programs as a result of hands-on experiences that they have had in the past. However, engineering programs often do not provide enough practical experiences early in the curriculum (Shallcross, 2006). The freshman-level programming course provides an opportunity to build on incoming students' perceptions of engineering and the tools engineers use. The traditional entry- level programming course for engineers is based on learning C, Fortran, or Matlab to solve numerical algorithms associated with common engineering models. Any use of a computer as a device to control physical events is generally contained in upper-level courses. While creating programs to solve numerical analysis problems is an important tool for engineers, we contend that the current model is inverted based on a pedagogical basis. Ideally, students would begin learning programming in an environment that matches their notions of engineering (that engineers design systems that control the world around them) and then later move to solving advanced models that describe how the world works. Based on recent advances in microcontroller hardware, associated programming environments and many examples of integrating programming with hardware in the loop for upper classman engineering, the authors propose to alter the context in which programming is taught to engineering students at Tennessee Technological University (TTU). The course has been implemented as an initial programming experience based on a hardware-in-theloop model, retaining the traditional C programming standard, but using a micro-controller (a computer designed to interface with the outside world) as a programming target to interface to simple physical systems. This is intended to result in a programming experience that will demonstrate one way in which engineers use computers and be appropriate for early understanding of engineering.

The remainder of this paper will proceed as follows. Section 1.2 will discuss some examples of related work, while section 2 will provide an overview of the model. Section 3 will describe the organization of the course and the programming activities that introduce fundamental programming skills through the microcontroller unit (MCU). Section 4 will evaluate the project in meeting the proposed objectives, and will provide a summary of observations from the first implementation of this course. The paper will end with concluding remarks in section 5.

1.2 Discussion of related literature:

Applying pedagogically-based improvements to the engineering programming experience throughout the undergraduate program has seen significant attention in the literature. The majority of formal instruction in programming for engineering students is commonly found in the freshman year, and is a commonly the focus for research in improved instruction techniques (Bean & Dempsey,2007; Clough, Chapra, & Huvard, 2001; Adamchik & Gunawardena, 2005; Calloni & Bagert, 1995). …

Search by... Author
Show... All Results Primary Sources Peer-reviewed


An unknown error has occurred. Please click the button below to reload the page. If the problem persists, please try again in a little while.