What's the best way to switch from Stock Android OS to Cyanogenmod on Galaxy S3? I would like to switch my Stock Android OS to Cyanogenmod with the least trouble possible on my Samsung Galaxy S3.

So basically I would like to keep:


My data (files, contacts, sms)
My apps
My apps data (progress of games)


Is this even possible?

What is the best approach to do this?
If your device is not yet rooted, an alternative to Alex's suggestion of Titanium Backup (which I'd second otherwise) would be to use adb backup (creating a backup file for each app separately is important here, as adb restore just works per backup file, not per app), or one of its frontends. There's also the possibility to do that directly on the device, using e.g. Helium Backup.

Please also take a look at the backup tag-wiki for more information.