Regarding the alter tablespace begin/end backup ...
You have to tell the Oracle rdbms that you are about to use an OS utility to make a backup copy of running (hot) database files. This causes the rdbm to write entire block images to the redolog instead of block fragments. If it did not do this, the OS utility could end up copying an inconsistent (fractured) block. It would be simpler (code-wise) to put all the tablespaces in hot backup mode, then copy all the files, then take all tablespaces out of hot backup mode. But this would place ALL tablespaces in hot backup mode for the entire duration of the copies, which could generate a huge amount of redo due to the full block images being journaled.
So your script is taking the recommended approach of placing only a single tablespace at a time in hot backup mode.
But a much more sophisticated approach is to use Oracle's Recovery Manager (RMAN), which comes bundled with the rdbms. You can schedule full and incremental backups, and it does these while the database is running. But it does not place the tablespaces in hot backup mode - it does not have to because it is knowledgeable of database block structure, and if it grabs an inconsistent block due to bad timing, it knows it so it just reads the block again. And RMAN backs up only in-use blocks, so a 30 GB database backup might consume only 18 GB. RMAN creates its backups files to disk, and I don't know what you get with Standard Edition, but the Enterprise Edition has tight integration with 3rd-party backup software such as Veritas.
And RMAN is very solid beginning Oracle 9i.