JohnBrowne's Home Page
» Grassmann Algebra » Book
» Programming for Engineers » Course Notes
» Probabilistic Design » Course Notes
| Background to the Programming for Engineers Course | Why use Mathematica as a Programming Language? | Course Design | Training in Programming with Mathematica | Mathematica | Contact Details |
The new address of this page (February 2007) is http://grassmannalgebra.info/programmingforengineers. If you used an old link you will have been automatically re-directed. Please update any old links, as they will soon be dead.
The Programming for Engineers course was taught over a number of years to mechanical engineers in the second year of their degree program at Swinburne University of Technology in Melbourne, Australia.
The programming was taught using the inbuilt programming language of Mathematica. During the same semester, Mathematica was introduced into the Engineering Mathematics course. Thus, in the programming course we did not have to teach the students how to do mathematical operations, like Integrate or Series, as this was done in the mathematics course. And in mathematics, the faculty did not continually have to justify to the engineers why they were learning these techniques - the applications were covered in the programming course.
Which language? There has always been much argument within the University as to which programming language should be taught to our engineers. For Robotics and Mechatronics and Electronics engineers, it is easily agreed that they need to know how to program in C, since they will be involved in programming interfaces to hardware at a low level. But for mechanical, civil and chemical engineering, curriculum designers have in the past oscillated from Fortran to Pascal to Basic to C. Mathematica incorporates all the best programming features of these languages plus a lot more.
Which level? Engineers have special purpose software for special jobs. However, what was needed was a high-level programming/computation/graphics/documentation environment in which professionals could prototype their ideas and computations; create packages encapsulating their algorithms and make them easily available to their colleagues, perhaps in another country, and perhaps only as an email attachment. Mathematica was just this sort of environment.
Learning Although the programming course had a web-site, it did not use it to post Mathematica notebooks for download. Rather we made a conscious decision that the students must become familiar with the syntax by lots of practice. They were given a comprehensive book of printed notes, exercises, problems, tests, and projects, and were required to type all input themselves, even if it was somewhat tedious. This practice we saw as akin to the old ways of teaching writing and arithmetic. It seemed to pay off. They didn't mind, because they saw that they were assimilating the syntax and ideas readily as they proceeded through their exercises.
Satisfaction Another conscious decision was to ensure the students were never frustrated for very long and that they came away from each class feeling they had accomplished something. We did this by constantly monitoring their screens and pointing out to them as soon as we could the syntactical errors and trivia which they may have been puzzling over. For example: a lower-case letter instead of an upper-case one; a space where there should not be one; no space where there should be one; ... This too seemed to pay off, as they got more quickly on to interesting work.
Motivation Many mechanical engineering students, as you can imagine, are more interested in cars than in programming. We capitalized on this by giving them a programming project relevant to their interests. One project was to create a package to predict the top speed attainable for different types of cars on different types of roads of various inclines, in various gears, and in either two- or four-wheel drive. Their deliverable was expected to be a professional document that they could email to colleagues who, if they had Mathematica, could load and run the functions in the package and make their own predictions. It was a positive motivator to include an outline to this project in the course notes issued in the beginning of the semester, so that the students could see there were some interesting things that programming in Mathematica could accomplish for them. Indeed we had some students jumping the gun and starting the project (somewhat to their detriment) before they attained proficiency in the requisite techniques.
Assessment Assessment for the course is actually quite easy. We gave them a short in-class test each week from weeks 3 to 10 (in a 12 week semester). We marked the tests easily by a simple scan of the results on the screen. So the students went away knowing their progress, and we avoided the surprises inherent in end-of-the-semester exams. The tests were part of the learning experience too, so we always helped them out when they got stuck on trivia.
If
you are interested in teaching programming with Mathematica, you might like
to check out my course notes.
As well as my interest in teaching programming to engineers with Mathematica, I am currently working with Quantica Pty Ltd teaching Mathematica short courses.
Quantica has a particular focus on providing Mathematica support on the East coast of Australia, and provides training short courses at all levels of Mathematica use.
Mathematica is a programming language par excellence for its ability to embrace so many different programming paradigms. All the best constructs from classical languages like Fortran, C, Pascal, APL, Lisp, Prolog, ... have been incorporated into this one language with an underlying syntax no more complex than a reverse polish calculator.
You
can get more information on Mathematica from wolfram.com.
John M Browne
To avoid spam spiders stealing my email address, please construct it from "jbrowne at grassmannalgebra.info".
http://grassmannalgebra.info
Copyright John M Browne
This page last updated February 2007