🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Programming and Higher Mathematics

Started by
58 comments, last by dr3w 5 years, 9 months ago
5 hours ago, Fulcrum.013 said:

Programming != coding. It is kind of engeenering. Coding is just a final part. Programing language is just something like pen intended to describe a way to solve a problem (aka algo) to computer. But to describe it by code you have to find it way first. It require to describe problem mathematically first.

THIS is the core WHY, I think.

If one wants to be no more than a monkey-coder making code from detailed specifications (and I've worked with a lot of people like that), then you can get away with a limited knowledge of Maths.

If one wants to actually look at a real world problem/need and be able to specify, design and code the system which addresses that problem/need, then you need all the tools you can get in your toolbox, especially Maths as for most things it has a tool or other that works or at least helps.

Advertisement
9 hours ago, Fulcrum.013 said:

May be it language issue, but on slavic languages anything of it called engeenering. By other world anything related to any tech (not machinery or construction only) or ever chemistry and economy, that require to find way how to solve tasks and prove it solution by calculations/mathematical theories doing by persons that have qualification engeener of related field. For eхample engeeneer-programmer, engeneer-builder, engeneer-economist or ever engeneer-mathemathic and so on.

In English - or at least, in Canadian English - "engineering" and "tech" are different things, even though some tech workers are sometimes called "engineers." Colloquially, "tech" usually refers to software or information technology. "Engineering" refers to things like designing bridges and machines. Where I went to school there was a degree program called "software engineering", but it was just a specialization of computer science, which was a department in the faculty of science. "Software engineers" who go through that degree program cannot become certified professional engineers because "software engineering" is not actually recognized as "engineering" by the organizations that license engineers. Some schools even put computer science under the faculty of mathematics, not science!

A true "engineer" to a Canadian is someone who wears the Iron Ring - someone who has learned the ethics of engineering and gone through a ritual where they swear an sort of "engineer's oath" to uphold that code of ethics and can be held accountable by the public for mistakes (which is NOT true of the vast majority of software developers!). Typically when I think of engineering, I think of fields like mechanical engineering, where there is a lot of emphasis on rigorous mathematical design of physical things. Such engineers do write software - and there are "computer engineers" - but they tend to approach software problems with the mindset that the code itself is only incidental to the real problem, which is almost always control of a piece of hardware. Computer scientists and "software engineers" typically have the opposite. Most of our problems involve software as the primary thing we are building - how it is structured and how it interacts with other software and even whether the customer is happy with how it looks on the screen. How we are going to deal with (inevitable) requirements changes a month before ship - or three years after shipping our software...

Since my undergrad was in computer science, I didn't go through the Ritual of the Calling of an Engineer, I don't wear the Iron Ring, and I am actually not allowed to call myself a "professional engineer." Nonetheless, my job title is "software engineer", which is a term I try to avoid applying to myself because it arguably dilutes the meaning of the word "engineer".

 

Well IMHO, programming is coding. Add programming to engineering and you'll get something call 'Software Engineering' --- though I think many engineer disagree.

Edit: @Oberon_Command has expanded the engineering clause before I finished posting. Well said and well explained.

http://9tawan.net/en/

I already knew some places regulated the term, but the words "engineer" and "engineering" are regulated in many places, unregulated in others.

Wikipedia (the fount of all truth) says Canada strictly regulates the word.  The US regulations vary by state.

US centric, but about 18 months ago in Oregon there was a big kerfuffle about an electronics engineer who wrote about a perceived design flaw. The Oregon State Board of Examiners for Engineering and Land Surveying attempted to censor his paper and fined him for calling himself an engineer. After it hit the media and the man fought back, the agency backed down on their fines but his lawsuit against them remains. While nobody disputes they can regulate the terms for employment licensing in specific industries, it is still an open question if they can regulate use of the word in general, and the case is still grinding through the courts.

In some places terms like software engineer and electrical engineer are not regulated, in other place anybody who utters the word engineer near their name for anything from train engineer to civil engineer to sanitation engineer requires a government license.

4 hours ago, frob said:

In some places terms like software engineer and electrical engineer are not regulated, in other place anybody who utters the word engineer near their name for anything from train engineer to civil engineer to sanitation engineer requires a government license.

Here  it slightly different situation. By one hand Engineer is a qualification in technical-related fields that confirmed by state university issued diploma of Specialist degree, after 5 years of university and defence of diploma project tesis. As stated on my Specialist diploma - "has obtained a Specialist of Applicative Mathematic and CS degree and confirmed qualification Engineer-programmer",  that have a ISCED level 7 so similar to Master degree on English-speaking regions.  In different of it  Bachelour diploma that have a ISCED level 6 stated "has obtained a Bachelour of Applicative Mathematic and CS degree and confirmed qualification Technecian-programmer", .

By other hand "engineer" is name of position that require a engineer qualification on related field, but often can be occupied by engineers of other fields, or in some cases by bachelours that continue university study of related field part-time.

#define if(a) if((a) && rand()%100)

On 9/21/2018 at 12:10 AM, RidiculousName said:

I'm especially interested in programming

So ever by government issued qualifications for programmers require a degree in applicative mathematic field. It is becouse on real development main task of programmer usualy sounds like as  "just find a method to compute this f...ng digits properly". For examle today i'm developing a extended containers navigation and manipulations component. So main problem of debugin performed today can be specified as "just recalculate positions of this f...ng iterators properly", while global task for wich its component will be used tomorrow sounds like "just generate this f...ng jump-table of parser state machine properly". And so on every single day. And it not a whim of managers or boses. It just a way to get a solution. Becouse by main concept of CS any programm converts input sequence of symbols coded by input alpahbetta to output sequence of symbols coded by output alphabetta. For example video game  get a user pressed keys codes and mouse position codes as input sequence and convert it to sequence of codes of pixel colors and sound volume codes for showing graphics and playing sounds, using a programm code as hard part and datapack as flexible part of conversion rules.

#define if(a) if((a) && rand()%100)

On 9/20/2018 at 2:10 PM, RidiculousName said:

I've been wondering why universities require Computer Science students to take a lot of mathematics classes. What sort of things will higher mathematics such as trigonometry, calculus, etc. help me achieve with computer science? I'm especially interested in programming.

If there were a way to explain you how much i suck at algebra, you would not believe it. I use calculator for sums, just to be sure LOL
I never so far had a problem with programming. And I've done some hardcore encryption(Galois Field math).

Only thing you need is to understand the concept. Then you can use the formulas other people provide. You have to understand the concept.

Programming is logical not mathematical. You do have to be intuitive at geometry for 3D. You have to visualize inside your mind the problem to solve. Then copy the formulas you need from google. In all the programming schools i were, we never were expected to know about math. On exams we were given the formulas we need and even an extra explication about the formulas. Our lectors always told us: "you don't need to be good at math in order to program. If math is so heavily used and so important in a company, they will have a mathematician aside from the programmers"

Of course it is a plus to be good at math. It is a plus to be good at biology too. Not everyone is a McGyver. Don't torture yourself about having flaws.

Programming is more about algorithms than about formulas.

(i've lost 10 years because i was afraid to try programming. I was afraid because i have been told it requires lot of math. Then i tried it and it was super intuitive. I could have started to program 10 years sooner if i were not being told myths)
(i've seen a guy who was very good at math, but was having problems to understand how a for-loop works...)

1 hour ago, NikiTo said:

Then copy the formulas you need from google

What you will do in case google have no needed formulas? Also how you will understand how it formulas have to work ever in case it exists on google. And also how yo determine is it formuals applicable to your specific case? And how you will determine that its formulas optimal? And what you will  do in case it formulas just will not work as expected just becouse your specific task conditions not fit conditions of numerical stability?

For examlpe google please formulas how to calculate distance betwin lines in 4D space.

Also most likely for most cases you will find a sets of differintial equations for integarting wich finite-difference scheme have to be estabilished first.

Really it no ready solutions on google for something more complexive then simplified 2+2 addition. It ever no ready solutions into textbooks certified for universities. For most hard problems it usualy have a basic concepts of solution design, that usualy intuitively clear and without textbook. Just becouse hardest parts of any problem usualy subject of design and designed solutions is subject of know-how. For example i has read yerstaday a textbook by geometrical modelling authored by chief programmer of compass geometrical core. It contain 250 pages of exactly and full description of NURBS surfaces, operations over it, finding intersections schemas and so on methods that also applicable to many other fields and can be found from other sources , but for key problem - decompositing system of constraints equations to subsystems just a basic concepts of building evaluation tree and no any single word about specific to geometric modeling constrains context cases that can simplify a design of decomposition algo for set of possible geometrical constraints.

Also as said one of top-manager of Google - main problem of Google company that it forced to hire a googlers instead a scientists and pray that thay able to produce quality software 

 

 

#define if(a) if((a) && rand()%100)

1 hour ago, NikiTo said:

Programming is more about algorithms than about formulas.

Really algebra is only tool to design algorithm. also world algorithm comes from distorted "Al Khorezmy said:" - words by wich arabian mathematist Al Kharezmy began his matematical papers where describe step by step to solve different mathematical tasks and invent for it purposes to replace particular case specific numbers by variables names and have a universal formula to calculate result instead a single number . It same that nowadays we call textual description of algo. So algebra has born to serve a algo design.

#define if(a) if((a) && rand()%100)

1 hour ago, NikiTo said:

Programming is more about algorithms than about formulas.

This depends on the problem you want to solve. Often the math is trivial and the problem is just to make it fast, often the algorithm is trivial but the math has to be worked out and is not yet known.

So by thinking you get away with bad math skills, you reduce your ability to solve problems, especially problems that are still unsolved and so worth to spend work on.

1 hour ago, NikiTo said:

Our lectors always told us: "you don't need to be good at math in order to program. If math is so heavily used and so important in a company, they will have a mathematician aside from the programmers"

It seems you wasted your time in this school - that nonsense is really hard to believe. (i made the same mistake - wrong school, and i still suffer everyday by learning math myself.)

Maybe this school targets to build an army of web developers... something like that.

This topic is closed to new replies.

Advertisement