APP下载

程序设计语言分层递进式教学的实践

2019-02-13臧劲松

计算机时代 2019年1期
关键词:实践教学分层

臧劲松

摘  要: 目前的程序设计课程教学理论讲授多,实践少,课堂教学存在“一刀切”现象,针对此类问题,文章探讨了以能力培养为目的,分层递进式的课堂教学方式。通过目标分层设定、课堂上的分层教学、差异化辅导、作业练习的分档、多层次的考查和评价等多种方法,拓展学生的学习能力,使不同程度学生都能得到“最优发展”,全面提升学生的创新能力。

关键词: 分层; 实践教学; 程序设计语言; 主体性原则

中图分类号:G642          文献标志码:A     文章编号:1006-8228(2019)01-90-04

ent, the teaching of programming course has many theories, few practices and the phenomenon of "one-size-fits-all" exists in classroom teaching. In view of this kind of problem, this paper discusses the hierarchical and progressive classroom teaching method aiming at cultivating students' ability. By means of multi-level goal setting, hierarchical classroom teaching, differentiated guidance, assignment practice classification, multi-level examination and evaluation and other methods, students' learning ability can be expanded, so that students of different degrees can get "optimal development" and improve students' innovative ability in an all-round way.

Key words: hierarchical; practical teaching; programming language; subjective principle

0 引言

现代教育学和心理学的研究和实验表明:学生的来源、性别、家庭、知识、水平、智力、性格等方面的不同,决定着接受知识的能力必然存在着差异。但在以往的教学中,由于受班级授课制本身的束缚,均采用“一刀切”、“一锅煮”的方法进行教学,很难适应不同程度学生的需求,因而使教学质量徘徊不前。

分层递进式的教学方式可以在很大程度上解决这个问题,“分层”就是按差异分出学生不同程度,“递进”就是对不同水平的学生设置不同的“阶梯”,让他们循序渐进地攀登,分层是“手段”,递进是“目的”。分层递进式教学就是承认并针对学生之间的个体差异,使不同水平的学生都能在原有的基础上获得最优发展的教学方式。

1 存在的问题

传统的实践课教学,包括实验课、习题课等一般都是统一进行的,所有学生按照相同的教学计划展开学习,教师从备课、授课、作业、辅导、考查到评价,虽然都力图把集体教学和个别教学的关系处理好,但依然很难顾及到不同程度学生的智能差异,结果,基础好、能力强的学生并没有提升其潜在的能量,而相对基础薄弱的学生也得不到及时的帮助,不能适应面向全体的教学目标及学习速度,缺乏继续提高的信心和学习的动力[1]。

2 实施原则

在分层递进式教学中,需要遵循以下几点原则。

2.1 层次性原则

由于学生个体之间受遗传、环境等多因素影响,学生之间存在着个体差异,有着多元的不均衡性,而且就自身而言也存在着发展的兴趣方向问题,这使得每个学生发展的进程和轨迹各不相同,发展的目标也具有个性化特征。因此,教师在分析学生个体差异的基础上,应尊重个体的发展要求,正确判断学生不同特点及发展潜力,有的放矢地进行有差别的教学指导活动,使每个学生都能扬长避短,获得最优发展。

2.2 最优化原则

前苏联教育家巴班斯基认为[2],教学过程最优化的实质,就是在一定的教学条件下寻求合理的教学方案,使教师和学生能用最少的时间和精力获得最佳的教学效果,获得最好的发展。为了实现教学过程最优化,教师就需要有目的地选择组织教学过程的最佳方案,从而保证在规定时间内,使教育和教学尽可能地达到最优化。

因此,在教学过程中,只有将各种教学形式和方法相互联系、相互渗透,才能为学生的全面发展创造有利条件。而为了使每个学生能获得最大的发展,就应该强调用区别的方式对待学生,不仅是在教材难度和广度、教学内容的區别,更重要的是在于对学生进行有区别的帮助和引导。当教师传授容易理解的教学内容时,学生在练习或实验的过程中,教师进行一般性的辅导即可;而当传授中等难度的教学内容时,学生做练习时就应分层次进行,学习基础薄弱的学生可以先做些简单的练习题目,教师给以必要的辅导,而基础较好的学生则可以尝试做有一定难度的练习题,并可尝试分组讨论学习的多种方案;当教师传授复杂、难度较高的教学内容时,就应把集体讲授和个别辅导有机结合起来,分层次进行。最优化教学应该是个别教学、分组教学和集体教学的有机组合。

2.3 主体性原则

主体性是强调学生在课堂上的主动参与、乐于探究,这是打造高效课堂的必备条件。在教学过程中,教师主动引导学生进行有效地自主学习,让学生在自学中发现问题、讨论问题,教师则做为课堂的策划者和组织者,适时参与到学生的讨论中,与学生积极互动,帮助学生解决在学习中发现的疑难问题,激发学生的学习兴趣与主动性,正确引导学生的思维,转变学生依赖听讲的被动获取知识方式,而针对其中的共性问题,则可以集中讲解,把教师的主导性与学生的主体性有机统一起来,打造高效课堂。

3 分层目标

在教学过程中,教师应根据不同基础、不同专业和兴趣学生的实际出发,制定不同的个性化教学计划,并根据学习进度及时调整教学计划。

程序设计课程目的是培养学生严谨的科学态度、正确的程序设计思想、科学的程序设计方法和良好的程序设计风格。教学目标是依据课程目标设计的,课程目标应贯穿和体现于教学目标之中,因此教学目标的内容范围与课程目标应该是一致的。现在的学生,他们的成长时期,是中国互联网技术迅速发展并投入使用的时期,他们获得知识的途径与以往大不相同,而知识发展的更新速度也史无前例地快速。然而成长环境也存在着个体差异,学生在对计算机技术的理解水平,数据及文字处理等计算机应用能力却是参差不齐的,因此,在教学过程中,还需特别注意到其差异性来设定不同阶段的目标。确定不同层次的教学目标,应把握住哪些是基本要求,是所有学生应掌握的,哪些属较高要求,可以让学有余力的学生通过努力达到的。

针对程序设计课程,我们采用了四维度教学目标,见图1。

⑴ 知识学习:主要是基本语法知识的掌握;这个目标一般有三个层次的要求:学懂、学会、能简单应用;

⑵ 程序设计技能:主要是编程能力的训练,这个目标强调三个过程:做中学、学中做、会反思;

⑶ 编程规范:主要内容涉及程序设计的艺术、价值判断和内化;

⑷ 解题思维方法:计算思维的培养,这个目标由三个层次组成:认同、体会和习惯。

而这四个目标,实际上又组成了一个问题的多个方面。语言知识的学习是程序设计能力形成的前提和基础,以语法语义知识的学习做为重点,这是学习过程的共性,所有学生都要掌握的,是处于基础层次;而对于接受知识快,思维活跃的学生来说,则应以语言知识的应用为重点,多种方式进行逻辑思维能力和解决问题能力的培养上。

4 实践过程

4.1 课堂的分层教学

随着慕课、翻转课堂等现代信息技术手段的介入,以前课堂上不可能做到的事情,现在已经完全可以实现,课堂教学技术的突破,已经为课堂上的分层递进式学习提供了技术保障。

分层次备课是实施分层教学的前提,首先应围绕学科的认知特点和规律,根据学生的学习态度,学习能力,知识基础等方面综合分析,将学生划分到不同层次的小组:基础层、提高层、创新层,这样才可以在后面的教学中做得区别对待,有的放矢。其次,程序设计课程是一门需要比较强的逻辑思维能力的课程,知识点多且分散,例如C语言的基本知识点主要包括如下几个方面,见图2。

教师在备课过程中就需要根据学生层次,再根据程序设计课程的特点,在吃透教材、大纲的情况下,将课程内容中各个知识点重新梳理,设置成有梯度、有层次、由简到难的任务,把握好授课的起点,处理好知识的衔接过渡,减少教学的坡度;对于处于基础层的学生,重点是指导他们分析程序的基本结构特点,重要的代码段,对其中重要的知识点加以讲解,然后可以挖空部分程序段,让学生尝试完型填充,这是分析程序模仿阶段。对处于提高层阶段的学生来说,重点应放在指导他们更清晰地掌握课程的知识点及其内部关系,建立起合理的算法与程序设计的认知结构,为将来的发展提供该领域的知识与能力准备。而能够运用程序设计的局部知识解决比较复杂的问题,则是对处于创新层学生的学习要求,通过不断的训练,可以准确地理解程序设计的基本思想和方法,能系统地运用程序设计的知识,设计算法并编写程序解决问题,具有一定的技巧性、艺术性。

例如,C语言的指针部分的学习,对大多数学生来说是一个难点,在教学中需要区别对待。指针和地址的关系,是基本点,是共性,在此基础上,对处于提高层的学生来说,可以继续引导他们学习二级指针、数组指针的含义,如何利用它们的优势更有效地编程;而对处于创新层的学生来说,引导他们自主查找网上资料,学习网上视频,探讨指向数组的指针、函数指针的原理,从实际问题中学习,完成知识掌握-理解-运用的层次递进过程。

当然,三个小组的学习目标虽然都不尽相同,但小组之间依然可以建立起一帮一的学习伙伴,互相讨论,分层提高。教师在整个教学过程中,要特别注意使自己的教学行为主动地去适合学生的学习行为,而不是倒过来做,让学生去适应老师,要特别关注如何解决学习困难学生的困难和特长学生潜能的发展,让尖子生冒出来,使多数迈大步,叫学习困难生不落伍,跟上来,从而达到班级的整体优化,这也是分层递进教学的目的。

4.2 同一知识点的分层教学

为了增强学生对在课堂中学到的知识的识记与理解,教师还应就相同的知识点对不同程度的学生分层教学,分层辅导,这样才能帮助各个层次的学生适应学习,有效促进教学目标的实现。例如,“文件”是C语言中的一个基本知识点,对这部分的学习,即可采用分层教学的方式,开始,可以通过一个文件的简单案例,让所有同学了解文件的作用,第二层次,从文件读写开始,介紹文件的使用规则,基本文件函数的认识,这是所有同学应掌握的。第三层次,继续强化文件读写操作,批量读取数据;第四层次,用结构体存储数据信息,用函数实现问题的分解,理解二进制文件读写等,提高学生融会贯通的能力;第五层次,通过指针与文件的完美结合,实现网页上显示信息,学习多文件内容的合并及按内容分割等知识。这样采用层层递进方式,让不同程度学生可以理解文件,会用文件。

4.3 分层次的辅导

辅导是教学中的重要环节之一,由于不同学生自身基础知识状况、对知识的认识水平、智力水平、学习方法等都存在差异,他们接受知识的情况就有所不同,因此教师应因人而异,在课中、课后对不同层次的学生采取不同方法进行有效的帮助和指导,促进学生由低层次向高层次的转化,达到学。例如,针对程序基本结构知识点,在辅导时针对理解力强的学生,辅导的内容侧重于对所学知识的拓展与加深;针对中等成绩的学生,辅导内容侧重于掌握学习方法、分析与解决问题,培养其思维能力和灵活运用知识;针对基础较薄弱的学生,则侧重于知识的掌握和理解。这样力争使每个学生得到最大进步。

4.4 练习的设计分档进行

练习是对课堂讲解知识的消化和补充,练习的设计应在考虑学生掌握知识能力的差异的基础上,兼顾基础知识的巩固与能力的发展,针对学生的个体差异,分层次要求,分类设计出不同梯度的题目,让每位学生都能在练习中获得满足、成功的体验,使其对后续学习更有信心。

对于不同层次的学生,在对同一知识点的选题、设计题目中,应有所侧重,譬如在学习完基本结构和模块化设计知识点后,不同组练习题目的侧重点可以参考表1。

例如:对典型的循环求和问题:S=1+2+3+…+100,首先要求全体学生完成这个问题的基本算法:找规律,设计变量,递推求和,循环求和,设置循环结束条件,引导学生逐步深入理解循环结构;对于提高组的学生来说,可以让他们继续思考:对于类似的算式S=2+4+6+…+100;S=1*2*3*…*10;S=1+1/2+1/3+…+1/n;S=12+22+32+…+1002;需要做哪些变更?修改哪个语句?引导学生自己探讨如何避免死循环,如何减少循环次数,如何提高程序运行效率等问题;对于创新组的学生来说,则引导他们主动思考如何在实际问题中应用这些规律。

总之,为学生搭建分层教学的阶梯,从立足于学生现有基础的问题提出,从纠错到完善代码,再过渡到新的问题,不断创造最近发展区,使学生由接受性学习、维持性学习转变为体验性学习、探索性学习和创造性学习,引导学生不断的思考、积极探讨、超越,使学习成为一种乐趣,把任务顺利转化为学习的内驱力,促进学生的智力向更高层次发展。

4.5 多层次的考查与评价

期末考试一直是课程考核的基本方式,但教学实践证明,单一的考试并不能充分体现和评价学生对所学知识的掌握和应用水平,还需要过程考核[3],教师对学生的评价应具有导向和激励的作用,应该采用多角度考查,多层次分析、全方位、多途径的考核方式才能真实而客观地评价学生的实际能力。

例如,对于基础层次的学生,应重点考查对程序设计的基本知识点掌握情况,能够阅读并理解程序功能及设计方法,考查是否具备初级的求解问题的能力。对处于提高层次的学生来说,重点考察能否深入理解指针,熟练利用文件,利用系统提供的相关函数解决问题,是否具有高级编程技能;而对于处于创新层的学生来说,考查的重点应放在创新技能的运用上,能否将实际问题转化为程序逻辑的思维能力,培养系统设计、复杂问题分解能力。

在阶段考查、评价的基础上,还应建立动态的分层递进制。不同分组的学生在学习一段时间之后,可能会出现较大差异,教师应认真观察,对学生所在的组别,可以进行适时调整,这样不但可帮助学生及时调整自己的心态,而且有利于学生找到自己的优点和不足,始终能保持积极向上的良好心态。

5 结束语

分层递进是基于分层,目的是递进,通过二个学期的实践,其效果也逐渐显现出来。各层次学生始终处于积极向上的学习状态之中,学生的综合素质得到了整体提升,并且還有多名学生参加了计算机应用比赛,把在课程学习中的思考应用在比赛中,加深了对知识的深入理解,增强了学生的创新意识和创新应用能力。

参考文献(References):

[1] 傅川,罗杰,赵鸣.高校程序设计课程的分层教学研究与实践[J].计算机时代,2015.11:90-92

[2] [苏]尤·克·巴班斯基著,张定璋等译.教学过程最优化-一般教学论方面[M].人民教育出版社,2007.

[3] 胡元闯,谭晓东,王凤领.地方本科院校计算机网络实验教学改革探索与实践[J].计算机教育,2018.6:21-23

猜你喜欢

实践教学分层
有趣的分层现象
一种沉降环可准确就位的分层沉降仪
雨林的分层
“分层”是座美丽的桥
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
研究型学习在传热学实践教学中的应用
思想政治理论课实践教学研究述评
高职院校商务礼仪课程教学改革探索刍议
《数据库高级应用》教学创新方法研究