Ben Breech
Recently, I received an email out of the blue from
someone who had read a (still incomplete) essay I wrote about
combining Physics and Computer Science. He said he was horrible
at physics and asked me why a CS student should need to take
a physics course. Here's my response along with some of his
original email. [Names have been withheld.]
=================
> After reading your article [on combining Physics and Computer Science] I
> actually want to know your opinion and experience you've had so far at
> combining the two. You see I'm majoring in computer science and one of the
> schools I'm trying to transfer to requires at least two years of calculus
> based physics. I'm really good at the programming and mathematics of
> computer science, but I'm horrible with the physics. I really don't
> understand why physics is really needed for someone like myself who is going
> to focus on OS design and algorithm analysis, perhaps you can give me an
> answer. Furthermore, and more importantly, does being bad at physics
> automatically make me a bad programmer???
Various thoughts, in no particular order:
A fair question at this point would be "Fine, but what does any of that have to do with programming and computer science? I'll write my programs logically so therefore I don't need physics nor that thinking style at all." True. But where are you going to get your solution from? Before you can program something, you have to know what you're programming. You have to come up with a solution first. The thinking style practiced in physics gives you an idea of how to solve difficult problems. Perhaps you can't solve it directly, but you can start making approximations to the problem and figuring out the limitations and finding out what works. That's the type of thing that gets done in physics classes.
At this point, I would encourage you to pick up a copy of the "Design of the Unix Operating System" by Bach from a library and thumb through it. Unix is filled with examples of this type of thinking. Perfect answers are hard, so approximations are made to get a efficient and reasonably functioning system. File system design, memory managers, schedulers; all that embodies this type of thinking. Physics courses give you an opportunity to learn and practice these skills. (Don't get me wrong; it takes a long time to cultivate these skills, but you gotta start somewhere and after that, you can practice them just naturally in solving whatever problem you're looking at.)
******
The general point I'm trying to get across is that taking physics courses for computer science students may seem silly but it's not. As a developer, chances are you will not draw a force diagram, or create a Gaussian pill box to compute an electric field, or solve a wave equation in 1d, or ever care what a harmonic oscillator is. However, the style of problem solving and obtaining solutions will help you greatly.
I know a frosh physics course can be brutal. A large part of the difficulty derives from trying to apply hard and fast memorization rather than trying to reason your way through problems. At that level, the courses are as much about developing problem solving skills as they are about the solutions themselves. Hopefully, you'll have a professor who emphasizes the thinking part more.
Good luck.
ben