raschemmel:
Not to split hairs but I think calling the Upload process "self-programming " is a bit of a stretch.
I disagree: when uploading a sketch, the Arduino processor is running the bootloader program, reading in the new sketch, and programming internal flash with that new program. It really is programming itself, in so far as it is programming new code into the program flash memory space. That is a very valid meaning of the word "programming" and I think is very close to what the OP is asking.
There is the other meaning of "programming" which is an intellectual activity involved with developing the software that gets programmed into the program flash memory. Clearly, the Arduino is not programming itself in that sense of that word, and it would require a significant amount of artificial intelligence to do so. But I don't think the OP is looking to do anything even remotely like that.
The OP is new. He doesn't know all of the terms and when to use them. Looking at the description of his project, it's pretty clear that he's not looking to write some artificial intelligence to make the processor develop new software. He's not even looking for the software to modify or reprogram the program flash memory.
When he says programming, it looks to me that he's looking for non-volatile data storage. His application enters a "program mode" which allows the operator to define (or "program") a desired output pattern so that it can be played back in "normal mode" when the correct stimulus is received. This isn't "programming" in either sense of term discussed above. It's simply writing the desired pattern into EEPROM.
To the OP: Yes, the Arduino does have the ability to do what you want. You can write software to read patterns of inputs and use the EEPROM library to store those patterns. They will be remembered while the power is off, and can be recalled later when that pattern is needed.
For a new person with no programming experience, it will not be a trivial or simple project. You will have to do more than a little learning, studying, and experimenting, before you get it to work. But by the same token, it's not rocket science, either. You will be able to do it, just don't expect to be able to do it the first day. DVDdoug has good advice about starting slowly.