What are tips and what do they do? And what is the tip select algorithm and where is it used for?
Tips in the context of iota (if they are not meaning small payments, as in tipbot) refer to transactions that have not been confirmed by other transactions.
When you make a new transaction, you (or rather the node you are connected to) will have to choose two tip transactions that your transactions should approve. Instead of just randomly selecting two tips (or always using the newest two tips), there is a tip selection algorithm that is run and which will select the tips, to make sure that tips are chosen in a way to make the tangle converge (have all transactions approved) quickly.
For more (mathematical) details of how the tip selection algorithm works, you probably have to read the IOTA whitepaper.
In IOTA, every new (unconfirmed) transaction is known as a tip. These tips should each reference two previous transactions.
Choosing which tips to extend is decided by a Random Walk Monte Carlo algorithm which uses random tip selection to ensure that only good transaction branches grow.
How consensus is reached if random numbers are being used is explained without all the math at https://forum.iota.org/t/iota-consensus-masterclass/1193