How Should Physics Graduates Choose Elective Courses?

  • Thread starter Thread starter Kaldanis
  • Start date Start date
  • Tags Tags
    Physics
AI Thread Summary
Starting an honors degree in Physics presents opportunities to choose additional classes, prompting discussions on balancing personal interests with employability. Many participants emphasize the importance of programming skills, suggesting courses in Computer Science or Electrical Engineering to enhance job prospects. Programming is highlighted as a valuable skill for solving complex physics problems and for data analysis, with recommendations for languages like Python, Java, and Scheme. Scheme is particularly noted for its engaging learning process, while MATLAB and Mathematica are essential tools for physics majors. The conversation also touches on the relevance of a Physics degree for pursuing graduate studies in Nuclear Engineering, with advice to take courses in Nuclear Physics and advanced mathematics. Overall, the consensus is that programming knowledge significantly benefits physics students, both academically and professionally.
Kaldanis
Messages
106
Reaction score
0
In september I'll be starting an honours degree in Physics. On top of the mandatory classes, there will be 3-4 classes per year that I can take in any discipline I want. I'm really struggling to decide what I want to take but I won't get a better idea of the options available to me until closer to the time. I'm trying to find a balance between what I enjoy and what will increase my chances of finding employment at the end of it. I'm thinking of classes in EE or Computer Science and picking up classes to learn programming as I think programming opens a lot of job opportunities. I'm really interested in Nuclear Physics right now as I've been researching it for several projects during the year, and that makes me think it would be useful to take classes in Chemistry too. (i'm not even sure if you can do a masters/phd in nuclear engineering with a undergrad physics)

When beginning your degree in physics did anyone know for sure in what field they wanted to work after it? How long did it take for you to know?
 
Physics news on Phys.org
If you don't know any programming, either take a computer science course or plan to teach it to yourself. It's extremely useful.
 
eri said:
If you don't know any programming, either take a computer science course or plan to teach it to yourself. It's extremely useful.
And also surprisingly fun. I used to hate even the thought of perhaps some day having to do programming, but after taking a programming course this year, I have to say that there's probably no better mixture of fun and useful. It's a bit like playing Sudoku, using simple logic to solve problems. I'm sure it gets more frustrating at times when you're dealing with heaps and heaps of code, but at the outset that's what it felt like.
 
eri said:
If you don't know any programming, either take a computer science course or plan to teach it to yourself. It's extremely useful.

Could you elaborate on why this is (if it applies to physics majors)? And I assume when you say programming you mean C++ correct?
 
There are a few reasons:
(1) Nothing organizes your thought process like programming. Once you ingrain these skills, you will find physics problems much easier to solve.
(2) Physics is more than pencil-and-paper math exercises. These days, many of the major advances depend on parsing through tons of data, or numerically solving equations, etc., stuff that is impossible for any human to do by hand in a reasonable amount of time.
(3) If you decide to leave academia, programming will be one of the most important skills you have when applying to jobs. Engineering is a great, lucrative alternative, and you will be well prepared to enter at least a software engineering career.

Along those lines, I would highly recommend you pick up some circuits knowledge at some point. In addition to leaving electrical engineering as a career option, circuits are essential for many experimental physics fields. They provide the means to translate pure physics phenomena (voltages, temperatures, electric/magnetic fields, etc.) into computerized data for analysis.
 
Also C++ is becoming slightly outdated; it seems like the language to learn right now is Java, with Python as a close second.

However, if you REALLY want to learn the programming thought process and have fun doing it, you cannot beat Scheme as a starting point. There's a really nice book called "The Schemer's Guide" that got me hooked from the start. The thing to realize is that once you know one language, you can teach yourself any other language by referring to an online tutorial, just to learn the syntax.

I'd recommend learning Scheme first. Then it's an easy step to Python, you can easily teach yourself. Java is a bit of a messier language, so it takes some mental preparation to be able to deal with the bugs. Use Eclipse software with Java; it's very good at catching bugs before you even try running the code. If you want to continue along the path that Scheme starts, I'd recommend giving Haskell a try. Like Scheme, it is a beautiful language, something I can't really say of Python or Java.

Some more info: Scheme and Haskell are functional programming languages. The programming is done in terms of mathematical functions, which emphasize input and output over all else.

Python is a scripting language, similar to what you'd see in a Linux terminal. Every line is a command, executed in sequence.

Java is an object-oriented language. Every piece of data is an object of a certain type, which has a set of properties associated with it. The programming centers around modifying these properties appropriately.

As a physics major, you'll need to learn to use MATLAB and Mathematica too. Both require some programming, but you'll be amazed at how trivial it is to pick them up after mastering one of the other languages.
 
the main questions for physics graduates is that," is there scope after bsc physics" and my answer to them is ,yes there is...
 
Thanks drkatzin. I'm not meaning to hijack this thread but I have one more question. I am beginning my second year and I have only taken Physics I and Calc I. Is that enough background to begin to learn some of those languages you listed.
 
PCSL said:
Thanks drkatzin. I'm not meaning to hijack this thread but I have one more question. I am beginning my second year and I have only taken Physics I and Calc I. Is that enough background to begin to learn some of those languages you listed.

Yep. You actually don't need any background, other than basic logical thinking.
 
  • #10
PCSL said:
Thanks drkatzin. I'm not meaning to hijack this thread but I have one more question. I am beginning my second year and I have only taken Physics I and Calc I. Is that enough background to begin to learn some of those languages you listed.

You aren't hijacking it, you're asking questions I have too. I think I'm definitely going to pick up computer science classes for programming along with any electrical engineering ones I can. Seems to give me more options at the end of it
 
  • #11
For anyone who's interested, the Schemer's guide can be found here:
http://www.schemers.com/tsg.html
 
  • #12
drkatzin said:
For anyone who's interested, the Schemer's guide can be found here:
http://www.schemers.com/tsg.html
Thanks a lot, but to restate my question from above, would I be able to understand the introductory lessons with only a background of Calc I and Physics I?
 
  • #13
PCSL said:
Thanks a lot, but to restate my question from above, would I be able to understand the introductory lessons with only a background of Calc I and Physics I?

Yep, programming itself has nothing to do with either calculus or physics. The book is self-contained, and intended for use by all ages (I know fifth and sixth graders who learned to program from it). But I don't think it's dumbed down or anything.
 
  • #14
If you would like to go into Nuclear Engineering a B.S. in Physics would be excellent. Outside of a B.S. in Nuclear Engineering it is probably the best degree you could have to transition to that field.
With your B.S. in Physics you will develop analytically thinking skills, you will become mathematically inclined, and have plenty of background knowledge to be successful in Nuclear Engineering graduate programs.
I am in a Ph.D. program for Optical Engineering and I have a B.S. Physics and I feel that the graduate students that have a bachelors in Physics run circles around students with bachelors in Engineering disciplines.
If you are planning on going to graduate school in Nuclear Engineering I would take Nuclear Physics, an advanced differential equations course if it is offered, you will have to take at least one semester of Quantum but I would suggest taking the second semester of Quantum Mechanics.
 
  • #15
drkatzin said:
Also C++ is becoming slightly outdated; it seems like the language to learn right now is Java, with Python as a close second.

However, if you REALLY want to learn the programming thought process and have fun doing it, you cannot beat Scheme as a starting point. There's a really nice book called "The Schemer's Guide" that got me hooked from the start. The thing to realize is that once you know one language, you can teach yourself any other language by referring to an online tutorial, just to learn the syntax.

I'd recommend learning Scheme first. Then it's an easy step to Python, you can easily teach yourself. Java is a bit of a messier language, so it takes some mental preparation to be able to deal with the bugs. Use Eclipse software with Java; it's very good at catching bugs before you even try running the code. If you want to continue along the path that Scheme starts, I'd recommend giving Haskell a try. Like Scheme, it is a beautiful language, something I can't really say of Python or Java.

Some more info: Scheme and Haskell are functional programming languages. The programming is done in terms of mathematical functions, which emphasize input and output over all else.

Python is a scripting language, similar to what you'd see in a Linux terminal. Every line is a command, executed in sequence.

Java is an object-oriented language. Every piece of data is an object of a certain type, which has a set of properties associated with it. The programming centers around modifying these properties appropriately.

As a physics major, you'll need to learn to use MATLAB and Mathematica too. Both require some programming, but you'll be amazed at how trivial it is to pick them up after mastering one of the other languages.

Best post ever. I never thought about about programming like that before. I haven't started a programming class before but you dispelled my initial biased opinion. Thank you so much!
 

Similar threads

Replies
4
Views
1K
Replies
32
Views
2K
Replies
4
Views
959
Replies
36
Views
4K
Replies
32
Views
3K
Back
Top