APP下载

程序设计基础课程教学研究与实践

2021-07-28谢晓艳杨圣洪陈娟李小英蔡宇辉

现代信息科技 2021年2期
关键词:程序设计教学方法教学模式

谢晓艳 杨圣洪 陈娟 李小英 蔡宇辉

摘  要:程序设计基础课程是高校计算机基础教学的核心课程,针对程序设计基础课程在教与学两方面存在的问题,采用翻转课堂、案例教学、项目教学等混合式教学方式,从教学方法、教学内容、教学模式和考评方式等方面进行改革实践,以提高教学质量,使学生在提高程序设计能力的同时,培养学生的计算思维和解决实际问题的能力,在实践中取得了较好的效果。

关键词:程序设计;教学方法;教学模式

中图分类号:TP311.1-4;G642      文献标识码:A 文章编号:2096-4706(2021)02-0177-04

Abstract:The basic programming course is the core course of computer basic teaching in universities. This paper aims at the problems existing in the learning and learning of the basic programming course. Using flipped classroom,case teaching,project teaching and other blended teaching methods. Make reform and practice from the teaching methods,teaching content,teaching mode and evaluation methods and other aspects,in order to improve the quality of teaching. So that students can not only improve their programming ability,but also cultivate their computational thinking and ability to solve practical problems. Good results have been achieved in practice.

Keywords:programming;teaching method;teaching model

0  引  言

程序設计基础课程是高校非计算机专业学生的公共基础课程,是计算机基础教学的核心课程[1]。该课程通过学习一门计算机语言(如C语言),使学生了解高级程序设计语言的基本结构,逐步理解和掌握程序设计的思想和方法,具有一定的分析问题和利用计算机解决问题的能力,为以后利用计算机解决自身专业问题打下坚实的基础。

从多年的程序设计基础课程的教学中,发现由于程序设计语言概念抽象,内容繁多,对于大多数学生而言有一定的难度,学生有畏难情绪,甚至有的学生从入门到放弃,“C语言程序设计”课程长期占据程序设计语言类课程“挂科”率的榜首;造成此现象的原因,本人认为是在这门课程的教和学两方面都存在一些问题,影响了这门课程的教学效果和学生计算思维能力的培养。如何提高学生的程序设计能力,如何提高程序设计基础课程的教学质量,一直是我们在教学过程中思考的主要问题。

1  教与学中的问题

1.1  教方面的问题

经过调查分析,发现教学过程中主要存在以下问题:

(1)在压缩课时和学分的大环境下,程序设计基础课程课时少,内容多,涉及的概念庞杂,知识点多,教学任务繁重。本人所在的高校,程序设计基础课程的理论授课是38学时,学生难以在较短的时间内学好一门程序设计语言。

(2)教材重语法轻实践,教材往往是围绕语法展开知识点,书上的例题也是说明语法,导致教学过程过分强调语法,纠缠于一些小细节,忽略了学生逻辑思维能力和计算思维的培养[2]。

(3)评价手段单一。由于课程成绩由平时成绩和考试成绩综合评定,期中平时成绩占50%左右;考试题型不外乎选择题、填空题、程序阅读题、编程题等,只要掌握基本的语法,即使不会编程的学生也能通过考试,对于那些勤于思考,编程能力强的学生没有起到激励作用。

1.2  学方面的问题

学生在学习这门课程的过程中主要存在以下几个方面的问题:

(1)由于本课程是高校非计算机专业开设的一门公共基础课程,学生对课程的重要性认识不足,重视程度不够,学习目的不明确,学习动力不足。

(2)受地域的影响,学生的计算机基础参差不齐,差异很大,有些学生在中学就开设了计算机课程,有一定的编程基础,但有些偏远地区和农村的学生甚至没接触过电脑。

(3)学习主动性不够,缺乏刻苦钻研的精神。现在学生过分依赖手机,不爱动脑筋,很多问题似懂非懂,作业敷衍应付,没有深入理解。

2  教学改革与实践

针对以上问题,结合本人多年的程序设计基础课程中积累的经验,在教学过程中进行了一些有效的尝试。

2.1  明确学习目标

在第一堂课首先就告诉学生为什么要学习程序设计(Why),通过学习程序设计语言,主要培养学生的逻辑思维、计算思维和使用计算机解决实际问题的能力。

然后,告诉学生如何学习程序设计(How),C语言是实践性非常强的一门课程,一定要通过自己多上机,多写代码,多实践,才能提高自己的编程能力,学好这门高级语言。

再次通过几个简单的C语言程序,使学生了解C语言程序的基本结构(What),快速入门,提高学习效率。

2.2  合理组织和优化教学内容

C语言知识点繁多,有严格的语法规则,并且各知识点之间相对独立,学生难以建立系统的、全局的概念[3]。因此,在教学中,我们按照学生的认知规律,精心设计教学内容,在已有知识基础上拓展新的知识的同时,关注各知识点之间的联系,使学生建立系统的、全局的知识架构。

譬如,C语言有多种数据类型,除了基本数据类型外,还包括构造数据类型、指针数据类型,学生理解有一定的难度。在教学中,在讲解基本数据类型时,先从日常生活中具体的事例,比如班上学生的人数,姓名和成绩等信息如何表示,引出在计算机中,一切信息都是以数据的方式进行处理。介绍数据在计算机中的存储方式,进而讲到C语言基本的数据类型包括整形、字符型、浮点型和空类型,在程序中要定义正确的数据类型,因为一旦定义了数据的数据类型,就决定了该类数据在内存中的存放长度、数据可执行的操作以及数据的取值范围。

在此基础上,介绍基本数据类型的局限性,如果只有基本数据类型,程序将变得非常复杂。当要对大量相同类型数据操作时,比如,一个班有70个学生,求某科目考试的平均成绩,并输出所有大于平均成绩的学生成绩,就要使用数组。适时引入数组的概念,数组是具有相同数据类型的变量的集合,类似的问题,使用数组来解决,程序将十分简洁。但是,有些问题数组也不能解决,有时我们需要将一些属于不同类型的数据组合成一个整体来处理,例如:建立一个学生信息系统,对每一个学生至少需要以下一些信息:学号、姓名、性别、年龄、成绩等,这样的问题就要用结构体。像这种不同类型但相互之间有关联的数据集合定义为结构体类型,程序可读性好,运行效率高。通过引入实例,学生更容易接受,加深了理解,学习的积极性提高了。

2.3  案例驱动

在课堂教学方法中,采用案例引入的方法,结合实际案例组织和实施教学,将程序设计的方法贯穿到每一个知识点中。选用经典案例,使用不同的算法来实现,逐步深入,拓展学生的思路,打开思维空间,培养学生的计算思维能力。

譬如,以求斐波那契数列前20项为例,在学习循环结构时,根据斐波那契数列的特点,循环的处理过程是:将数列的第一项和第二项赋值为1,f1=1,f2=1,则第三项f=f1+f2;然后整体平移,f1=f2,f2=f,那么第四项f=f1+f2,以此类推,可求到数列各项的值。在学习函数时,对斐波那契数列递归函数的处理过程是:只有当f(1)=1和f(2)=1时函数返回值为1,函数结束;其他情况一直调用函数本身F(n)= F(n-1)+F(n-2),如图1所示。

在学习数组时,由于数组元素在内存是连续存放的,使用数组来求斐波那契数列前20项,程序更加简洁,可设数组的大小为f[20],由于数组的下标从0开始,将第一项和第二项赋值为1,f[0]=1,f[1]=1,从第三项开始,每一项都是前2项的和,使用循环结构即可求前20项的值,循环变量从2开始,直到<20,如图2所示。

2.4  改革教学模式

采用传统的教师主导课堂,学生被动听课的教学方式,学生处于被动接受状态,难以调动学生的学习积极性。在程序设计基础课程的教学中,我们采用以学生为主体,以教师为主导的方式,通过课堂互动等多种形式,使学生融入课堂,激发学生的学习兴趣,使他们更加积极主动地学习,挖掘他们的潜能。

以泛雅网络教学平台和学校课程中心为依托,根据大数据技术对教学过程实时监控得到的数据,了解学生在学习过程中存在的问题和疑惑,教师可根据反馈的信息及时调整教学进度和教学内容,提高教学效果;同时,在课堂中可以更有效地进行互动,打开他们的思维空间,提高他们解决实际问题的能力。泛雅网络教学平台课程界面如图3所示。

教学中,运用翻转课堂、案例教学、项目教学等混合教学方式,在课前,教师精心设计教学内容,学生按照学习任务单,观看微课视频,阅读教材、资料以及课件[4],如图4所示。例如:在讲授C语言的基本程序语句时,由于C语言的语法规则繁杂,在有限的课时内,难以面面俱到,因此,采用翻转课堂的教学模式,学生按照老师提供的导学案,看微课视频,并做相应的练习,进行自主学习;在课堂上,老师除了讲解本节的重点和难点问题外,还将讲解典型案例和综合性案例,并编程实现,如图5所示。由于课前,学生通过教学视频了解了课程相关的知识点,因此,可以有更多的时间进行课堂讨论,改变了学生被动学的状态,能更好地融入课堂,便于教师引导学生深入思考,培養学生的逻辑思维能力和发散性思维,更好地学习知识和内化知识;课后,完成实验作业,巩固提高。学生通过这些环节掌握了利用计算机求解问题的思路和方法,促进了计算思维的培养,提高了学生的编程能力和计算机应用开发能力。

2.5  调整考核方式

完善考核方式,使之更合理,强调过程化考核[5]。学生的成绩由考勤、课堂表现、实验作业、单元测试、期中考试、期末考试等组成,取加权平均值;所有的测试全部采用机试,随机组题。采用这种方式综合评定学生的成绩,使学生感到了压力,每一节课、每次作业都认真对待,一刻都不能松懈,避免了平时不认真,考试前一个月临时抱佛脚的现象,使学生的学习更加积极、主动。

综合成绩由平时成绩一、平时成绩二、期中考试和期末考试组成。其中:平时成绩一占总成绩的20%、平时成绩二占20%、期中考试占20%、期末考试占40%。平时成绩一包括考勤+课堂表现+课程中心作业+机考系统作业,平时成绩二包括各单元测试成绩;同时,鼓励学生参加CCPC、ACM等程序设计竞赛,并在平时成绩中进行加分,成绩组成如表1所示。

采用新的考核系统,考核内容覆盖面更广,对学生提出了更高的要求,更有利于激发学生的学习兴趣和学习积极性。

3  结  论

为提高程序设计基础课程的教学效果,我们从教学方法、教学内容、教学模式和考评方式等全方位进行改革实践,学生的学习积极性提高了,逻辑思维和计算思维能力增强了,后续我们将学习更先进的教学理念,提升教学实效。

参考文献:

[1] 文万志,程学云,陈文兰,等.面向OBE的程序设计基础课程的计算思维培养 [J].计算机教育,2020(6):85-89.

[2] 丁海燕.计算机程序设计课程中计算思维的培养 [J].实验技术与管理,2015,32(12):16-18+21.

[3] 彭立宏,肖晓强,周丽涛.“计算机程序设计”课程教学研究与实践 [J].计算机工程与科学,2014,36(S1):39-42.

[4] 张泳,颜晖,张高燕.以应用能力培养为核心的程序设计课程教学全面重构 [J].计算机教育,2021(1):70-74.

[5] 张广斌,张润梅,刘瑾,等.混合式教学在程序设计基础课程中的应用 [J].软件导刊,2019,18(11):176-179.

[6] 项响琴.线上线下深度融合,打造程序设计“金课” [J].电脑知识与技术,2020,16(11):180-181+191.

[7] 李薇,黑新宏,王磊.C语言程序设计课程的金课建设实践 [J].计算机教育,2020(6):142-146.

作者简介:谢晓艳(1966—),女,汉族,湖南长沙人,副教授,硕士,研究方向:计算机应用。

猜你喜欢

程序设计教学方法教学模式
基于OBE的Java程序设计个性化教学研究
群文阅读教学模式探讨
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
“思”以贯之“学、练、赛、评”教学模式的实践探索
医学专业“Python程序设计”课程教学改革总结与思考
基于gitee的皮肤科教学方法研究
《计算方法》关于插值法的教学方法研讨
《计算方法》关于插值法的教学方法研讨
小学语文字理教学方法探析