You will not need to master all of these topics, and you might never use some of them. It's still a good idea to have a basic understanding of how they are used, though.
- C++. Many students will be familiar with C++ from programming courses, so most examples for group discussion will be given in C++.
- Code::Blocks. This is an open-source integrated development environment (IDE) that can be used in either Windows or Linux. It's something like Microsoft Visual Studio. Most students will probably feel more comfortable programming within an IDE.
- Octave. Basically a free (GNU) equivalent of Matlab.
- Linux and UNIX. A very large proportion of scientific computing is performed on clusters or supercomputers, and these almost always use some "flavor" of UNIX. Linux is a popular "flavor" that can be run on desktop or laptop computers.
- SSH. This allows you to securely log in to a remote computer. If you use a cluster or supercomputer, this is how you will get to it.
- SFTP. You may find that it is convenient to edit your program on your PC, but how do you get it up to the cluster? You use SFTP. You also use SFTP to copy the output of the cluster down to your PC.
- Subversion (SVN). Subversion is a popular form of revision control, which allows you to manage changes to your source code.
- Sage. Sage is a collection of open-source mathematical software. Not everyone will need to use Sage, but many students may find it useful.