PHY480 and PHY905 (sec 002) preliminary survey

Department of Physics and Astronomy, Michigan State University


Spring semester 2018


An essential part of this course is to enable you to do science via numerical experiments and develop projects which allow you to study complex systems. The aim is to enhance what we call algorithmic thinking. With algorithm we mean a finite set of unambiguous instructions that, given some set of initial conditions, can be performed in a prescribed sequence to achieve a certain goal.

Computing means solving scientific problems using computers. It covers numerical as well as symbolic computing. Computing is also about developing an understanding of the scientific process by enhancing algorithmic thinking when solving problems. By 2020, it is expected that one of every two jobs in the STEM fields will be in computing (Association for Computing Machinery, 2013). Computation is an essential and cross-cutting element of all STEM disciplines

Competence about computing and computations is thus an important part of your education. This competence includes topics like (the list here is buy no means exhaustive):

All these elements (and many more) will hopefully aid you in maturing and gaining a better understanding of the scientific process per se. Writing good reports is a central element in achieving such insights.

What follows here are some simple questions about your computing competences, your background and your interests. Hopefully this information will allow us to tailor the course to your interests and background.

Question.

Which programming background do you have?

  1. No experience
  2. Made smaller program, typically some few hundred lines
  3. Made programs with 1000-10000 lines
  4. Made programs with more than 10000 lines

Question.

Which programming languages have you used and/or are familiar with? For a list over the top programming languages in industry and research, see the monthly list made the German company TIOBE. Here we included both compiled and interpreted languages.

  1. C
  2. C++ (specify if you have experience with C++11, C++14 and C++17)
  3. Java
  4. Python
  5. R
  6. PHP
  7. Ruby
  8. Swift
  9. Matlab/Octave
  10. Maple
  11. Mathematica
  12. Tcl
  13. Perl
  14. Common Lisp
  15. Smalltalk
  16. Julia
  17. Basic
  18. Fortran 77
  19. Fortran 90/95/2003/2008
  20. High-performance Fortran (HPF)
  21. Other (please specify)
  22. I have not used any programming language

Question.

Have you used so-called IDEs, that is integrated development environments? Examples are

  1. Qt Creator
  2. Visual C++
  3. DevC++
  4. NetBeans
  5. Eclipse
  6. Xcode
  7. Julia Studio
  8. Ipython notebook and Jupyter
  9. Other (please specify)
  10. I have not used any IDE

Question.

Are you familiar with object orientation? If so, have you written code that is object oriented?

Question.

Are you familiar with version control software? Examples are

  1. Git and repositories like Github and Bitbucket
  2. Dropbox
  3. CVS
  4. GNU arch
  5. Other (please specify)
  6. I am not familiar with version control

Question.

Are you familiar with Unit tests? If so, do you use unit tests when writing code?

Question.

What is your field of specialization and which degree are you aiming at (Bachelor, Master, PhD)? Feel free also to list the courses you are following this semester and which year of study you are presently at.

Question.

Which mathematics courses have you taken and/or are attending this semester?

Question.

If you have followed or plan to follow some computational science course, please feel free to list them as well.

Question.

Have you done any research which involves computations? And if so, have you done computations which involed writing smaller or larger fractions of code?

Question.

How important do you think computation is for your own development as a scientist?

  1. Extremely important
  2. Very important
  3. Moderately important
  4. Slightly important
  5. Not all important

Question.

How important is computation in your research (undergraduate and graduate level)?

  1. Extremely important
  2. Very important
  3. Moderately important
  4. Slightly important
  5. Not all important

Question.

Which expectations do you have to the course? Are there any specific topics you want to work with? And to see exposed via projects and lectures?