展开

通识课程程序设计与算法简介教学

发布时间:2020-07-03   |  所属分类:计算机应用:论文发表  |  浏览:  |  加入收藏

  常规程序设计类课程的教学内容编排与教学方式不适用于通识课程《程序设计与算法简介》。为此,本文提出根据课程定位与选课学生的专业构成,结合启发式与案例式的方法,基于教学实践,对教学内容合理编排,使学生了解基本的程序设计与算法知识,为培养应用型、复合型人才打下基础。

通识课程程序设计与算法简介教学

  关键词:程序设计与算法;教学内容;启发式教学;案例式教学

  一背景介绍

  随着现代社会的发展与进步,高等学校的通识教育存在着广泛的需求。与此同时,由于计算机技术在各行各业的应用越来越广泛,各学科开始重视计算机应用技术的掌握。非计算机专业的学生对计算机程序设计及其相关技术表现出了越来越浓厚的兴趣[1]。社会的发展与学生的需求促使我校开设了面向全校学生、不限专业的通识课程《程序设计与算法简介》。该课程通过讲授程序设计类通识课程内容,进行素质教育与创新教育,以培养适应社会发展需要的应用型、复合型和创新创业人才,使本校的学生可根据自己的兴趣爱好、职业发展选择此类课程。

  二教学方法的改革与实践

  (一)教学目标与授课对象

  本校各年级学生、不限专业均可自由选择通识课程《程序设计与算法简介》。本课程的教学目标为:通过介绍程序设计的基本概念,使学生掌握基本语法与程序设计的基本思想。通过与数据结构、算法分析设计知识的结合,使学生进一步理解程序设计的思想,对学生进行编程能力、计算思维和基本算法实现能力的初步培养,从而实现程序设计知识的普及化,也为学生将来从事程序设计相关学科的学习与工作奠定基础。分析选修本课程的学生专业构成,约60%的学生来自于计算机科学、电子信息、信息管理等与计算机科学联系较紧密的相关专业,约20%来自于国际贸易、经济学、广告表演等文科专业,余下的20%学生来自于动物医学、土木工程、资源环境等其他工科专业,近三年选修该课程的学生来自超过40个不同的专业。由此可见,本课程不仅受到了计算机与信息处理类专业学生的欢迎,也引起了其他专业学生的兴趣。其中,大学一年级的学生为该课程的选课主体,约占80%,大部分来自于计算机与信息处理类相关专业。通过调查学生的选课意愿发现,选修本课程的大一学生大多将本课程作为《数据结构》、《算法分析与设计》的导入课程,力图经由本课程的学习,完成向专业学习的平稳过渡。而非计算机与信息处理相关专业的学生,则是在经过了1至2年的专业学习后,了解或体会到程序设计及其实现能力在本学科中的重要性,有针对性地选择本课程作为其专业学习的有益补充。

  (二)教学内容的选取

  本课程的总学时为32学时。作为通识课程,除讲授程序设计、数据结构、算法的基本概念、实现及其应用外,还需考虑到学生来自不同专业,需要针对该课程合理编排授课内容,选取易为不同专业的学生较易理解的课堂实例进行展示与讲解。本课程的主要教学内容由《程序设计基础(C实现)》、《数据结构》、《算法分析与设计》三门课程组成,其中,《程序设计基础(C实现)》、《算法分析与设计》的内容约占到总学时的90%。《程序设计基础》课程在计算机及其相关专业中的教学目的[2]一般包括:掌握程序设计的基本原理、概念及其实现;通过理解与掌握C语言所支持的数据类型和表达式,掌握C语言的基本知识;掌握基本的程序设计方法,能使用函数进行模块化的程序设计;通过程序设计基础知识的学习,具备基本的程序设计能力。通过配套的程序设计实验与课程设计,熟悉程序开发和调试环境,并能够熟练的使用C语言进行程序的编写与调试。《算法分析与设计》课程[3]在计算机及其相关专业中,一般通过介绍与分析递归、分治、动态规划、贪心算法、回溯法、分支限界法的思想及其实现,使学生深化理解数据结构与算法相结合的实践,从而培养学生使用算法解决实际问题的能力。同时,在专业课教学中,《程序设计基础》、《数据结构》和《算法分析与设计》都配有适量的实验课程。在通识课程教学中,由于学生专业的不同,对本课程的定位、教学目的、前期课程的不同,导致本课程的教学内容[4]与教学方法[5]无法延用计算机科学、信息处理等专业教学中的相关内容与方法,需要根据该课程的学科特点、前期课程合理设置教学内容,使学生掌握该门课程的知识。在理论课教学中,我们对通识课程《算法与程序设计》按照11个专题的形式进行授课,各内容与学时分配如表1所示。课堂教学中,由计算机与程序设计的基本概念出发,引出程序设计、数据结构与算法的基本概念与相互关系。从介绍高级程序设计的基本数据类型与常见表达式开始,引出程序设计中的流程控制与模块化程序设计的思想,接着介绍数据结构的基本概念及其应用,进而通过经典的算法案例深化基本知识点,并将程序设计、数据结构、算法分析与设计的知识进行统一与融合,通过这十一个专题,使程序设计与算法分析的知识存在一致性与连贯性,在授课的过程中能保持学生的学习兴趣,获得了较好教学的效果。

  (三)教学方法实践

  在专业课教学中,《程序设计基础》[6]、《数据结构》[7]和《算法分析与设计》[8]通常采用代码或伪代码解释算法实现,工程应用性强但较抽象。要在较短学时内,使学生掌握课程的主要知识及其实现,需要充分调动学生的逻辑思维、数学分析和综合概括能力。考虑到本课程学生的专业背景以及本课程的定位,我们在教学中,除了在讲授变量定义、函数定义与调用时部分使用实例代码外,其余概念的讲解及其逻辑关系均借助流程图、示意图或动画进行讲解与演示。在教学中,以讲授程序设计的思想、数据结构的逻辑关系、算法设计的思路为授课主要内容,通过常见的简单应用作为案例,以学生熟悉的实例分析引出新知识,降低理解知识点的难度,并提高学生的学习兴趣。例如在回溯法介绍与分析中,以学生耳熟能详的走迷宫游戏为实际案例,从人对迷宫路径的探索出发,引出回溯法的实现方法,挑选合适的数据结构,通过流程图的展示方式,完成迷宫问题的回溯算法分析与设计。通过对此类简单实例的分析,使学生掌握算法分析与设计的基本方法。要通过纯理论学时完成本课程的知识讲解,需要使用启发式与案例式相结合的教学方法,针对该课程不限专业与年级的特点,重新安排适宜的教学内容与授课案例。通过较易理解的实用问题,激发学生的学习兴趣,并引导学生主动探索程序设计、算法在所学专业中的应用,促进学生的通识学习与专业学习。

  (四)课程知识点编排

  (lb添加解释实验例子选择,介绍变量的声明与赋值,引出变量,变量地址的概念。迷宫问题的例子,介绍区别,切入点。加些参考文献。)基于各知识点间的关系,我们重新设计与编排了程序设计、数据结构与算法的相关授课内容和知识点,力图通过引入计算机求解问题之间的关系,循序渐进的使学生更好的理解程序、数据和算法之间的联系。为此,我们将数据结构的理论教学与实践教学内容进行了合理编排,各知识点之间的关系如图1所示。如图1所示,通识课程《程序设计与算法简介》授课主体内容由《程序设计基础》、《数据结构》和《算法分析与设计》组成,所涉及知识点较多。图1在表1的基础上,对各知识点进行了具体说明。由于本课程设定的是编程零起点教学,因此首先需要对程序设计基础内容进行较为详细的介绍。由于现阶段未配备相应的实验课程,因此需要在全理论教学的形式下,使学生能理解高级程序设计的基本概念与思想。针对《程序设计基础》所涉及内容,我们选择了从程序设计概述出发,从计算机发展简史引出程序设计语言,接着简要介绍算法的基本概念,为后续的经典算法讲解进行铺垫。其后从流程控制出发,介绍了顺序、选择、循环,在流程控制的实例学习中,引入常用运算符及其运算规则、表达式计算等知识点,其中着重介绍关系表达式与逻辑表达式以便与选择和循环结构相结合,以实例案例引入流程控制的知识点。在模块化程序设计知识中,将高级程序设计中的基本知识点综合体现,使学生能基本掌握高级编程的基本知识与思想,并具备设计与实现简单编程的能力。针对《数据结构》所涉及的知识,我们由数据结构基本概念出发,基于前期的程序设计知识与引入的数据结构基本概念,引出算法复杂度,为后续的算法知识点进行过渡。通过对线性表、栈、队列、树和二叉树、图的概念及其实例进行讲解,将程序设计知识进行了应用与深化。尤其在数据结构最后一个知识点,图的实例讲解中,使用最短路径为案例,将贪心算法中的经典案例——最短路径作为图的案例进行讲解,有助于知识的承上启下,降低了向算法知识转化的难度。在完成程序设计、数据结构基本知识与案例讲解后,可进行算法分析与设计知识的讲授。《算法分析与设计》作为信息处理相关学科的高年级专业课,对程序设计和数据结构知识的掌握和理解及其应用有较高的要求,即使是信息处理及其相关专业的学生对该课程的熟练掌握也有一定难度。针对通识教学,我们将算法部分的内容进行了简化,在介绍经典算法原理与设计思路的基础上,选择使用较易理解的例子体现算法设计思想。例如,对动态规划算法的介绍,考虑到本科学生都要学习线性代数,矩阵计算是必学内容。因此选择矩阵连乘作为动态规划算法的实例,从而保证学生能首先理解案例的数学过程,进而能将学习重点放在算法的设计与分析上,从而降低了学生将问题转化为算法求解最终到程序实现的难度。

  三结语

  随着计算机与信息处理技术的飞速发展,程序设计技术所涉及的数据处理与信息处理在各行业领域的作用日益增大,越来越多的学生对程序设计与算法产生了兴趣。由于前期课程、授课学时、学生专业背景的不同,通识课程《程序设计与算法简介》不宜采用专业课的授课方式。为此,本文对通识课程《程序设计与算法简介》的教学内容和教学方法进行了探索,通过在教学中采用启发式与案例式相结合的教学方法,以简化的实例进行课程内容的讲解,激发学生的学习兴趣,提高了学生对程序设计、算法的核心概念和实现的理解水平,为学生提供了探索算法分析与实践的可能与途径。

  参考文献

  [1]廖彬,胡金龙.通识课程“信号与信息”的教学方法研究[J].教书育人(高教论坛),2014(5):65-65.

  [2]张先伟,曲志坚,张立红等.程序设计能力培养体系建设与实践[J].计算机教育,2019,(9):75-79.

  [3]袁李萌子,周杰.《算法分析与设计》课程教学初探[J].教育现代化,2019,6(70):83-84.

  [4]邱劲,王平.以项目为导向的数据结构课程改革与实践探索[J].西南师范大学学报:自然科学版,2019,(9):167-172.

  [5]陈青青.数据结构课程中分步式案例设计的探索与实践[J].计算机教育.2019,(10):109-112.

  [6]胡晓辉,等.c语言程序设计课程中计算思维能力的培养[J].教育现代化,2019,6(10):38-40,52.

  [7]刘鑫.应用型本科院校数据结构课程教学改革与实践[J].教育现代化,2016(20):21-22.

  [8]刘建军,方伟,宋晓宁.计算机专业算法类课程教学模式改革与探讨[J].教育现代化,2016(31):58-59,64.

  作者:廖彬

转载请注明来自:http://www.uuqikan.com/jisuanjiyingyonglw/21805.html


    上一篇:计算机教育与计算机科学技术
    下一篇:计算机安全监控信息网络技术