Question 1: UI Automation allows a user to set up a set of actions to be performed automatically. It is generally used in automated testing. Such as integration test, or functionality tests (On both mobile and web platforms)
Question2/3: It depends on what platform you are on. There are a lot of options and what you pick depends on what you are trying to achieve and which platform you are on.
If you are on iOS, Apple has a UIAutomation Library which does exactly that.
If you are on Andriod, you can try Robotium.
There is also this scripting language called Sukili which works on Linux, Mac and Windows platform. http://www.sikuli.org/
If you have no programming background, I would highly recommend the Sukili Script. It used in web testing, gaming and productivity improvements.