A F
i
rst Course
i
n Computer Programm
i
ng for Mechan
i
cal
Eng
i
neers
Burford Furman and Eric Wez San Jose State Universiy
Abstract-The irst course in computer programming for
Mechanical and Aerospace Engineers at San JO! State
University is undergoing substantial renovation to better serve
the educational needs of the students in the program. The
renovated course emphasizes development of algorithmic
problem solving skills and familiarity with the C programming
language, Excel, and Matlab. Extensive use is made of Ch, a C
interpreter, for learning the C language. A major innovation in
the course is the use of a microcontroller with a custom
designed sensor/IO board as an experimental platform that the
students use for several laboratory experiments. Student
feedback regarding the renovations after the irst two course
offerings during the 2009-10 academic year has been positive.
Further enhancements of the microcontroller-based
experiments are expected through the use of a second
generation sensorlIO board currently under development.
I. INTRODUCTION
M
E 30 COMPUTER ApPLICATIONS is the Irst course in
the mechanical and aerospace engineering (MAE)
programs at San Jose State University that exposes students
to computer programming. In its current form, ME 30 is
structured as a two semester-unit course with one lecture
hour and three laboratory hours per week, which meets for
approximately 15 weeks. ME 30 is a prerequisite for ME 106
Fundamentals of Mechatronics. ME 30 is required for both
ME and AE undergraduate students, and ME 106 is required
for all ME students.
The class level of students who take ME 30 is roughly
distributed as 4% reshman, 43% sophomore, 38% junior,
and 15% senior, graduate, or other classiIcations (as
reported by the spring 2010 entrance survey, n=77) [1]. ME
30 has no prerequisites, so preparation, especially in math
and physics, varies signiIcantly among students. About 71%
have completed the second semester of calculus, 41% have
completed diferential equations, and about 66% have
completed the Irst semester of physics (mechanics).
Very few students coming into ME 30 have had any
experience programming computers, though they use
computers extensively for word processing, web surIng,
email, and social networking. Over 80% report little to no
Manuscript received March 7, 2010. Revised on May 24, 2010.
8. Furman is a professor in the Department of Mechanical and
Aerospace Engineering at San Jose State University, San Jose, CA 95192-
0087 USA (phone: 408-924-3817; fax: 408-924-3995; e-mail: bjurman@
sjsu.edu).
E. Wertz is a senior sotware engineer with thirty years of experience in
sotware development at Hewlett-Packard, GO Corp, EO Inc, Charles
Schwab, and RSA Data Security. (e-mail: ericwertz@hotmail.com).
978-1-4244-7101-0/10/$26.00 ©2010 IEEE
ability in C or Matlab.
Until the fall 2009 semester, ME 30 had been taught with
a focus on numerical computation and developing precise
coding habits in C rather than taking a broader pedagogical
perspective that emphasizes:
a). developing algorithmic solutions to engineering
problems
b). exposing students to computational sotware widely
used by mechanical engineers
c). applying progrmm ing to the control of physical
systems (Mechatronics).
The former state of afairs has contributed to several
problems 'downstream' in the ME curriculum. The Irst
problem is that, by and large, even relatively 'good' students
who took ME 30 and had a curriculum focus in mechatronics
did not feel conIdent that they could write a program in C to
solve a particular problem starting rom a blank page. "If you
gave me a program, I think I could modiy it, but not write it
rom scratch" was the response I got rom one graduating
senior when I asked him about his skill in progrmm ing
gained rom our curriculum. Such a sentiment is not atypical.
One contributing factor to this problem is the length of time
between when students take ME 30 and when they need to
use what they lened to program microcontrollers in ME
106. For some students the gap can be up to two years or
more. Another related issue has been a lack of coverage in
ME 30 of topics in C that are especially important to
embedded programming, such as bitwise operators, bit
masking, memory-mapped 10, etc. Many students who did
well in ME 30 feel unprepared when they face these topics in
ME 106.
The second problem has to do with damping enthusiasm
for pursuing mechatronics as an area of specialization in the
ME program. Our ME program has three curricular focus
areas: Design, Thermal/Fluids, and Mechatronics. The
curriculum stem in Mechatronics was established in 1995
through the help of a National Science Foundation grant and
generous industry support [2]-[3]. Prior to 1995,
approximately 80% of ME students chose Design as their
focus area. Several years ater we started the stem in
Mechatronics, the number of ME majors focusing in
mechatronics grew to be about equal in proportion (40%) to
those focusing in design. Ater the dot-com bust in 2001, the
number of ME majors focusing n Mechatronics began to
decline, so that currently, approximately 19% are focusing in
Mechatronics, 54% in Design, and 27% in ThermallFluids.
70