The best way to handle this is via the URL Parameters Setting in Google Webmaster or a robots.txt file.
Google added this functionality to handle the exact issues your'e describing, so there's no need to drastically change functionalities which would likely require editing core files in your CMS.
If you click on URL Parameters under Site Configuration in Google Webmaster you will find a list of queries and for each one there available options that instruct google as to how to handle these pages.
To do this:
1. Click Edit for the Paramater you'd like to configure (i.e. course, cooking, etc).
2. In the Dropdown Menu, select Yes. Changes, reorders, or narrow page contents.
3. Choose the option that best describes how the parameter affects the page content.
4. Choose how GoogleBot should crawl these pages.
- I usually choose "Let GoogleBot Decide" as it's Google your trying to please ;). I've designed and optimized several eCommerce store with multiple parameters and this option handles the crawling and indexing of these pages correctly 99% of the time. If you still experience Duplicate Content issues after editing these settings, simply choose the Ignore option.
Dynamic websites are very common these days and this tool is designed by Google specifically to handle parameters in the best possible way and allow Google to understand the URL structure of your site.. The "Don't have dynamic URLs solution" isn't a solution at all, as many modern functionalities rely on dynamic URLs, such as layered navigation in Magento or other eCommerce platforms. How do you suggest filtering products by price, size, color, etc without creating dynamic URLs? These functionalities IMPROVE user experience and navigation. The text in the address bar isn't always the important factor when a user is navigating a site.
Don't overthink it.
Take advantage of the functionality and only de-index pages that are causing duplicate content problems. If you notice specific dynamic URLs are appearing in SERPs too often then create a 301 redirect from that dynamic URL to a landing page with more user friendly URL.
Hope this helps.
Anthony