PDA

View Full Version : To what degree is Physics useful in CompSci?



Septimus Faber
2015-01-12, 06:10 PM
Simple question, hopefully with a simple answer. Thank you!

Joran
2015-01-12, 06:24 PM
I majored in Computer Science and am currently working as a web developer.

Uh... not at all, in my current position. The Computer Science major in my university doesn't require any physics. I do remember passing out of the entry level science requirement with AP Chemistry.

I'd imagine if you're doing a physics engine or even a graphics engine, some physics is necessary. Since Computer Science often requires some math knowledge and physics is a lot of applied math, some physics probably is helpful.

cobaltstarfire
2015-01-12, 06:47 PM
My boyfriend got his current (coding oriented) job because of his physics degree (although he knows quite a few coding languages and I think has picked up one or two more since getting his job), but I suspect that's an edge case. He's long since finished the job they originally hired him for, and they've placed him on a new project where he's still doing a bunch of coding and documentation and such.


So I'm going to say it depends on who's looking to hire you in the end?

Joran
2015-01-12, 07:01 PM
My boyfriend got his current (coding oriented) job because of his physics degree (although he knows quite a few coding languages and I think has picked up one or two more since getting his job), but I suspect that's an edge case. He's long since finished the job they originally hired him for, and they've placed him on a new project where he's still doing a bunch of coding and documentation and such.


So I'm going to say it depends on who's looking to hire you in the end?

My friend was a duo astronomy (which is basically physics) / computer science major. He got his doctorate in astronomy and promptly got a job working for an insurance company in their big data division. A lot of astrophysics was crunching large data sets, so his experience was helpful.

cobaltstarfire
2015-01-12, 07:24 PM
The number crunching ability wasn't the main reason my boyfriend got the job he got, he got it because his degree was applicable directly to the project he was hired for at the time. It involved self calibration for the aiming system on helicopter missile launchers or something like that.

He still isn't number crunching either as far as I'm aware. Although he can crunch numbers quite well and seems to enjoy it.

gomipile
2015-01-12, 09:44 PM
Learning physics will help you learn to apply mathematics better. It will also help improve your analytical and problem solving skills. Both of those are very helpful in CS.

Also, if you're a good computer scientist then you like playing with the programming languages and tools you're learning to use. Physics provides a vast and playground with models amodels problems of every difficulty and complexity level to code solutions and simulations for.

For example, when I was a sophomore, I learned how to use dynamically allocated arrays in C while helping a physical chemist improve a simulation of the physics of cold noble gas atoms.

Drumbum42
2015-01-13, 11:34 AM
To what degree is Physics useful in CompSci?

Well normally I'd say it's not, other then a great way to learn number crunching. I may just be an odd case, but I work at a company that deals with making sure that measurement talking tools and devices work properly. We make sure that Volt meters and Pressure Gages are telling the correct values. So it's all data sampling and error propagation, a combination of my physics 201&202 and statistics.

While I don't need this knowledge on a daily basis, it's really handy to know this stuff when it comes up.

NichG
2015-01-13, 11:57 AM
A single physics course is not going to be terribly useful. I'd say however that a physics degree is pretty handy if you're doing anything remotely related to simulation or modelling however. Not because of any specific physics theorem or fact or technique, but because of some things that having a physics attitude can help with.

Once you start to think of things in terms of dominant effects and perturbations, symmetries, coarse-graining, and other sorts of 'natural' approximation schemes you can very intuitively deal with a lot of common numerical problems that come up in simulations. A lot of regularizations, stabilizing techniques, etc are also natural when seen from that kind of mindset.

In terms of something like machine learning and data science, a physics mindset is sort of a way to side-step the 'no free lunch' theorem. While it's true that no one algorithm will be the best for all possible sets of data, and in the fully general case you can't say much about any algorithm's predictive performance relative to any other, most data sets we're interested in come from the real universe, and that means a specific set of priors. If you know those priors, you can incorporate that into your algorithm design and get some free benefits.

For example, a fully connected deep neural network is really good at image recognition but only for very small images (~20x20 pixels). It doesn't scale with the image size at all because it doesn't have translation, rotation, scale invariance, lighting direction invariance, etc all built in. However, those are all symmetries of real images if you want to e.g. identify an object. When you build those symmetries in, you get a convolutional neural net instead, and it scales much better. That kind of thought process (identify the symmetries -> find invariant operators, conserved quantities, etc) is what modern physics is built on. But the earliest you get a glimpse of that kind of viewpoint is a 'proper' mechanics class (e.g. Lagrangian and Hamiltonian mechanics, etc).

On the other hand, all of this won't help you that much for a lot of other CompSci things (like compiler writing, programming language design, or even stuff like working on large projects with other coders).

pendell
2015-01-13, 12:08 PM
Simple question, hopefully with a simple answer. Thank you!

Not really. I've done both. I was just short of a physics minor in school.

Physics is most useful if you work as a contractor for someone like Lockheed. When the programming you are writing is scientific code meant to model an aircraft engine, or simulate an aircraft flight, physics is useful.

If you're not going for a hard science application though, physics isn't useful so much as logic is. The reason we required CS students at my old school to have a hard background in chemistry or physics is because we wanted them to have a background in applied advanced mathematics. If you have that already, physics isn't especially useful.

Respectfully,

Brian P.

Avloren
2015-01-13, 12:18 PM
It's possible to make an argument of "Knowledge of [Field X] is useful to a programmer, because you can write software to solve problems in [Field X]" for almost any X, because software is used in nearly every field/profession under the sun. I'm currently employed developing software for the taxi industry, so.. knowledge of how taxi companies operate is actually somewhat useful to my current job - go figure, I wouldn't have anticipated that when I was in college.

Prospective programmers should take this as encouragement: no matter where your interests lie aside from coding itself, odds are there's a way to combine programming with them, and maybe even find someone willing to pay you to do it.

But is physics particularly useful to a programmer, moreso than other fields? Enough to justify two semesters of it my university required for a compsci bachelor's? I really don't think so. I love physics, I enjoyed studying it, I spend lunch breaks attempting to grasp relativity and causality violations, and I joyfully apply my admittedly limited physics knowledge to the scifi game I'm coding as a hobby; I've never even looked at a programming job that would've used it. Such jobs certainly exist, so programmers with an enthusiasm for physics should not feel discouraged, but I feel comfortable asserting that an arbitrarily large percentage of programmers (say 95-99%) won't ever need anything they learned in a physics class for their work.

qechua
2015-01-14, 07:57 AM
To approach this from the other direction, a lack of physics won't adversely impact your abilities. I'm Masters pure CompSci and work as a Java programmer for a fairly heavy weight scientific institution. Our science "department" numbers around 600 and about 2/3 of those are PhD or above in their respective fields. In some cases, the number of people who work on some of these topics can be counted on one hand, and they are all under our roof. There is no way I could understand everything I need to implement from them, given the scope, and often asking the scientist(s) to explain it in basic terms results in even more confusion. As such, I'll either be provided a pre-written python/fortran/C script which I RPC, or they'll provide the maths/whatever and some test data, and I'll implement it. As long as I can read the requirements, I can implement it; I don't actually need to understand how or why it works. Once you get over that disconnect (and accept that scientists can't code properly!) you can function just fine.

Grinner
2015-01-14, 11:36 AM
Around the Internet you can find various reports of what people studied in school and what sorts of jobs they were working years later. Among the physics majors, a surprising number of them ended up in computer-oriented positions. I imagine there's quite a bit of overlap between the fields.

factotum
2015-01-14, 04:43 PM
I imagine there's quite a bit of overlap between the fields.

I wouldn't say there is, really, except inasmuch as the same sort of people who find physics interesting enough to study would also be the ones who want to study computer science.