- #1
wmac
- 20
- 0
Hello everyone,
Head of our Physics department has asked me to teach a programming course for a few of their PhD candidates (mostly theoretical) who unfortunately are very bad in programming. He has shortage in his department and he wants someone from CS to do the job.
I looked around and it seems C/C++, Fortran and Python are used more in Physics research. I don't know Fortran so I have to choose either C/C++ or Python.
1- Python is a nice language with some suitable libraries such as numpy etc. and you can draw graphs and diagrams much easier than C/C++. Furthermore it is possible to link it to C/C++ libraries if needed. It is even possible to use clusters, GPGPU and multi-thread facilities with mature libraries (with relative ease). In addition, the written code can be run on either Windows or Linux with almost no change.
I have these books in mind:
* A Primer on Scientific, Programming with Python
* Python for Scientists
* High Performance Python
2- C++/C is fast but I worry that lack of easy to use libraries (incompatibilities, difficulty of selecting and using the libraries etc.) becomes another problem for these students. There is also the difficulty of allocating very big arrays and working with pointers etc which need deep understanding and excellent debugging capabilities. The advantage is that it will be fast even with their large (sometimes super large) arrays.
3- The dean suggested that even Matlab might be Ok but having talked to his students, Matlab has proven too slow for them and they have problem with memory consumption of Matlab (some arrays would not fit while I could fit them easily on even a Laptop with C language).
I'll appreciate if those with postgraduate teaching experience or the PhD candidates could comment.
Regards
Head of our Physics department has asked me to teach a programming course for a few of their PhD candidates (mostly theoretical) who unfortunately are very bad in programming. He has shortage in his department and he wants someone from CS to do the job.
I looked around and it seems C/C++, Fortran and Python are used more in Physics research. I don't know Fortran so I have to choose either C/C++ or Python.
1- Python is a nice language with some suitable libraries such as numpy etc. and you can draw graphs and diagrams much easier than C/C++. Furthermore it is possible to link it to C/C++ libraries if needed. It is even possible to use clusters, GPGPU and multi-thread facilities with mature libraries (with relative ease). In addition, the written code can be run on either Windows or Linux with almost no change.
I have these books in mind:
* A Primer on Scientific, Programming with Python
* Python for Scientists
* High Performance Python
2- C++/C is fast but I worry that lack of easy to use libraries (incompatibilities, difficulty of selecting and using the libraries etc.) becomes another problem for these students. There is also the difficulty of allocating very big arrays and working with pointers etc which need deep understanding and excellent debugging capabilities. The advantage is that it will be fast even with their large (sometimes super large) arrays.
3- The dean suggested that even Matlab might be Ok but having talked to his students, Matlab has proven too slow for them and they have problem with memory consumption of Matlab (some arrays would not fit while I could fit them easily on even a Laptop with C language).
I'll appreciate if those with postgraduate teaching experience or the PhD candidates could comment.
Regards
Last edited: