1) Switch on auditing. EM can look at the audit trail though I wouldnt say the interface was particularly sophisticated.
2) Create a system ddl trigger to log the DDL to a table.
I have gone for the second approach where we log to a table all DDL statements. I have also created a DBA report which gets emailed to me every morning which includes all DDL statements in the last 24 hours on all of our databases. Another handy trigger is one to capture errors which also gets emailed to the developers.