I was going to write something about politics, but the bizarre keeps happening, and is totally dispiriting. So I will talk about something entirely different.
As I am currently working in a role related to education, one of my tasks is to figure out what is out there. You know, competitive investigation.
The other day I was poking around the MOOC’s, and their offerings related to my research, and a class jumped out at me. A refresher on linear algebra with applications in Python (the programming language).
Being a math geek, and somewhat familiar with Python, I signed up. It was free unless I wanted a certificate (which I didn’t).
It starts off as you would expect an introduction to linear algebra, and it dove into the concept of “Vectors”.
I should point out that the course was intended to step by step build a Python module with useful functions, and data structures. A good idea to help someone discover linear algebra.
The instructor is a graduate student, and he uses a colloquial video and a cool whiteboard/projector, so you can see what he is writing. However, I have to raise a point. His description of the concept of point, vector, and scalar was incorrect. Yes, he gave the right operations (adding two vectors, or multiplying a vector by a scalar), but his “mathematics” was plain wrong.
Not wrong as in wrong answer, but wrong as in misrepresenting the fundamental mathematical concepts.
I don’t want to shame this particular program, the affiliated university, and the graduate student who created the program. And I know that the right answers are important, but as a pedant, and as I studied physics and mathematics in college, I actually care about the fundamental concepts. As with many disciplines, the actual concepts are as important as the mechanics of getting the right answer.
And that is why I am not an engineer. I have worked with many of them over the last three decades, some brilliant, creative, and quite ingenious people. But outside their area of expertise they often want to jump to the correct answer.
Not all of them, but enough that it frustrates me.
An example. Much earlier in my career, we had a product that had an interesting stage. A very high accuracy X axis, a secondary X/Y axis, and a rotation (theta). The problem was that these several degrees of freedom (2 * X axis, 1 * Y, and rotation) all conspired to make it very difficult to accurately determine a coordinate (on a silicon wafer in this case), and return to the same location.
The original software code was crude, and made some very unrealistic assumptions. As in, we tell it to go to an (X, X, Y, theta) coordinate and assume that it just went there. But any practical engineer would realize that each element of that 4-tuple would have some error, and to have an accurate positioning algorithm, we would need to account for those errors.
The programmer who was working on this, a quite gifted software engineer from Russia, struggled to understand the issues.
So I wrote some Matlab code to model the system, model the error factors, and to build algorithms to account for any instabilities (or perturbations) in the motion and control. Took an afternoon, after remembering my Matlab skills.
When I was explaining these algorithms to the Russian SW engineer, he asked an innocent question, why I used a matrix to calculate the coordinate rotations. Floored, I was stunned that he hadn’t heard of a rotation matrix, the geometric definition of the trigonometry functions, and how they are used to “rotate” a frame of reference.
This was someone with a 4 year degree, in computer science, from a reputable university. I have to admit that I was astounded, and it took a lot of self restraint to not look down on my poor colleague.
I spent a couple of days working through some trigonometry basics, he picked them up, and I think he understood how they work.
Compare that to the recommendation of the instructor in this course on Python who recommended just searching for “dot product python” and preferring a Stack Exchange answer.
Oy vey. In many, MANY ways I am glad I studied all this before the internet, wikipedia, stackoverflow, et al. existed. I fear for the new generation who is happy copying code from various sites on the internet, and not understanding how they work when things go wrong.
And that folks, grinds my gears.