高职院校《C语言程序设计》课程实践教学探索

2017-12-28 04:04肖建芳
现代计算机 2017年27期
关键词:C语言程序设计C语言程序设计

肖建芳

(汕头职业技术学院计算机系,汕头515078)

高职院校《C语言程序设计》课程实践教学探索

肖建芳

(汕头职业技术学院计算机系,汕头515078)

以提高学生的编程能力和学习积极性、培养应用型人才为目标,通过分析目前高职院校《C语言程序设计》课程教学中所存在的一些问题,引出《C语言程序设计》课程实践教学改革的策略,提出从专业课程建设、教学内容、教学方法、课堂模式和学生学习模式五个方面进行改革和实践。通过教学实践,该项改革效果良好,对于提高高职院校《C语言程序设计》及其他专业课程的教学效果具有一定的参考价值。

0 引言

程序设计是高职院校计算机等IT类专业学生必修的专业课程,很多高职院校如汕头职业技术学院计算机系将《C语言程序设计》作为程序设计的入门课程。C语言具有较强的理论性和实践性,语法要求严谨,通过该课程的学习,学生不仅要掌握正确的算法思想、提高逻辑思维能力,还要熟悉C语言的语法规则,养成良好的编程习惯等。《C语言课程设计》是汕头职业技术学院计算机系大部分专业课程的前导基础课程,学好该课程,对于后续专业课程的学习非常重要。

1 高职院校《C语言程序设计》课程存在的问题

目前,高职院校《C语言程序设计》课程在教学过程中主要存在以下问题:

(1)课程内容多、难度大;学生起点低、学习积极性不高

《C语言程序设计》作为一些高职院校学生学习程序设计的入门课程,概念复杂而抽象、语法繁多而严谨、逻辑性强、需要掌握的知识点和算法特别多。一些高职院校IT类专业一般在大一开设该课程,大一学生在零基础的情况下学习该课程,起点低、难度大、积极性不高,教师在教学过程中遇到的问题也特别多。同时C语言课程的教学效果一般都要在后续其他课程才能体现,所以部分教师上课的积极性也不高。以汕头职业技术学院计算机系为例,《C语言程序设计》课程是该系学生的专业必修课,是大多数计算机专业课程的前导课,新生第一学期就学习该课程,基本都是零基础,也不具备相应的计算机操作基础和信息素养,少数偏远山区生源甚至连最基本的汉字录入都有困难,要学好C语言程序设计课程难度大、遇到的困难多,很难提起学习积极性。

(2)课程定位不准,课程内容体系有很大的随意性

目前开设《C语言程序设计》课程的高职院校在选用该课程教材时,都没有比较统一的标准。有的使用本科教材,本科教材理论与实践并重或重理论轻实践,但其中一些内容和案例并不适用于专科学生;有的选用普通高职高专教材,大都轻理论重实践,导致一些重要知识点不能兼顾。一些院校没有为彼此联系非常紧密的课程建立相应的课程群,导致本来相互支撑相互促进的各课程成为孤立的结点,各课程教师之间也缺乏有效的沟通和交流,造成有的学习内容衔接不连贯,有的却多次重复授课的情况。因为各科目之间没有有效衔接,且同一科目不同教师之间也没有团队教学,教师只能根据个人的认知来确定课程教学内容,没有统一的课程定位和内容体系标准,各任课教师自由发挥的空间大,导致教学效果的差别也较大。以汕头职业技术学院计算机系为例,《C语言程序设计》没有相对固定的授课教师,没有稳定的教学团队,没有固定的教学内容,更没有适用的教学模式,课程定位及内容体系全凭教师个人把握,导致教学效果差别比较大。

(3)教师教学方法和评价手段没有与时俱进

新形势下,各种网络新技术和新的教学理论及学习方法不断涌现,不少《C语言程序设计》教师还是固守传统的教学模式,仅仅是从以前的一块黑板转移到网络教室的PPT课件,课堂上也是以教师为主体,理论课上教师满堂灌或满网灌,学生被迫接受知识,实践课上教师布置实训题目,由学生自己去完成。学生有没有做,做得怎么样,都没有有效的监督和管理。学习过程中教师一般以期末考试+平时成绩这种单一的评价方式为主对学生进行评价,授课方式和评价方法都缺乏多样性,学生的学习积极性没有充分被调动起来,通过课程的学习很难达到预期的效果。

2 《C语言程序设计》课程实践教学改革策略

鉴于目前一些高职院校《C语言程序设计》课程实践教学中存在的一些问题,结合汕头职业技术学院《C语言程序设计》课程教学实际,研究者提出以下教学改革策略。

2.1 专业课程建设改革:建立相关专业课程的课程群,组建 C语言课程教学团队

目前,很多高职院校存在的一个现象是专业课程之间缺乏良好的衔接,教师之间也缺乏有效的沟通,教师在各自的课程领域传授着自己认为该传授的知识,造成一些专业知识断层或脱节。因此,在进行专业课程建设的同时,把相关课程建成课程群,针对各专业的人才培养目标,对各课程进行清晰准确的定位,制定详细的课程教学目标,然后对教学内容进行整合与重新规划,建立课程群体系。在对每一门专业课知识点的重要性、逻辑性、连贯性以及相互之间是否存在支撑性和促进性进行研究之后,重新进行各课程的教学大纲和教学设计的制定,形成初步的课程群教学体系。计算机类软硬件及技术都不断在更新,因而课程群里各课程的建设还必须与时俱进,不断进行调整和修改。在课程群建设中,每门课程和每位教师不再是孤立的结点,而是时刻与课程群里的其他课程和教师保持着有效的沟通与交流。对于教授同一门课程的教师,建立教师教学团队,通过课程教学团队集体讨论,共同制定课程教学大纲,进行教学设计和教学课件的制作等。通过建立C语言相关课程群和课程教学团队,促进教师之间有效沟通,相互学习,相互促进,共同提高。

2.2 教学内容的改革:坚持以算法为中心,根据高职院校学生特点适当取舍

学习C语言,各种程序算法就是它的灵魂,学生能使用不同的方法解决常见的算法问题,就是本门课程学习的重点。所以教师在上课时,应当引导学生不拘泥于C语言的繁琐语法,将学习的重点放在解决问题的算法上,当然,掌握语法是实现算法的必经之路,所以在学期初的教学设计需要偏语法学习较多,从选择结构程序设计开始,应该将学习的重心转移到算法上来,注重算法分析,突出算法的设计,围绕算法开展程序设计的学习,同时也通过对算法的理解过程来学习C语言语法。在学习算法的时候,要注意由易到难,循序渐进,逐步深入。例如排序问题,一开始要求学生将两三个数据排序,可以让学生使用简单比较然后交换的方法在主函数里实现,到学习数组的时候,再要求学生使用冒泡排序法或选择排序法进行排序,学函数的时候,又要求学生使用函数实现排序功能,最后再加入指针操作,使用指针来对数据进行排序。过程中要引导学生比较几种解决方法的优劣并不断进行反思,引导学生的思维呈现一种螺旋的逐渐上升趋势。

在学习内容的取舍上,高职院校学生大都是中学学习基础比较薄弱的学生考进来,自学能力、理解能力和逻辑思维能力普遍不能与本科院校的学生相比,因而,一些比较难懂又不太常用的学习内容和算法可以考虑舍去。例如,学习二维数组的时候,遇到一些比如矩阵相乘等问题,如果学生没有学过矩阵相乘,就可以考虑舍弃相关内容和案例。

2.3 教学方法的改革:应用支架式教学法,创造学生学习的“最邻近发展区”

学生能独立解决问题的第一发展水平到在教师的引导下解决问题的第二发展水平之间有一段距离,维果斯基称之为“最邻近发展区”。支架式教学法就是建构主义者从维果斯基“最邻近发展区”的思想出发,借用建筑行业中使用的“脚手架”(Scaffolding)作为上述概念框架的形象化比喻,其实质是利用上述概念框架作为学习过程的脚手架。该框架应该按照学生智力的“最邻近发展区”来建立,因而可以通过这种脚手架的支撑作用不停地把学生的智力从一个水平提升到另一个新的更高水平,真正做到使教学走在发展的前面[1]。支架式教学由搭脚手架、进入情境、独立探索、合作学习和效果评价几个环节组成。

本研究团队在《C语言程序设计》教学过程中采用支架式教学很重要的一个环节就是小组合作学习,在开学第一周把班级学生按照同组异质、异组同质的方式进行分组,每组人数控制在6人左右,同组的同学坐在一起,每组选出一名小组长,并对组员进行分工,方便在课堂开展小组合作学习。

例如学到《数组》那一章的“一维数组”部分,教师课前布置小组预习任务帮助搭建概念框架,并给出学习范围和问题列表,范围是数组和一维数组,问题列表如下:什么是数组?什么是一维数组?一维数组如何定义、初始化和引用?上课开始,给出问题并设置情境:数学考试成绩出来了,小明班上有40位同学,老师要求小明编写C语言程序,对40个同学的成绩求总分、平均分并排名次,同时找出班级考最高分和最低分的同学,请大家来帮助小明。学生开始小组讨论,查找资料寻求相应的解决措施,三分钟后,教师就问题列表和情境中的问题进行提问,学生积极举手回答,并表示出对于解决情境问题的疑惑,教师对学生的回答进行点评及深入讲解。然后教师给出第一个小组任务:定义一个长度为5个元素的一维int型数组a,要求从键盘输入数组元素初值,并输出到屏幕上。活动时间是10分钟,要求先进行小组讨论,共同探究解决方案,然后写出代码。根据《合作学习检查表》的要求组内互助,最先完成任务的两个小组将获得《学习过程评价表》上集体加分的奖励。教师穿梭于各组之间,监督各组活动,了解学生完成情况,适当的时候进行引导和答疑。最后由小组长检查组员任务完成情况,指定发言人向全班简要汇报合作学习成果。小组活动完成后,教师简单点评整个活动,现场编程再次引导学生思考和巩固学习成果,并引入第二个小组任务:对刚才的一维数组进行求和及求平均值。完成后是继续深入探究的第三个小组任务:求出刚才一维数组中的最大值和最小值并输出。接着是第四个小组任务:使用冒泡排序法对数组进行排序。最后再回归课堂开始的情境问题中,原来大家在一个个的小组活动探究中已经帮助小明解决了问题。最后教师根据实际情况可以继续给小明增加问题:查找某个同学的成绩、删除转学同学的成绩等。

在支架式教学策略中,通过设计学生自主学习、小组讨论、自主探究、组内互助、组间互助等方式,对一维数组的使用进行螺旋式深入探究学习,学生就像沿着教师事先架好的一个“脚手架”一步一步往上爬,跨越“最邻近发展区”,达到一个新的更高认知水平。

在支架式教学过程中,引入多种评价机制,对学生学习的全过程和学习成果同时进行评价,而不是仅仅关注学生的记忆和模仿的能力。通过学生自评、组内互评、组间互评和教师评价等多元主体评价,对学生的自主学习能力、对小组合作学习所做出的贡献、是否对所学知识完成了意义构建[2]等方面进行全方位的评价,并对表现优异的小组及个人给予过程性评价奖励。也就是对于建构性的教学方法,其评价的观点应从行为主义转向认知主义,评价从一次性的评价到多途径的多次的评价,从纸笔标准化测试到真实和表现性的评价[3]。

2.4 课堂模式的改革:提倡学生为主体,教师为主导的课堂模式

建构主义学习理论的基本观点认为,知识不是通过教师传授得到,而是学习者在一定的情境即社会文化背景下,借助其他人(包括教师和学习伙伴)的帮助,利用必要的学习资料,通过建构意义的方式而获得[4]。

学生是学习知识的主体,只有让学生自己去学习探究,寻求问题的答案,才能获得最好的学习效果。教师要积极为学生提供更好的学习资源,创建更适合的学习情境,组织学生进行小组协作和会话讨论,帮助和支持学生完成知识的意义建构。改革教师满堂灌或满网灌的做法,通过在课堂上开展形式多样的学习活动以及为学生提供多种学习途径,将学习的主动权归还给学生,让学生自己寻求问题的答案。根据学习金字塔的理论,积极引导学生开展金字塔塔基的主动学习活动:讨论、实践和教授给他人。例如开展多种形式的小组合作学习活动,鼓励学生多进行C语言编程实践,课内外多途径积极探讨学习问题等。例如从函数章节开始,课后习题让学生来组织讲解并开展教学竞赛,小组集体备课,组员轮流做小老师,小老师在教师的指导下确定教学方案然后组织授课。这种形式既调动了学生学编程的积极性、加深了学生对程序算法及知识的理解,又锻炼了学生的各项能力。

2.5 学生学习模式的改革:网络新形势下,课内课外线上线下多元学习模式的结合

学生是学习的主体,所以教师引导学生改变惯有的学习模式非常重要。在网络和通信技术如此发达的新形势下,学生要摒弃学习靠教师、靠课堂、靠课本的单一途径学习模式,充分利用线上线下各种学习资源,课内课外多途径开展深度学习。

(1)充分利用微课资源,进行碎片化学习

广西师范学院杨上影老师认为微课是指为了促进学生学习,按照课程标准及教学实践要求,以视频为主要载体呈现的,在课堂内外教育教学过程中围绕某个知识点(重点、难点、疑点、热点)或教学环节的精彩教与学活动。微课知识点集中、短小精悍的特点,以及智能手机和校园Wi-Fi的普及,学生可以随时随地充分利用自己的零碎时间,想学就学。例如,将两数进行交换的算法是C语言的重要算法,本研究团队教师将其设计成一个酒杯的酒与水杯的水借助一个空杯进行酒水互换的动画微课,学生学习以后,再也没有在这个问题上出现过逻辑错误。实践证明,将一些难懂的概念或算法制作成微课给学生学习,能起到事半功倍的效果。

(2)善用在线网络课程,学习和提升自己

网络新形势下,学生要转变“等老师上课”的观点,自己想学什么就积极通过网络“寻课”。各种MOOC、SPOC网络视频课程为学生学习提供了极大的便利,也成为学生自主学习的重要阵地。学生要积极利用课余时间,选择适合自己的课程来实现知识的学习、巩固和扩充,并积极配合教师翻转课堂。例如本研究团队在C语言课程授课过程中,推荐学生上网学习网易云课堂《玩转C语言》等免费课程,因为该课程从课程内容和教师上课风格上都适合学生学习。还有近年来异军突起的腾讯课堂,其新颖的课堂直播互动形式,打开QQ就可以参与学习的便捷性,以及对于课堂情境的真实模拟,受到学生们的青睐。

(3)使用网络和及时通讯工具,随时随地讨论和学习

网络就是一个虚拟的世界,学生要善于使用网络上形形色色的学习网站、学习论坛、学习博客、百度文库等解答疑惑、寻求新知,同时也要培养对知识的鉴别能力,对于网络知识去伪存真。俗话说“三人行必有我师焉”,学生在学习过程中遇到了问题应积极通过班级学习群寻求教师与同学的帮助,同时也积极帮助有需要的同学。

3 结语

《C语言程序设计》是计算机和信息等IT类专业一门经典的专业课程,学生零基础,学习内容难、任务多、困难大。需要任课教师不断进行教学改革,不断创新教学手段和方法,充分利用新形势下各种新的教育理念和学习方法,才能使我们的学生获得良好的学习效果,为三年的大学学习打下坚实的专业基础。通过本研究团队教师进行的教学改革,学生学习C语言程序设计的积极性大大提高,无故缺勤的现象基本杜绝,明显感觉学生对于知识的理解和应用比以往要好,少数学生除了在线上学习C语言,同时还学习了其他感兴趣的课程,教学改革效果良好。

[1]覃辉,鲍勃主编.建构主义教学策略实证研究[M].云南大学出版社,2010.

[2](美)伍尔福克著.教育心理学[M].何先友等译.中国轻工业出版社,2008.

[3]李豫颖.C语言教学改革浅见[J].贵州教育学院学报(自然科学版),2008(9):74-77.

[4]陈琦,刘儒德主编.当代教育心理学[M].北京师范大学出版社,2007.

Exploration on the Practical Teaching of C Language Programming in Higher Vocational Colleges

XIAO Jian-fang

(Department of Computer,Shantou Polytechnic,Shantou 515078)

In order to improve students'programming skills and learning enthusiasm,cultivate applied talents as the goal,through the analysis of the teaching problems about C Language Programming course in higher vocational colleges,leads to the practice of teaching reform of C Lan⁃guage Programming course strategy,puts forward five aspects of learning from the professional course construction,teaching content,teach⁃ing methods,classroom mode and students'learning model to carry on the reform and practice.Through the teaching practice,the reform ef⁃fect is good,it has certain reference value to improve the teaching effect of C Language Programming and other professional courses in high⁃er vocational colleges.

1007-1423(2017)27-0024-05

10.3969/j.issn.1007-1423.2017.27.006

C语言程序设计;支架式教学;合作学习;高职院校;MOOC

汕头职业技术学院2016年院级教改项目(No.16jy06)

肖建芳(1980-),女,湖南郴州人,讲师,硕士,研究方向为计算机技术、高职教育

2017-07-06

2017-09-20

C Language Programming;Scaffolding Teaching;Cooperative Learning;Higher Vocational Colleges;MOOC

猜你喜欢
C语言程序设计C语言程序设计
医学专业“Python程序设计”课程教学改革总结与思考
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
以“学生为中心”的《C语言程序设计》教学设计探究
基于翻转课堂的《C语言程序设计》课程教学系统的实现与研究
浅谈《C语言程序设计》课程的教学改革
《C语言程序设计》课程的教学改革与实践