Is software engineering, well, engineering?
Re: Is software engineering, well, engineering?
Algorithm deaign sounds like that to you because you dont know what it is.
The reason there are more self-taught programmers is that you do not need an expensively equipped laboratory to study it, a laptop and an internet connection are sufficient. It is not because less knowledge is required.
The reason there are more self-taught programmers is that you do not need an expensively equipped laboratory to study it, a laptop and an internet connection are sufficient. It is not because less knowledge is required.
Re: Is software engineering, well, engineering?
Of course you need knowledge, that's obvious to anyone.
Re: Is software engineering, well, engineering?
And that knowledge is technical and scientific in nature.
Re: Is software engineering, well, engineering?
It's not really, not in the same way.
The real cutting edge stuff that needs physics etc isn't what 99% of coders do. The same doesn't apply to engineers who use applied science all the time. Even a really junior civil engineer, trying to decide which manhole lid is appropriate for near a kids playground, will be calculating loads, forces, strengths of materials etc. A coder who's asked to help stop the ads jumping around now Samsung have done an update is in a very different type of technical environment, and they rarely need to understand the science of how a computer works to do their job.
Coding is telling a computer what to do in an organised way. If you don't like the composer /novelist analogy perhaps "programme manager" or "head of department" is grand enough for you?
The real cutting edge stuff that needs physics etc isn't what 99% of coders do. The same doesn't apply to engineers who use applied science all the time. Even a really junior civil engineer, trying to decide which manhole lid is appropriate for near a kids playground, will be calculating loads, forces, strengths of materials etc. A coder who's asked to help stop the ads jumping around now Samsung have done an update is in a very different type of technical environment, and they rarely need to understand the science of how a computer works to do their job.
Coding is telling a computer what to do in an organised way. If you don't like the composer /novelist analogy perhaps "programme manager" or "head of department" is grand enough for you?
Re: Is software engineering, well, engineering?
"I will utilise the chemistry of this chip in order to make the adverts less jumpy".
"By smoothing the electron flow, I will make the adverts less jumpy".
"Through consideration of harmonics, I will make the adverts less jumpy".
vs
"I will utilise the chemistry of the padding material to make the train less bumpy"
"By smoothing the transmission voltage I will make the train less bumpy"
Through consideration of harmonics I will make the train less bumpy"
"By smoothing the electron flow, I will make the adverts less jumpy".
"Through consideration of harmonics, I will make the adverts less jumpy".
vs
"I will utilise the chemistry of the padding material to make the train less bumpy"
"By smoothing the transmission voltage I will make the train less bumpy"
Through consideration of harmonics I will make the train less bumpy"
Re: Is software engineering, well, engineering?
It sounds like your model of 'computer science' is that it's something to do with the physics of semiconductors. It's actually a body of mathematics for abstract reasoning about the process of computation. Even people doing relatively mundane-seeming things can use it. Concurrency problems crop up in boring-seeming things that involve buying stuff online. Look at papers by people like Tony Hoare or Edsger Dijkstra.plodder wrote: ↑Fri Jan 03, 2020 10:16 amIt's not really, not in the same way.
The real cutting edge stuff that needs physics etc isn't what 99% of coders do. The same doesn't apply to engineers who use applied science all the time. Even a really junior civil engineer, trying to decide which manhole lid is appropriate for near a kids playground, will be calculating loads, forces, strengths of materials etc. A coder who's asked to help stop the ads jumping around now Samsung have done an update is in a very different type of technical environment, and they rarely need to understand the science of how a computer works to do their job.
Coding is telling a computer what to do in an organised way. If you don't like the composer /novelist analogy perhaps "programme manager" or "head of department" is grand enough for you?
Re: Is software engineering, well, engineering?
Sure, but most coders don't need to bother with that stuff, they can just copy and paste big chunks of working code from their buddies if they need to solve that kind of problem. I have plenty of friends who are coders who are pretty candid about how this stuff works.
Re: Is software engineering, well, engineering?
Can anyone remind us what the opposing viewpoints are in this thread?
Not that I'm bothered, it's just that it might be useful for new readers
Not that I'm bothered, it's just that it might be useful for new readers
My avatar was a scientific result that was later found to be 'mistaken' - I rarely claim to be 100% correct
ETA 5/8/20: I've been advised that the result was correct, it was the initial interpretation that needed to be withdrawn
Meta? I'd say so!
ETA 5/8/20: I've been advised that the result was correct, it was the initial interpretation that needed to be withdrawn
Meta? I'd say so!
Re: Is software engineering, well, engineering?
Engineers usually don't bother with designing the simple well established stuff like hydraulic actuators, fasteners, etc., they just download the 3d model from the manufacturer's website and whack it in to the model.plodder wrote: ↑Fri Jan 03, 2020 11:19 amSure, but most coders don't need to bother with that stuff, they can just copy and paste big chunks of working code from their buddies if they need to solve that kind of problem. I have plenty of friends who are coders who are pretty candid about how this stuff works.
Re: Is software engineering, well, engineering?
They really can't always do that.plodder wrote: ↑Fri Jan 03, 2020 11:19 amSure, but most coders don't need to bother with that stuff, they can just copy and paste big chunks of working code from their buddies if they need to solve that kind of problem. I have plenty of friends who are coders who are pretty candid about how this stuff works.
Re: Is software engineering, well, engineering?
Yes, sure, but they still need to specify which actuator / fastener to use, and how it works in reality is that the manufacturer's engineers end up in discussion with the client's engineers to bottom this out, usually once one of them has done some maths and they've agreed the assumptions are correct.dyqik wrote: ↑Fri Jan 03, 2020 12:13 pmEngineers usually don't bother with designing the simple well established stuff like hydraulic actuators, fasteners, etc., they just download the 3d model from the manufacturer's website and whack it in to the model.plodder wrote: ↑Fri Jan 03, 2020 11:19 amSure, but most coders don't need to bother with that stuff, they can just copy and paste big chunks of working code from their buddies if they need to solve that kind of problem. I have plenty of friends who are coders who are pretty candid about how this stuff works.
Plus the initial design for the actuator or fastener will certainly involve some first principles, not something you see with coding.
Re: Is software engineering, well, engineering?
That's right. Always means all them. Most means more than half.sheldrake wrote: ↑Fri Jan 03, 2020 12:16 pmThey really can't always do that.plodder wrote: ↑Fri Jan 03, 2020 11:19 amSure, but most coders don't need to bother with that stuff, they can just copy and paste big chunks of working code from their buddies if they need to solve that kind of problem. I have plenty of friends who are coders who are pretty candid about how this stuff works.
Re: Is software engineering, well, engineering?
And in coding, the kind of snippets of code you're talking about are mostly the equivalent of fasteners. For most jobs, fasteners are well below their performance limits, and are just chosen to match the others in the product, for ease of assembly and maintenance. For more complex lumps of code (libraries, frameworks, etc.) then performance, reliability, interfaces, lifetime etc. are checked out before using them. Usually with all the kinds of discussion you are talking about for actuators.plodder wrote: ↑Fri Jan 03, 2020 12:43 pmYes, sure, but they still need to specify which actuator / fastener to use, and how it works in reality is that the manufacturer's engineers end up in discussion with the client's engineers to bottom this out, usually once one of them has done some maths and they've agreed the assumptions are correct.dyqik wrote: ↑Fri Jan 03, 2020 12:13 pmEngineers usually don't bother with designing the simple well established stuff like hydraulic actuators, fasteners, etc., they just download the 3d model from the manufacturer's website and whack it in to the model.plodder wrote: ↑Fri Jan 03, 2020 11:19 amSure, but most coders don't need to bother with that stuff, they can just copy and paste big chunks of working code from their buddies if they need to solve that kind of problem. I have plenty of friends who are coders who are pretty candid about how this stuff works.
Plus the initial design for the actuator or fastener will certainly involve some first principles, not something you see with coding.
Re: Is software engineering, well, engineering?
Sure, which is why they think they’re engineering. But that same process you describe would also be used to write a concerto, or a Haynes manual, or a cookbook.
Re: Is software engineering, well, engineering?
I guess question is then "why do you think engineering is so special?". It's just making sure something you are making meets requirements.
Re: Is software engineering, well, engineering?
And ideally behaves well outside the bounds of what has been specified.
My avatar was a scientific result that was later found to be 'mistaken' - I rarely claim to be 100% correct
ETA 5/8/20: I've been advised that the result was correct, it was the initial interpretation that needed to be withdrawn
Meta? I'd say so!
ETA 5/8/20: I've been advised that the result was correct, it was the initial interpretation that needed to be withdrawn
Meta? I'd say so!
Re: Is software engineering, well, engineering?
No, that's over-engineering, at least if it imposes additional costs or other trade-offs.
Re: Is software engineering, well, engineering?
Right, so according to that definition Anthony Worral Thompson is an engineer.
I prefer “someone who can apply scientific principles to solve problems” but unfortunately that definition rules out the majority of coders. If you asked a civil engineer to design a fastener from first principles they’d grumble like crazy, reach for the textbooks, and do it (it might take a while, mind). If you asked the equivalent of most coders they would stare at you in a blind panic.
I prefer “someone who can apply scientific principles to solve problems” but unfortunately that definition rules out the majority of coders. If you asked a civil engineer to design a fastener from first principles they’d grumble like crazy, reach for the textbooks, and do it (it might take a while, mind). If you asked the equivalent of most coders they would stare at you in a blind panic.
Re: Is software engineering, well, engineering?
It might rule out a fair number of coders, but as mentioned above, not all coders are software engineers, just as not everyone who draws parts, lays out bolt holes in them, makes an assembly drawing and makes a parts list is a mechanical engineer. My father spent an entire career as a mechanical draughtsman, and in the latter years mostly had the job title of engineer, despite not having a degree. And many software engineers will have degrees in "Computer Science".plodder wrote: ↑Fri Jan 03, 2020 1:53 pmRight, so according to that definition Anthony Worral Thompson is an engineer.
I prefer “someone who can apply scientific principles to solve problems” but unfortunately that definition rules out the majority of coders. If you asked a civil engineer to design a fastener from first principles they’d grumble like crazy, reach for the textbooks, and do it (it might take a while, mind). If you asked the equivalent of most coders they would stare at you in a blind panic.
You're now complaining about the over-use of the title "engineer", not about whether software engineering is engineering.
Re: Is software engineering, well, engineering?
Repeating myself, I’m happy that at the fringes of any discipline you find a lot of crossover and fudge. But mainstream coding is very different from traditional branches of engineering, for the reasons given.
Re: Is software engineering, well, engineering?
Basically, they don’t need to understand and apply science as a routine part of their job.
- shpalman
- Princess POW
- Posts: 8244
- Joined: Mon Nov 11, 2019 12:53 pm
- Location: One step beyond
- Contact:
Re: Is software engineering, well, engineering?
Was Turing a mathematician or a scientist?
having that swing is a necessary but not sufficient condition for it meaning a thing
@shpalman@mastodon.me.uk
@shpalman@mastodon.me.uk
Re: Is software engineering, well, engineering?
From the degree syllabus I posted a couple of pages back, it's a lot of coding. Whereas an engineering degree contains a lot of science - mine had modules containing A-Level equivalent physics, chemistry and biology, as well as loads of applied maths, stats etc.
Re: Is software engineering, well, engineering?
You haven't posted a syllabus for a computer science degree, but one software engineering degree at one university which is traditionally more practically based. Other computer science course will get closer to the hardware, where the physics and maths interact more directly. However, software engineering is necessarily more abstract than electrical engineering, which is in turn less mechanical that mechanical engineering.plodder wrote: ↑Fri Jan 03, 2020 2:26 pmFrom the degree syllabus I posted a couple of pages back, it's a lot of coding. Whereas an engineering degree contains a lot of science - mine had modules containing A-Level equivalent physics, chemistry and biology, as well as loads of applied maths, stats etc.
Even so:
From the Software Engineering course you linked to:
This is applied mathematics.Computer Systems – This module provides a foundation in computer architecture and operating systems with a specific emphasis on their security. Students will learn about computer hardware, software, operating systems, and demonstrate practical knowledge of these during lab sessions. Studying this module student will be able to relate the abstract concepts of logic and number systems to their concrete representation on real machines and identify the security risks in common configurations of computer operating systems and suggest appropriate mitigations. In the practical lab sessions students will also learn to develop shell scripts.
'nuff said.Mathematics for Computing – Mathematical structures are introduced that provide a basis for computer science. Specific topics include logic, set theory, probability and statistics.
Serious maths here as well.Database Design and Implementation – Structured data, held in relational databases, accessed via SQL, supports the information storage requirements of many companies, organisations, and on-line businesses. In this module the student will learn the fundamentals of how to design the structure of data within a relational database, how to interact with data within the database, and how to protect the data within the database.
More serious maths.Data Structures and Algorithms – This module introduces a variety of data structures and algorithms for sequential execution. Classical data structures will be introduced (including stacks, queues, lists, trees, and hash tables) and algorithms for searching and sorting. The performance characteristics of these data structures and algorithms will be explained. Specific coding issues will also be considered such as modularity, genericity, equality, assignment, mutable and immutable objects.
Serious maths in the latter sentence.Concurrent and Parallel Algorithms – The module will introduce students to concurrent program design in the context of multi-core architectures and distributed applications. Where appropriate formal notation will be used for specification.
Very serious applied maths.Rigorous Systems – This module introduces the role of formal systems in rigorous software development and develops base-level skills using a contemporary formal method. The module covers the essential theoretical material (rationale, syntax, semantics) and provides practical experience using an appropriate software development tool.
The module is based on the formal specification language ITL.