PDR

1337377. Tue Nov 26, 2019 1:04 pm 


Most of the physics and chemistry that are needed by most engineers can be taught relatively easily if they have the maths. But that doesn't hold true for the maths itself.
At the open evening I was challenged by a parent to explain why Alevel maths was more useful for an aspiring software engineering degree apprentice than (say) computer science or a BTEC in software, and so I thought about it. My answer was that (ignoring the detail that the software elements would be fully and rigorously tutored during their degree course) without the Maths the apprentice would be stuck implementing any ballistic calculations (which need differential calculus), would get lost in anything that involved more than very basic trig, would not be able to look at anything harmonic (fourier extractions, sample frequency aliasing errors etc) and would struggle grasping the role and limitations of of numerical integration techniques in dynamic calculations. We could also talk about logical functions and Boolean operations, but most of all they would be restricted to working in high level languages  because they would never be able to emulate/implement functions using the sum of their binomial expansions, eg:
Sin(x) = x  (1/3!)x^3 + (1/5!)x^5  (1/7!)x^7... +(1/n!)x^n
This wouldn't need explaining to anyone with Alevel maths, but it would be a mindboggling rabbit out of a hat to someone without. If they don't have the core basic understanding then they will never be able to optimise code.
Turns out the parent in question was a software engineer (which I'm not) and her response was "I'd never really thought about it, but now you've pointed it out I see what you mean".
PDR 




crissdee

1337381. Tue Nov 26, 2019 1:23 pm 


PDR wrote: 
Sin(x) = x  (1/3!)x^3 + (1/5!)x^5  (1/7!)x^7... +(1/n!)x^n
This wouldn't need explaining to anyone with Alevel maths, but it would be a mindboggling rabbit out of a hat to someone without. 
As someone who got an average Olevel in maths, I can confirm that to be the case. I don't have the faintest clue what the above equation means, or how I would go about doing anything at all with it. 




Leith

1337395. Tue Nov 26, 2019 6:14 pm 


I think it depends to some extent on the target job domain as to what specific software or mathematical skills are useful in a given role.
I've been an aerospace software and systems engineer for nearly 20 years and rarely needed to go anywhere near a Taylor series expansion for sin(x), but then I don't do a lot of handson work with highperformance resourceconstrained control systems. I'd agree that for that sort of work, a background in electronics or applied mathematics is more useful than general software engineering skills.
On the other hand, I'd be wary of applying someone with that sort of background to a large scale PCbased software project if they didn't have a sound grasp of data structures, abstraction principles, algorithmic complexity, how to design scaleable, testable, maintainable software components and how to design for reuse. I've worked with some extremely bright physicists and mathematicians who've struggled to grasp some of those concepts for lack of formal software engineering training.
For usefulness of A levels, though, my experience from twenty years ago was that computer science Alevel only gave a brief introducation to those topics and wasn't a prerequisite for anything, so I ended up repeating most of what I learned in sixth form in my first year at university (maths degree, but with a heavy computing element).
The maths element of my degree was much more of a struggle initially, as I'd not had the option to do further maths at Alevel.
So while I use the computer science part of my degree far more than the maths part in my daily work, I expect I could probably have got here without my computer science Alevel, but almost certainly not without a maths Alevel.
Obviously that was a long time ago, and I'm not as familiar with today's syllabuses as I could be, but I get the impression that my experience from back then is still reasonably applicable today. 




suze

1337397. Tue Nov 26, 2019 6:33 pm 


crissdee wrote:  As someone who got an average Olevel in maths, I can confirm that to be the case. I don't have the faintest clue what the above equation means, or how I would go about doing anything at all with it. 
It's not actually an equation (ie something that you can solve to get a value for x) nor yet an identity (ie something that holds for all values of x).
In fact, it's an approximation  if you have an x, you can use the formula above to get an approximate value for its sine. What's more, I'm now going to steal quarter of a point off PDR because it's a Maclaurin expansion and not a binomial expansion.
Without wishing to blow my own trumpet too much, I suspect that somewhat less than 5% of English teachers know that! (Yes OK, I did get the good husband to confirm that I was right before I claimed the quarter point  but we did Maclaurin expansions and indeed binomial expansions in Grade 12 Math.)
My counterpart in the Faculty of Mathematics and IT thinks that an English teacher who does have the equivalent of A level Math must be some kind of weirdo and/or freak. The word she actually needs is "Canadian", but it's come in useful. There is a species of Head of Math who is not above trying to BS nonmathmos by spouting Math at them in meetings. I don't think our Head of Math is a member of that species, but even if she were she wouldn't dare.
EDIT: Leith refers to it as a Taylor expansion, and I didn't do those in high school. But having checked with the man, Leith and I are both right. A Maclaurin expansion is a special case of a Taylor expansion, and it's the only form of a Taylor expansion that you'd cover at A level. 




crissdee

1337398. Tue Nov 26, 2019 6:48 pm 


suze wrote:  crissdee wrote:  As someone who got an average Olevel in maths, I can confirm that to be the case. I don't have the faintest clue what the above equation means, or how I would go about doing anything at all with it. 
It's not actually an equation (ie something that you can solve to get a value for x) nor yet an identity (ie something that holds for all values of x). 
Which shows how little I know about maths!
Weird thing though, when I saw that post, it didn't include the quote of my post. Now I'm quoting suze's post, I can see her quote of mine. I can hardly wait to see what happens when I hit submit........ 




crissdee

1337400. Tue Nov 26, 2019 6:50 pm 


Now I can see suze's quote of my post in her post.
????????????? 




suze

1337401. Tue Nov 26, 2019 6:50 pm 


I think I know what happened there. When I wrote my post, I didn't originally quote yours because it was immediately above. But Leith made his post while I was writing, and so I went back and edited in the quote of your post to make it clear what I was on about. 




Numerophile

1337431. Wed Nov 27, 2019 4:57 am 


And just for completeness (to dock another quarter point?) the final (i.e. nth) term in PDR's approximation should be
(1)^(n1) * x^(2n1) / (2n1)!
@suze: I am impressed, not so much that you should have learnt this in the first place, but that you should still remember it given your subsequent career! 




PDR

1337442. Wed Nov 27, 2019 5:18 am 


I concede both, but Numero's more than Suze's because whilst she is accurate she is not necesarily right because the common usage at Alevel (and in undergrad engineering) describes it as a binomial expansion  the usage may be loose, but no more so than describing Thomas Hardy's books as "worth reading", Sociology as "a science" or Brussel Sprouts as "food".
But I hand over the docked points as directed  I see I am rapidly losing points, but that just supports the common view that my contributions are mostly pointless...
:0)
PDR 




barbados

1337447. Wed Nov 27, 2019 6:03 am 


I’m following this with interest, and have a couple of questions.
Firstly my secondary school experience is limited, but are students really hoping to go on to a STEM apprenticeship with just two A levels in the bag or did I misunderstand that bit.
Secondly (mainly aimed at Leith) as a software engineer isn’t it better to know the structure of the code over the content? If that is the case isn’t the computing study more beneficial than the mathematical one?
As you were 




PDR

1337467. Wed Nov 27, 2019 7:57 am 


barbados wrote:  I’m following this with interest, and have a couple of questions.
Firstly my secondary school experience is limited, but are students really hoping to go on to a STEM apprenticeship with just two A levels in the bag or did I misunderstand that bit.

The Engineerinf Degree Apprenticeship Scheme (EDAS) does just that. It takes people with Alevels and puts them through a 45 year programme including an honours degree, extensive practical experience and a level 4 diploma, after which they exit into the business as qualifed and experienced junior engineers. The entry requirement is 95 UCAS (eg three Alevels at grade C or better) points including the equivilent of 2 Alevels in STEM subjects. It is quite deliberate that once this threshold is past the actual grade is ignored  the remainder of the assessment is against an aptitude test and a series of interview events because once the entry minima are achieved we are more interested in the actual people and less interested in who has the highest quals.
Quote: 
Secondly (mainly aimed at Leith) as a software engineer isn’t it better to know the structure of the code over the content? If that is the case isn’t the computing study more beneficial than the mathematical one?

Leith can give his response, but mine would be this:
Around 5% of the skills and workload of a software engineer is coding. The bulk of it is software design; a bunch of activities from requirements capture and characterisation, analysis, data design, domain design, algorithm design etc etc. These days the process [in our environment] largely employs modelbased methodologies like UML and SysML which put the emphasis on understanding the needs of the content. Of the coding work itself, the bits that aren't mechanistic are where particular aspects need tight optimisation to fit it into hardware or system constraints. Coding can be tought far more easily than the understanding of the functionality being coded.
PDR 




dr.bob

1337476. Wed Nov 27, 2019 8:57 am 


PDR wrote:  without the Maths the apprentice would be stuck implementing any ballistic calculations (which need differential calculus), would get lost in anything that involved more than very basic trig, would not be able to look at anything harmonic (fourier extractions, sample frequency aliasing errors etc) and would struggle grasping the role and limitations of of numerical integration techniques in dynamic calculations. 
If I employed a software engineer who tackled. say. a fourier analysis by dusting off his Alevel maths textbooks and started coding from first principles, I'd recommend him for immediate reassignment to the janitorial department. Given that such problems have been solved multiple times by other (possibly better) coders in the past, it would be a criminal waste of time to not reuse some working code that was freely available on 'tinterwebs.
Also, as Leith says:
Leith wrote:  I'd be wary of applying someone with that sort of background to a large scale PCbased software project if they didn't have a sound grasp of data structures, abstraction principles, algorithmic complexity, how to design scaleable, testable, maintainable software components and how to design for reuse. I've worked with some extremely bright physicists and mathematicians who've struggled to grasp some of those concepts for lack of formal software engineering training. 
I am currently working on a panEuropean project to launch a new space telescope. This involves a lot of software engineering to create the required infrastructure for the ground segment (i.e. the bit that deals with the data once it comes down from the telescope). The people working on this span the range from pure scientists to people coming from a more computer sciencey background.
Without exception, the pure scientists write the worst code. It's difficult to maintain, and including it in a large project with multiple contributors is a nightmare. 




barbados

1337496. Wed Nov 27, 2019 11:41 am 


That about hits the nail on the head I was aiming for.
I would have expected the code to be written by people that know how to write code, not those that know how to “do science”
Coding is a lot like driving in my book, I only got as far as vb, but could probably work out what was supposed to happen (and why it wasn’t) in most “languages” because the structure is always the same  you can also tell when the code is written by someone who has habits are order words because bad the written wrong in. 




suze

1337504. Wed Nov 27, 2019 11:54 am 


Numerophile wrote:  @suze: I am impressed, not so much that you should have learnt this in the first place, but that you should still remember it given your subsequent career! 
You may if you wish take this as evidence for the notion that I am indeed a freak and/or weirdo! Having both a husband and a stepdaughter who have degrees in Mathematics probably didn't hurt either; I absolutely have had to play gooseberry while the other occupants of the breakfast table performed calculus!
dr.bob wrote:  Given that such problems have been solved multiple times by other (possibly better) coders in the past, it would be a criminal waste of time to not reuse some working code that was freely available on 'tinterwebs. 
I do not doubt that there is prewritten code readily available for just about every mathematical operation you're ever likely to need.
But is using it actually any better than believing what you read on Wikipedia? Most of it is probably more or less correct, because someone would probably have pointed it out were it not, but you cannot verify that it is unless you actually understand the math involved. If your billion dollar fighter jet has a catastrophic failure that is traced back to your bit of code, I don't think you'll save your arse by saying "Yea well, I got that from codeforhardsums dot com". 




PDR

1337507. Wed Nov 27, 2019 12:24 pm 


"Reusable code" is one of those fallacies that led to things like the Arriane 5 failure. If people don't understand both the underlying functionality and the detailed implementation (the code) then they shouldn't be allowed anywhere near the software delivery team.
PDR 



