Home

For the Summer of 2015, the author, P. Venkataraman, created a workshop for faculty in undergraduate engineering institutions in the use of MATLAB in the engineering curriculum. The workshop was strictly hands-on and was spread over 5 days with four hour session each day in two meetings of two hour each. The idea behind the workshop was to show faculty on how to incorporate MATLAB into the curriculum through problem solving rather than a dedicated course on MATLAB programming, which usually lands up being dry and forgetful. By invoking MATLAB for problem solving, and covering a range of problems from all of the different areas of the curriculum, and the ability to display results graphically, the student can develop a useful association with MATLAB, that should improve both teaching and learning. This improves engineering education in so many ways. For the general engineering curriculum it is unlikely that you will need to use more than 300 commands in MATLAB. This makes a course on MATLAB programming an overkill.

It then occurred to me that this workshop is also useful for those enterprises that want to use Python for engineering calculations in their work place/enterprise - particularly if they are small and cannot afford the license for packaged software.

The site for MATLAB workshop is here

The first work shop was delivered at Vellore Institute of Technology (VIT) in India in June 2015 to around 45 participants through the departments of mechanical engineering and mathematics. It was well received and timely since the mathematics department were required to incorporate MATLAB in all service courses for engineering from new academic year.

A justification for a similar workshop in Python:

  1. Python can do most everything MATLAB can do
  2. It works quite similarly to MATLAB in terms of writing code
  3. Python is free for all people - academic, research, industry, and for profit institutions
  4. Python can run in all environments
  5. Python is available under the GNU public license and you can develop, exploit, profit, and share freely
  6. Students trained in Python can easily migrate their code to the corporate environment and continue further development freely
  7. Every practicing engineer has access to free quality software that can improve design skills
  8. Even small companies can now have powerful technical computing resources through Python without having to pay significant license fees
  9. Python has a strong community of users that can be tapped for help
  10. Python has the complete set of tools for machine learning and data analytics

Some extra conditions (buts) for learning and using Python:

  1. It requires a programming mindset
  2. Code and actions are distributed among different modules or packages and it takes some effort to put together . There are unfortunately several ways of accomplishing a calculation in Python because of different implementations of the command in different modules. Sometimes the commands may not refer to the same calculation. Python is being developed through voluntary contributions of dedicated users and programmers. A hands-on workshop will focus on keeping things consistent.
  3. Documentation is distributed and debugging is more difficult.
  4. Most documentation expect you to have a strong programming experience in writing code.
  5. Reliance on code samples is a big part of learning
  6. It is not a completely integrated environment like MATLAB - but it is getting there.
  7. A hands on workshop is focussed more on the application of Python and less on the code itself. You will have a your own library of code that solve common problems. You should be able to extend that to your specific application.

The following ideas appeared in the workshop on MATLAB Programming. It applies to Python as well.

Why integrate software in Engineering Education?

Developing skills in Critical Thinking and Problem Solving are considered the important achievement of an engineering education. Lots of research and activity have gone into this realization though these topics have always made common sense over the centuries. It is becoming difficult to deliver this outcome for many reasons, in particular the common misconceptions about student learning, emphasis and motivation.

  • There is a popular belief that memorization is a low-level intellectual activity and should be discouraged. The brain has enormous capacity. Smart memorization of selected topics increases the vocabulary for critical thinking in professional fields. There should be no doubt about this. Knowing and commanding facts is more challenging than looking up information on the internet. Memorization should be a basic component for Thinking and Problem solving. Off course, to convince the student and faculty of this is a different proposition.
  • Successful people in engineering and science have the ability to process the usefulness of the information immediately, without any assistive devices. This is because they chose to remember stuff. The current mobile devices with their incredible search capacity is another hindrance to memorization.
  • Creative problem solving involves using facts and ideas in different ways than the results of the internet search. This process is dependent on the library in your memory - not in the cloud.
  • It is difficult to think critically if you do not have a reservoir of stored information from thinking critically earlier. You cannot challenge the current proposition unless you know definitely it is incorrect.
  • The ability to memorize should be encouraged as a requirement of the engineer and designer.
  • Knowing how to draw and express information instantaneously using illustrations makes for effective communication. This is part of Critical Thinking and Problem Solving.
  • Integrating software in the classes is a stealthy way to encourage information retention, understanding, and thinking. Thinking takes place in two streams - first the structured information needed to solve the problem, and two the skill to transfer the problem solving activity to software.

Why MATLAB or Python?

MATLAB/Python today are driven through a powerful Integrated Development Environment (IDE) for Teaching and Learning that allows us to combine effortlessly various aspect of learning by combining

  • Graphical Programming - create powerful descriptive graphics and animation
  • Symbolic Programming - Use MATLAB the same way as you would n the chalk board - reinforces traditional learning
  • Numerical Programming - Dealing with numbers, traditional programming structures and program control
  • Text Programming - processing strings and literals. The entire interaction with the web for most people using Facebook and social media is text processing.

There are other products that are comparable to MATLAB and Python like Mathematica, Maple, Sage, Excel etc.

The author however has plans only for MATLAB and Python.

The Python workshop parallels the MATLAB workshop conducted by the author.

Both these workshops are hands-on and are prepared with the assumption that the participants are faculty in an engineering or an applied science curriculum. The workshop will be equally effective for students or engineers from small business or industry.

The workshops introduces elements of MATLAB or Python programming through structured examples

Python in Engineering Education.pdf

There are several potential audiences for this workshop. It is targeted primarily those that seek exposure to a broad range of math and science calculations that occur in the early courses in undergraduate engineering program. This workshop is designed for

  • students
  • faculty
  • engineers in the industry, particularly smaller ones that cannot afford MATLAB, Mathematica, Maple etc. Python is free.

The workshop is useful for most technical and science disciplines. It specifically incorporates general examples from Mechanical engineering to show how to program the mathematics involved in the application.

This is a 5 Day workshop with about 4 hours each day. It is Hands - on. The first four are instructor led. The last is catch-up and practice.

The general ideas are expressed through the slides in the link below

Your comments and suggestions are always welcome