高校程序设计基础课程教学改革

前言:寻找写作灵感?中文期刊网用心挑选的高校程序设计基础课程教学改革,希望能为您的阅读和创作带来灵感,欢迎大家阅读并分享。

高校程序设计基础课程教学改革

摘要:程序设计基础课程作为计算机类专业最重要的基础课程之一,对后续专业课程学习、专业能力培养都有重要影响。传统教学方式不能较好地调动学生的学习积极性,对学生工程实践能力的培养不足,难以满足新工科时代的教育要求。本文探讨了该类课程教什么、怎么教、怎么考核等核心教学问题,深入分析该课程当前教学中存在的主要问题,从教学方法、教学内容、实验设置、考试考核等多方面提出教学改革意见和措施,为该门课程的教学与改革提供思路和借鉴。

关键词:程序设计;课程教学;教学改革;工程实践;新工科

1引言

《程序设计基础》对于培养学生的程序设计能力和专业学习兴趣及提升专业学习信心等方面都起着至关重要的作用,为后续的数据结构、web应用开发等专业课程学习打下基础,其核心地位不言而喻。针对师范类院校教育教学的特点和学生的实际情况,通过深入分析该门课程教育教学中各个环节存在的问题和不足,从教学方法、内容、实验以及考核等全方位进行系统研究和探索,有针对性地提出符合实际的有效措施与建议,对于促进课程教学改革效果、增强专业办学能力、以及提升学生专业素养都有十分重大的现实意义。

2当前课程教学中存在的问题

师范类高校有其独特的特点,在教育理念、教学管理等多个方面都不同于工科类院校。在师范类高校开设计算机类工科专业也必然遭遇更多的困难。通过对多年在多所理工类和师范类不同类型高校的教学科研工作经验的分析与总结,并以《程序设计基础》课程为例,发现师范类高校计算机类专业的程序设计类课程存在以下四个方面的问题:

2.1教学方法过于“师范化”

程序设计类课程的目标是培养学生掌握程序设计语言基本语法的同时,重点培养学生的算法设计能力和计算思维,培养学生分析和解决实际问题的能力,而传统的“师范化”讲授教学法并不能很好地实现这个目标。大多数学生遭遇“我大概听懂了,但我还是不知道该怎么写程序”“书上的例子我明白也会写,但课后编程题还是太难”这样一些学习困惑。

2.2教学内容过于“保守”

从教学大纲规定教学内容,到多位教师课程教学过程(听课)讲解的内容均不难发现,当前程序设计类课程教学内容“中规中矩”,教师在教学中以完成大纲要求的常规知识点的讲解为目标,再举个例子对所讲的知识点进行简单演示或说明一下,即完成教学任务。但重新工科要求的角度看,从培养学生工程实践能力与创新思维能力而言,则远远不够。

2.3教学手段比较“单一”,目标性不强

当前的教学以讲授教材内容为主,以上机实验为辅,通过上机操作巩固课堂教学的内容,对课堂教学内容进行验证。这样学生只能掌握教材上有限的知识,其程序设计能力没有与实际开发结合起来,用程序设计解决问题的能力没有得到较好的训练。

2.4教学考核方式不够“合理”

根据调研及与兄弟院校的交流讨论,为了便于考核和阅卷等相关工作的开展,大多数师范类院校的程序设计类课程依然采用传统的纸质试卷闭卷考核。其考核内容则是对语法知识点、知识点的简单应用进行考核,题目方式还是传统的选择题、填空题、判断题等,完全没法满足对学生的算法设计、开发调试等方面的考核要求。

3课程教学改革

针对程序设计类课程教学中存在的上述问题与不足,本文将从以下四个主要方面进行探讨,并提出相应的改进措施。

3.1以新工科教育要求为标杆,采用多样化的教学方法

3.1.1案例教学法

课程案例在于精,不在于多。一个优秀的课程演示案例,应该具有以下三个方面的特点:第一,所描述的问题应该与要演示的知识点、技能点锲合度很高,即该实例中的问题采用所讲授的知识技能点来解决非常适合;第二,内容为学生所熟知,或者易于理解,带有趣味性则更好,能够激发大多数学生的学习兴趣,有助于通过该实例达到对所将知识点的深入理解;第三,跨知识点融合。即涉及多个知识点,除了要演示的知识点外,其他知识点应该是已经学过的,或者是学生已经掌握了的,达到知识点的融会贯通,关联记忆,让学生学以致用,达到灵活运用所学知识技能的目的,这样也有助于提升学生的自信和学习兴趣。

3.1.2翻转课堂教学法

翻转课堂教学法[1]本质上就是教学过程中要以学生为主体,发挥学生的主观能动性。该方法以移动学习、慕课(MOOC)[2]等多种灵活的教学方式,让学生能够利用课外时间自主地学习教学内容中的基本概念、语法等基本知识。而在课堂宝贵的有限时间内,教师可以与学生进行更具针对性的探究式学习[3]和讨论,进行针对实际问题的工程实践类项目设计与开发,使学生对所学知识有更深层次的理解,能运用所学知识进行问题的分析,并提出可行的解决方案,进而提升学生的工程实践能力。

3.1.3基于思维导图的教学法

程序设计基础课程作为第一门编程类课程,对于没有经过程序设计思维训练的大一新生而言,很多内容和设计思想难以理解和掌握。如果按照传统讲授方法,学生很难形成全局整体的认识,重难点也不易把握。一种较好的可行方案是采用基于思维导图的教学方法[4],对各个分散的知识点进行归纳、总结和提炼,以一种非常直观的方式呈现那些复杂的、难以理解的教学内容,并突出教学中的重难点,帮助学生构建完整统一的课程知识体系,培养学生的总结与归纳的能力,引导学生进行思维发散。以变量为例。

3.2以计算思维培养为导向,构建丰富的教学内容

上一节解决了课程教学中怎么教的问题,这一节讨论课程教学中教什么的问题。即便教师教学能力再出色,如果教学内容单一,也是巧妇难为无米之炊。因此,必须根据课程教学大纲和培养计划中的教学培养目标,选取恰当的教学内容,重点培养学生的计算思维和逻辑思维,让教学过程更加饱满,有血有肉。构建教学内容时,应注意下列两点:第一,选取适合的优质教材。现今市面上有大量的程序设计类教材,良莠不齐,定位也各有不同。教材是学生最重要的学习材料,教师应该根据实际需要,选取注重计算思维培养[5-6]、适合自己教学需要的教材。第二,在教学过程中,我们选取的教学实例不应该只是展示相应的语法,应该能培养学生的计算思维,引导和培养学生从多角度去思考问题,启发学生能够分析和讨论其他可能的解决方案或算法,并从内存占用、计算复杂性等方面进行分析或改进,让学生养成严密的逻辑分析和发散的创新设计能力,最终培养学生自主学习、善于学习的能力。

3.3以学科竞赛为抓手和检验手段,针对创新与应用能力的培养设置实验环节

互联网+时代背景下,为培养当代大学生的创新创业实践能力,以赛促教,以赛促学,国家、各级政府和各类高校十分重视学科竞赛。学科竞赛是对学生学科专业能力的全方位考验,注重检验学生运用理论知识分析和解决实际问题的能力,可以有效激发大学生的学习热情,提高其专业学习的积极性。包括ACM国际大学生程序设计竞赛、蓝桥杯全国软件和信息技术专业人才大赛等多个赛事在内,与程序设计相关的学科竞赛越来越丰富,参与的高校和大学生也越来越多。以此为契机,将学科竞赛与课程教学结合起来[7-8],可以实现以赛促教和以赛促学的目的,通过学科竞赛来检验教学效果和学习效果,进而达到帮助教师改进和提升课程教学效果的目的。在课程教学中,可以直接选取合适的历年专业竞赛真题作为教学内容和案例,甚至作为课程实践项目对学生进行训练。

3.4以工程实践能力为考核目标,采取科学合理的考试考核方式

课程考核[9]是对教师教学效果和学生学习效果的直接检验。为了更为准确地考查学生对所学知识的掌握、理解、以及灵活运用的情况,特别是对算法设计及实现的动手能力的考查,有如下两点建议:第一,不要考查基本概念等识记类内容,要以考查多知识点融合、运用多个知识点综合运用的方式进行考核。重点考察对知识技能点的理解和运用能力。第二,以考查算法设计为主,给出一些较为实用的偏工程应用的问题,让学生充分发挥自己的创新实践能力,通过深入分析,进而综合运用课程所学内容进行程序设计并编码实现。从考核上进一步引导和培养学生主动思考、善于分析、长于设计和实现的能力。

4结语

《程序设计基础》作为第一门编程课程,对大一新生难度较大,但它又是诸多后续专业课程必备的前导课程,在专业能力培养中占据十分重要的地位。本文从教学方法、教学内容、考核方式等全方位进行思考和探索,运用先进的教学方法和技术手段,瞄准新工科背景下大学生创新实践能力培养这一核心培养目标,进行深入的教育教学改革探索与实践,希望能为程序设计类课程的教学研究提供有益的参考和启发。

作者:王安志 邵云 单位:贵州师范大学