I study physics -- How can I expand my computer knowledge?

In summary: All computer programs are implementations of algorithms. The contents of the course in question are classic algorithms and data structures. These are the fundamental building blocks for solving any problem. If you're doing any type of programming at all, you will be using these data structures and algorithms.That sounds like a great place to start.
  • #1
davidbenari
466
18
I'm interested in expanding my computer knowledge. Specifically, computer science knowledge.

I've taken a few numerical methods courses, but they were all in MATLAB.

My strategy this summer was to study physics problems like PDEs and solve them in some language I don't know like C++. Also, I want to take a course on Coursera.com called Algorithms which happens to be Java based. For this course, I'm taking an intro to Java programming on Udacity.com, but I'm starting to fear that I'm wasting my time.

How do you suggest I can expand my CompSci knowledge this summer? Should I learn C++ or Java ? Should I take that Algorithms course? Should I instead just focus on solving those physics problems on C++ instead of MATLAB?

I'm also not a complete expert in MATLAB, so maybe I should also stick with MATLAB for a while, until I can do amazing things with it. And there's this other Mathematica thing which does amazing things which I should also learn to do!

Suggestions?

Thanks.
 
Physics news on Phys.org
  • #2
What applications do you want to be able to code? General CS education includes data structures and operating system design. Are you interested in those?
 
  • #3
Sure, I'm interested in that. In general I want it to have some connection to physics or scientific computing in general. Is this too vague?
 
  • #4
This should be way too simple. As a Physics or Engineering or ANY Science student with a degree as the goal, you are maybe required to study a beginning programming course for credit. Maybe your program does not require this. Make it a requirement for yourself anyway. Such a course is not something you do in the su
 
  • Like
Likes davidbenari
  • #5
Nothing wrong with MATLAB. I know many will disagree but now and throughout my career I found FORTRAN to be most valuable. The IMSL Libss and numerical libraries are well developed in FORTRAN. In general, the rudiments of a language can be learned in a year but it really takes many years to becom proficient in any language. Probably best to remain good at MATLAB, and start learning FORTRAN, and the associated Math libraries NAG, IMSLLIBS, Numerical recipes, etc.
 
  • Like
Likes davidbenari and symbolipoint
  • #6
Hey davidbenari.

If you ever pick up statistics I'd recommend learning R.

It's free and open source and is used a lot by people doing statistical analysis and has enough libraries to do nearly everything one would need it to do.
 
  • Like
Likes davidbenari
  • #7
davidbenari said:
Also, I want to take a course on Coursera.com called Algorithms which happens to be Java based. For this course, I'm taking an intro to Java programming on Udacity.com, but I'm starting to fear that I'm wasting my time.
Given where you're at currently, it won't be beneficial for you to take that algorithms course. You need to have gone through an object oriented programming course first.

I'm also assuming you're referring to the algorithms course taught by Sedgewick. I've gone through it and read his textbook that the course is based on. Both are excellent and served as a nice refresher for me. If you really want to take the course and get the most out of it, spend your time learning and using Java for at least a semester. The more programming experience you have, the more you'll get out of studying algorithms.
 
  • Like
Likes davidbenari
  • #8
Jaesum, do you think that course could be useful to me as a physics guy?
 
  • #9
davidbenari said:
Jaesum, do you think that course could be useful to me as a physics guy?
Yes, absolutely. I think coursera breaks it into two different courses. The first course covers the first half of the book, and the second one covers the second half. It assumes you already know object oriented programming, though.

You can buy the book and the lectures from amazon as a package deal without going through coursera. It's the route I chose, but I'm an algorithms enthusiast.
 
  • #10
Jaeusm said:
Yes, absolutely.

Could you be more specific? What sort of problems in physics require some education in algorithms?

I'm taking learning Java right now to be able to take that course, I hope it'll work hehe.

Thanks.
 
  • #11
davidbenari said:
Could you be more specific? What sort of problems in physics require some education in algorithms?
All computer programs are implementations of algorithms. The contents of the course in question are classic algorithms and data structures. These are the fundamental building blocks for solving any problem. If you're doing any type of programming at all, you will be using these data structures and algorithms.

Your question is somewhat analogous to asking a carpenter if learning how to hammer nails into boards is helpful for building a house. I'd say it's essential at the most fundamental level. It's usually the second or third course required by computer science programs after one or two programming courses.
 
  • Like
Likes davidbenari

Related to I study physics -- How can I expand my computer knowledge?

1. How important is computer knowledge in the field of physics?

Computer knowledge is essential in the field of physics. With the advancements in technology, many experiments and simulations are now carried out using computers. In addition, data analysis and modeling are also heavily reliant on computer skills. Therefore, having a solid understanding of computers is crucial for success in physics.

2. What are some ways I can expand my computer knowledge as a physics student?

There are several ways to expand your computer knowledge as a physics student. You can take courses in computer programming, data analysis, and scientific computing. You can also practice coding and data analysis on your own using online resources and tutorials. Additionally, collaborating with computer science students or joining a physics research group that involves computer work can also help broaden your computer skills.

3. Do I need to have advanced computer knowledge to pursue a career in physics?

Having advanced computer knowledge is not a requirement for a career in physics. However, it can give you an advantage in your research and make you a more competitive candidate for certain positions. It is always beneficial to have a well-rounded skillset, and computer knowledge can only enhance your abilities as a physicist.

4. Are there any specific programming languages or software that are important to learn for physics?

The most commonly used programming languages in physics are Python, C++, and Fortran. These are used for data analysis, simulations, and modeling. In terms of software, some commonly used programs in physics include Mathematica, MATLAB, and LabVIEW. However, the specific languages and software may vary depending on the subfield of physics and the research being conducted.

5. Can I still be successful in physics if I am not very skilled in computers?

Yes, you can still be successful in physics even if you are not highly skilled in computers. However, it is important to have a basic understanding of computers and be able to navigate and use software effectively. It is also important to be willing to learn and improve your computer skills as needed for your research and career in physics.

Similar threads

  • STEM Academic Advising
Replies
3
Views
860
  • STEM Academic Advising
Replies
7
Views
1K
  • STEM Academic Advising
Replies
4
Views
973
  • STEM Academic Advising
Replies
9
Views
976
  • STEM Academic Advising
Replies
14
Views
1K
  • STEM Academic Advising
Replies
16
Views
560
  • STEM Academic Advising
Replies
22
Views
4K
  • STEM Academic Advising
Replies
14
Views
791
  • STEM Academic Advising
Replies
1
Views
545
  • STEM Academic Advising
Replies
7
Views
2K
Back
Top