Which CS Courses Should a Physics Major Take to Boost Employability?

CS courses for a Physics Major?

  • Data Structures

    Votes: 5 83.3%
  • Logic for Computer Science

    Votes: 1 16.7%
  • Computer Architecture

    Votes: 1 16.7%
  • Numerical Methods

    Votes: 4 66.7%
  • Management Information Systems

    Votes: 0 0.0%
  • Computational Finance

    Votes: 0 0.0%
  • Software Engineering

    Votes: 1 16.7%
  • Distributed Systems

    Votes: 1 16.7%

  • Total voters
    6
Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
5 replies · 3K views
wj2cho
Messages
20
Reaction score
0
Hello PF :)

I am a physics-major-wannabe who wishes to increase his employability by supplementing my degree with computer science courses. I have already taken Python and C and will most likely take C++ with Unix next semester. I have a room for two more elective courses, but as a non-CS major, I can only access limited number of courses which are list in the poll. I would appreciate your opinions in advance.
 
Physics news on Phys.org
When you say increase your employability, do you mean open up the possibility to a wider range of non-physics-related jobs, or have a better chance at a physics-related job?
 
pascal12 said:
When you say increase your employability, do you mean open up the possibility to a wider range of non-physics-related jobs, or have a better chance at a physics-related job?

I meant the former. Thanks for bringing this up.
 
Data Structures
Numerical Methods
and Algorithms (which is not in your list)

Have the potential to be great courses, but courses very greatly. Keep in mind that programing courses are neither necessary or sufficient to developing useful skills. Try to get on a physics project with some programming for some practical experience.
 
There's no description of those courses, or their prerequisites. For example, if the computation finance course has data structures and numerical methods as prerequisites, you might get a hint of the hairy mathematical techniques needed to be a quant. If it doesn't, you're going to learn spread sheets and accounting.

If you can choose but one, it's a tossup between data structures and numerical methods. If you can take two, those are the two I would recommend. After that, it gets a bit murky. Computer architecture and software engineering are both worthy topics. As for the rest, you didn't give enough information about the courses or about yourself.

Distributed systems -- Without a synopsis, this could be anything between a trade school level class on how to use middleware to a very hard but worthy class on how to use threads, multiple processes, and multiple processors. MIS? My opinion only, but you don't want to go there. Logic for computer science? Without a synopsis I can't even hazard a guess what that course would be about. Surely it's not a semester long course on Boolean algebra. If it is, you don't want to go there. If it's about NAND gates, NOR gates, flip flops, adders, and ALUs: That's a very worthy topic, but only if you want to major in digital electronics and work for a chip maker.
 
lurflurf said:
Data Structures
Numerical Methods
and Algorithms (which is not in your list)

Have the potential to be great courses, but courses very greatly. Keep in mind that programing courses are neither necessary or sufficient to developing useful skills. Try to get on a physics project with some programming for some practical experience.

Algorithms are only open to CS majors who pay twice as much tuition as I do :(

But thanks for the advice, I'll try to get a hands-on project.

D H said:
There's no description of those courses, or their prerequisites. For example, if the computation finance course has data structures and numerical methods as prerequisites, you might get a hint of the hairy mathematical techniques needed to be a quant. If it doesn't, you're going to learn spread sheets and accounting.

If you can choose but one, it's a tossup between data structures and numerical methods. If you can take two, those are the two I would recommend. After that, it gets a bit murky. Computer architecture and software engineering are both worthy topics. As for the rest, you didn't give enough information about the courses or about yourself.

Distributed systems -- Without a synopsis, this could be anything between a trade school level class on how to use middleware to a very hard but worthy class on how to use threads, multiple processes, and multiple processors. MIS? My opinion only, but you don't want to go there. Logic for computer science? Without a synopsis I can't even hazard a guess what that course would be about. Surely it's not a semester long course on Boolean algebra. If it is, you don't want to go there. If it's about NAND gates, NOR gates, flip flops, adders, and ALUs: That's a very worthy topic, but only if you want to major in digital electronics and work for a chip maker.

Sorry for missing so much information. Detailed descriptions of the courses can be found here:http://www.ucalendar.uwaterloo.ca/1314/COURSE/course-CS.html
though I changed the titles little bit.

It seems like I should take data structures and numerical methods. Thank you everyone.