implement separate templates for 1 post type

You may use template redirect action to check if there is parameter set for description and based on that you can show desired template.

<?php 

add_action('template_redirect', 'course_template_redirect', 1);

function course_template_redirect()
{
    global $wp_query;
    if($wp_query->post_type=='courses' and $_REQUEST['showdesc']=='1')
    {
        //include your template from your theme folder. for e.g include('mytheme/coursetemplate.php');

    }
}

?>