数学类专业中《算法与设计》课程实验的改革

点赞:17027 浏览:71671 近期更新时间:2024-03-24 作者:网友分享原创网站原创

摘 要:《算法分析与设计》课程是计算机科学和应用数学类专业的核心课程之一,在数学类专业同样起着非常重要的作用.本文通过对实验课程教学过程中存在的问题进行分析,提出了提高学生上机实现算法的兴趣和能力,改善教学质量的方案,并且通过了课程实践的验证,改革后的措施获得了良好的效果.

关 键 词:算法分析与设计实验教学改革Python算法

1概述

《算法设计与分析》课程是计算机科学和应用数学类专业等的核心课程,其前导课程主要有《面向对象程序设计》、《数据结构》等.该课程由于涉及大量的抽象数据类型和算法,理论和实践性很强,各种经典算法思想都是从经典问题的解决方案中总结提炼出来的,因此学生学习起来有相当大的难度.在该课程的教学过程中发现,多数学生对该课程只注重理论学习,忽视了运用实践,没有利用算法思想来思考和解决实际问题,导致实验课的教学效果不理想.但是,实验课是算法设计与分析课程的一个重要的环节,课堂上所学的内容只有通过实验才能较好的掌握,它是检验教学效果和巩固所学算法的关键.因此就要求教师思考如何设计与改进实验教学的内容、方法和手段,从而改变算法实验课的现状.

数学类专业中《算法与设计》课程实验的改革参考属性评定
有关论文范文主题研究: 关于计算机科学的论文范文资料 大学生适用: 高校毕业论文、自考毕业论文
相关参考文献下载数量: 42 写作解决问题: 本科论文怎么写
毕业论文开题报告: 文献综述、论文总结 职称论文适用: 杂志投稿、职称评中级
所属大学生专业类别: 本科论文怎么写 论文题目推荐度: 最新题目

2存在的问题分析

当前的算法实验教学效果不理想,学生在实验过程中往往表现为对算法流程无从下手进行实现,并且缺乏信心,主要原因有以下方面:

2.1课程本身内容难度大《算法分析与设计》课程内容丰富,理论性强,学习量大.课程内容主要是讨论和介绍计算机算法的复杂性理论,结合对一些熟悉的算法进行分析和总结,强化基础理论知识,对一些大型工程软件的分析,会有一定的辅助作用.它主要介绍计算机科学及应用领域常见的有代表性的非数值算法及算法设计的若干重要方法,同时,介绍算法分析的基本知识.阐述计算模型和时间复杂性的定义;讨论递归技术和算法分析的基本手段;介绍算法设计的几类方法,如分治法、回溯法、贪心法、动态规划法、分枝限界法等,并结合某些有实用意义的经典算法来加深设计方法的探讨,由浅入深地进行算法效率分析,使学生在掌握各种算法设计方法和分析基本技术的同时,也使逻辑思维得到锻炼.

2.2对程序设计语言掌握不好数学类专业学生在前导课程中只学习了C语言程序设计、面向对象程序设计和数据结构,学习和接触到的都只是简单的数据类型和单个函数的程序,主要是进行语法的学习,因此对《算法分析与设计》实验课程中需要大量使用C语言的头文件、宏定义、结构体、指针等的学习较少,缺乏理解,从而造成了学生在进行算法实验中不懂如何编程实现或者是在编译阶段错误很多,因此学生对此很容易造成失去学习的积极性.而且学生面对大量的程序编译调试错误时,他们的注意力就会集中在编程语言的语法层面,忽视了算法思想本身,形成恶性循环,使得教学效果很不理想.

2.3实验项目安排不合理原有的实验项目安排不合理,第一和第二个实验相对较难,而学生在进行该课程实验的时候,一般都是沿用原来C程序设计实验的作法.实验前没有做相应的预习和准备,没有考虑数据的逻辑结构和存储结构,到实验室一打开计算机就直接进入编程环境,立即开始编写源代码.紧接着就编译运行,然后就是编译错误很多,即使编译通过,运行结果与预想的结果却相差很远.然后就造成学生做完第一次算法实验后就再也提不起兴趣了,总觉得这个实验都是太难了,没有信心实现出来,从而造成了恶性循环.

3实验教学改革的实践对策

根据上述问题,结合该课程的知识内容抽象、教学难度大的特点,我们从如下几个方面对该课程的实验进行改革和优化:

3.1实验指导书内容的改革在新的课程实验教学大纲指导下,针对知识点适当地选择具有代表性、难度适当,而且工程项目中使用较多的典型算法,让学生进行编程实现和调试.将实验分为基础实验、自选实验、综合实验.其中基础实验为教师在现场辅导学生在实验课堂上必须完成的内容.自选实验为难度更大一些的,要求学生掌握比较复杂的数据结构和存储结构,以及算法的表示和实现.综合实验则是为了让学生在课程教学过程中能掌握程序设计的思想和方法,以小组为单位,选择教师提供的一些大型的综合题目,需要学生全面综合运用所学过的基础知识来解决问题.这样使得不同层次的学生可以选不同层次的实验内容,所有的学生都可以选择适合自己能力水平的实验,实验内容设计基础知识的验证,学生学到的课堂知识可以很快转为可以解决问题的工具,使学生进一步理解《算法分析与设计》对程序设计思想的作用.


3.2编程语言的选择大多数院校的算法实验课程都选择使用C/C++来实现,但是针对数学类专业的学生来说,由于计算机类的课程较计算机科学专业的少,而且存在数学类专业学生的C语言编程水平普遍不高的现象.因此,为了使得学生把注意力从编程语言语法转为集中在算法本身上,我们选择Python脚本语言作为该课程实验的编程语言.Python是一种面向对象、直译式的编程语言,也是一种功能强大的通用型语言.它的语法非常简捷和清晰,采用缩进用于定义语句.美国麻省理工的计算机编程入门和算法课程都是使用Python语言作为编程教学语言[1-5].

例如我们对用蒙特卡罗方法来求PI的问题进行求解,以显示Python与C语言的语法区别:

从上述的示例代码中可以看出,python的可读性非常好,即使不写注释,也能很容易读懂.语法和算法的伪代码有些类似,因此更易于展示算法的运行过程.

3.3实验内容与学时分配改革

减少实验次数,但是保证总学时不变,降低第一和第二次实验的难度,以提高学生对实验课程兴趣.

从上述两个表格的对比中可以看出,新的实验内容中在难易度和学时安排上都做了调整,实验一相对最容易,安排时间也是最少的,此次实验用于引导学生入门.实验二增加了的难度不大,而且增加了实验学时.依次类推,后面的实验就循序渐进了.

4总结与展望

通过对《算法分析与设计》实验课程的改革,提高了学生对该课程的掌握程度,学生通过完成上机的实验项目,提高了学生对实际问题分析的能力和编程水平.《算法分析与设计》实验课程的建设在数学类专业的建设中具有重要作用,结合数学类课程《数值分析》、《组合数学》等,学生在后续的学习过程中能够通过相应的编程实现来强化理论学习的效果,因此,通过该课程实验的改革来激发数学专业学生的编程兴趣、培养动手能力,从而提高学生的整体素质.