Programming Tutorials
Did you read the Introduction first?
< Introduction | Programming | Programming Advanced >
On this page... (hide)
- 1. HSF Software Training Center
- 2. C++
- 3. Python
- 3.1 Basics
- 4. Fortran Manuals and Tutorials
- 5. Floating Point
- 6. Debugging
- 7. Other links
1. HSF Software Training Center
- Has Unix shell, Git, Python, C++, ML, Docker, GPU etc
- Courses
2. C++
2.1 C++ suggested tutorials
- Simon Connell's Start-up notes on programming C++
- CERN ATLAS suggestion C++
- Sergio Ballestrero's Coding Physics in C++ lecture notes (work in progress)
- An Introduction to Scientific Programming in C++ by S.P.Bamford
This is the nicest tutorial I've found - it presents things pretty much in the right order; but I'm unsure on the copyright status, so I've put it in our bibliography tool for restricted access. - C++ for graduate physics students by William H. Bell
including some Standard Template Library, and examples for Root. Quite good, but some serious errors (for example, uninitialized pointers are not always NULL!) - Thinking in C++ - by Bruce Eckel
local copies
2.2 C++ more tutorials
- http://cplusplus.com/ includes examples, and a tutorial starting with the procedural approach.
- C++ in 21 Days.
- Objects Firsts An introduction to programming, using OO concepts and C++. May be a bit heavy.
- http://www.oopweb.com has also other tutorials
- Introduction to Object-Oriented Programming Using C++
- An Introduction to the Imperative Part of C++
You can skip Lecture 4: Files and Streams, but do not skip the Appendixes; you will need to supplement this with a more complete tutorial on the "Object Oriented" part of C++ - Object-oriented programming a good article from Wikipedia.
- How to do simple I/O in C++.
- Computational Physics with C++
- http://www.cprogramming.com/tutorial.html
- A good list of C and C++ tutorials
- http://www.aei.mpg.de/~jthorn/C++.html (broken link)
2.3 C++ Reference material
- Thinking in C++ Excellent book by Bruce Eckel
- make a local copy available
- C++ Programming from Wikibooks
- Informit.com C++ Guide provides plenty of information on C++ - from introductory to very advanced level.
- The GCC compiler collection that is used here.
3. Python
3.1 Basics
- Installation of Development Environment
4. Fortran Manuals and Tutorials
- The Linux Fortran Information Page
- User Notes On FORTRAN Programming
- Fortran 90 for the Fortran 77 Programmer
- g77 is the standard compiler in Scientific Linux 4, but its development stops with GCC 3.X. Pity.
- gFortran is the new Fortran 95/2000 compiler of the GCC 4.X collection. It's not yet as good as g77 at Fortran 77 code like the CERNLIBS - especially old code.
- g95 is another free Fortran 95 compiler. It is possibly more advanced, compatible and stable than gFortran, but it is not part of the official GNU Compiler Collection.
- The Fortran Company has a web site with a lot of information.
5. Floating Point
Almost every use of computers in Physics calculations involves Real numbers. But computers use Floating Point numbers, which are most definitely not the same thing as the mathematical concept of infinite precision Real numbers.
- The Perils of Floating Point A classic.
- Floating Point tutorial
What the Floating Point representation of a Real number is. - http://www.aei.mpg.de/~jthorn/numerical.html
6. Debugging
see the ProgramDebugging page.
7. Other links
- Glug's prorgamming links: when you are better at Linux and Programming
- Various C/C++ links by SJF local and on the net One of the best C/C++ compendium out there on the World Wide Web