Asee peer logo

An Integrated Project-Driven Course in Computer Programming for Mechanical Engineering Students

Download Paper |


2015 ASEE Annual Conference & Exposition


Seattle, Washington

Publication Date

June 14, 2015

Start Date

June 14, 2015

End Date

June 17, 2015





Conference Session

Software and Programming

Tagged Division

Computers in Education

Page Count


Page Numbers

26.194.1 - 26.194.18



Permanent URL

Download Count


Request a correction

Paper Authors


Debra J. Mascaro University of Utah

visit author page

Debra J. Mascaro is the Director of Undergraduate Studies in Mechanical Engineering at the University of Utah. She holds a B.A. in Physics from Gustavus Adolphus College in St. Peter, MN, and a Ph.D. in Materials Science and Engineering from the Massachusetts Institute of Technology. She primarily teaches freshman design and programming courses.

visit author page


Stephen Mascaro University of Utah

visit author page

Stephen Mascaro received the B.A. in Physics from Houghton College, the B.S. in Mechanical Engineering from Clarkson University, and the M.S. and Ph.D. in Mechanical Engineering from the Massachusetts Institute of Technology. He is currently Associate Professor in the Department of Mechanical Engineering at the University of Utah, and Director of the Biorobotics Lab.

visit author page

Download Paper |


An Integrated Project-Driven Course in Computer Programming for Mechanical Engineering StudentsWe have recently implemented a novel integrated approach to instructing MechanicalEngineering students in computer programming at a large public university. Our new courseserves as an introduction to computer programming for freshman in Mechanical Engineering,preparing students in particular for a sophomore-level Numerical Methods course and a junior-level Mechatronics sequence. It is desired that students completing this course are proficient inprogramming both in MATLAB (which will be extensively used throughout the MechanicalEngineering curriculum) and in Arduino C (which will be used in the Mechatronics sequence).Teaching computer programming to mechanical engineering students has historically been achallenge, since they may not be gifted in this area and often struggle to see the relevance ofcomputer programming to engineering while still freshmen. The basic idea behind our approachis to motivate student learning using a concrete engineering application in the form of a hands-onteam project with an end-of-semester competition. The lectures, labs, assignments, and projectare all integrated to demonstrate key engineering applications of computer programming,including general engineering problem solving, data analysis and fitting, design optimization,control of mechatronic systems, data visualization and image analysis, and graphical userinterfaces and simulation. The real novelty of our approach lies in the manner in which we havecarefully designed the lectures, labs and assignments to be both relevant and synchronized to theprogression of the project leading to the competition. Each week, a new programming topic isintroduced in lecture, that same topic is applied in lab towards a facet of the project, and theweekly assignment includes one or more Project Programming Problems (PPPs). The code thestudents write for the PPPs is ultimately integrated and used in the competition.The specific project we designed required the students to control a mechatronic device to hittargets with ping-pong balls. Each team of two students was given a kit of parts including an all-in-one Arduino-compatible microcontroller and an assortment of Makeblock parts (Makeblock isan open source construction platform Each team assembled identicaldevices (see picture on next page) that used DC motors and home-made linear encoders toposition the cannon, servomotors and fourbar linkages to change the launch angle, and home-made solenoids to launch the ping-pong balls. For the competition, the teams were provided withan image file with embedded target locations corresponding to actual locations of targets on thefloor in front of the launch device. Scoring was based on accuracy and speed of hitting targets. Inorder to succeed, students needed to complete a series of PPPs spanning the semester, includingcalibration of the physics/kinematics of the device, image analysis in MATLAB to locate targets,serial communication of target locations from MATLAB to Arduino, targeting in Arduino Cusing trajectory physics and fourbar linkage kinematics, and control of the servomotor, solenoid,and DC motor/encoder. By design, the students who fared the best in the end-of-semestercompetition were those who did the best job of calibrating and programming their device.Figure 1: Ping-Pong Launcher (Top) and Competition Playing Field (Bottom)

Mascaro, D. J., & Mascaro, S. (2015, June), An Integrated Project-Driven Course in Computer Programming for Mechanical Engineering Students Paper presented at 2015 ASEE Annual Conference & Exposition, Seattle, Washington. 10.18260/p.23533

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: © 2015 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