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