.. _basicSkills: ====================== Preliminary Requirements ====================== To successfully fullfill the course objective, students are strongly recommended to learn the following basic skills. The items below **must be self-taught and mastered by each student** during the first two weeks. They are NOT going to be covered in classroom lectures. Students should consult with the instructor if they are not familiar with the following preliminary requirements. 1. **Fortran 90** Proficiency in scientific programming languages using Fortran 90 (or higher) or C. Fortran 90 is the default language choice for the class. If you are not familiar with Fortran 90, it is your own responsibility to teach yourself how to program in Fortran 90 (or above) with the proper use of compilers, compiler flags, debugging, optimzations, makefile, modular programming, etc. A good resource of mastering Fortran is available from `Chapter 2 `_ of the AM 129/209 online lecture note. Your skill of using Fortran 90 will be **the most important essential component** of this course. | 2. **Git** Use of version control systems: svn or git (default). All coding projects and homework assignments need to be submitted to each student's Git repository by deadlines. Any submission using emails won't be accepted and won't be graded. To do this, each student will need to set up a Git repository of her/his own from Bitbucket. You can learn how to setup your own Git repository from `Chapter 1 `_ of the AM 129/209 online lecture note. It is very important to have your own Git repository up and running no later than the beginning of the second week. | 3. **Python (default) or Matlab for plotting** To learn more about Python, please refer to the `AM 129/209 online lecture note `_. | 4. **Linux/Unix Operating System** Like all scientific programming, programming Fortran 90 is to be conducted on the Linux/Unix operating system (OS). This means that you will need to make one such operating system available to you in order to proceed the coursework. For this reason, using the Windows operating system won't be of any useful for the course. This is not only true for this coursework but also for many areas in scientific programming too. There are a couple of different ways of using a Linux/Unix system: (a) install a Linux-like OS on your Windows-based personal computer(s) (e.g., dual-booting, virtualBox) (b) use Mac OS (c) use Linux machines available on campus by accessing them via remote logins * (Example) A good resource called `Unix Timeshare `_ is available for all UCSC students. After making a Linux-like OS available for you, you should learn basic Linux/Unix commands to compile/run/execute/debug your Fortran routines on the Linux operating system. To learn details of how to do one of these, see `Chapter 1 `_ of the AM 129/209 online lecture note. | 5. **LaTeX for scientific documentations** For more resources, please refer to the `AMS 200 lecture note on LaTeX `_. ====================== Useful Resources ====================== * Educational resources to learn such basic skills are available in my online lecture note for `AM 129/209 `_. * The instructor can provide tips and advices, however, it is assumed to be students' responsibility to familiarize with the basic skills as part of the course work.