计算思维与人本思维双驱动的C语言课程线上教学
2021-09-30陈家俊郁书好
陈家俊, 郁书好
(皖西学院 电子与信息工程学院,安徽 六安 237012)
“C语言程序设计”是本科高校普遍选修的公共计算机基础课程中的核心编程类课程,其具有涉及面广、影响大、实践性强等特点,因此,C语言课程的教学工作受到了计算机教育界的广泛关注[1-5]。自2006年美国卡内基梅隆大学周以真教授提出计算思维[2]的概念以来,培养以计算思维为核心的C语言课程教学改革在国内各类高校纷纷开展,并取得了一系列的成果[1-2,6-7]。但由于C语言课程知识点丰富,具有较强的计算性、复杂性和应用性,课程开设面广,涉及学生多,教师需求量大,因而在教学实施和管理过程中普遍暴露出教师队伍缺乏、教学管理不便、教学评价不全面和教学效果较差等问题。为解决以上高校普遍存在的问题,探索一种新的教学模式和管理模式是目前公共计算机基础课程亟待解决的问题。线上教学以具有跨地域性、资源共享性和便捷性等教育优势近两年来备受教育者的青睐,为做好高校线上教学组织与管理工作,提高公共计算机基础课程线上教学质量,有效开展课程思政,充分发挥课堂教学在教书育人中的作用,文章结合“C语言程序设计”课程知识点的特点,提出一种基于计算思维与人本思维双向驱动的线上教学模式,该教学模式的实施能够大大提高课堂教学质量和课程思政教育效果。
1 基于计算思维与人本思维双驱动的线上教学
1.1 设计思路
“C语言程序设计”课程知识点丰富,具有较强的计算性、复杂性和应用性,课程的知识内容主要包括:C语言的基本概念、数据类型、运算符和表达式、程序设计控制结构、函数、数组、指针等内容。课程旨在结合一般数值计算培养学生掌握程序设计的基本方法与编程技巧,理解运用计算机进行科学计算的一般思路,培养学生应用计算机解决和处理实际问题的思维方法与基本能力。课程面向理工类专业大学一年级学生,涉及面广。由于课程内容具有一定的计算性和复杂性,而面向的学生基础薄弱,因此,本文根据学生知识层次和人文教育需要,以教学内容为出发点,以计算思维和应用能力培养为知识能力目标,以培养人本思维和对社会问题的思考能力为育人目标,提出基于计算思维和人本思维双驱动的线上教学模式。在教学设计时,通过对知识点进行系统地筛选与沉淀、有针对性地设计实例和设计详细的教学方法等手段,加强计算思维的培养;通过对学生密切关注的社会问题及学生应具有的人文思想进行调查和遴选、设计思政教育内容和教育方法等手段,加强课堂人本思维教育。总体设计思路如图1所示。下面以“函数的定义与使用”线上教学为具体案例,分别从设计分析、教学方法、教学实施三个方面进行详细的阐述。
图1 总体设计思路
1.2 教学分析
“函数的定义与使用”章节知识点丰富,通过对该章节知识点进行系统化归纳,主要包括:模块化概念、函数的定义、函数的调用与参数传递、函数的嵌套和递归调用四大部分,四部分内容既包含基础性知识,又具有一定的综合性,知识特点上具有较强的计算性和逻辑性,知识点的应用方面具有一定的系统性和复杂性。教学设计中既要充分考虑学生的知识层次,让学生理解复杂的计算思维和逻辑思维,培养学生学以致用的创新能力,又要将所学知识应用于社会问题,培养学生人本主义思维,加强人文教育。表1从知识模块、教学目标、重点内容和教学方法上对该章节的教学进行详细的分析。
表1 教学分析详情
1.3 教学方法设计
根据表1中知识模块和对应的教学目标分析,根据各模块知识点的特点,在教学设计中采用案例分析法、思维引导法、动态演示和路径跟踪等多种教学方法。
(1)基于人本思维的教学设计。根据表1分析,在知识点一和知识点三两个模块中加强了人本思维培养,并根据知识点的不同在教学中采用了不同的教学方法。在模块一的教学中采用“实例分析+比较+思维引导法”。模块化程序设计的基本思想是在编程过程中将大的程序按功能分割成一些小模块,通过调用这些不同的小模块来实现复杂程序的编程目标。根据模块化程序设计的基本思想,授课时先对比讲解模块化设计的优点,举例说明模块化设计的开发方法: 自上向下,逐步分解,分而治之。为增强学生对理论学习的趣味性和实用性,本部分设计强调模块化思想在实际问题中的应用,在课堂中引入思政教育,以人本主义思维教育为聚焦点,选取当前重要的话题作为实例,通过该实例培养学生通过网络媒体及时关注当前重要时事动态的能力,增强学生的爱国主义精神、在重大问题上的大局意识和责任意识以及团队合作精神。
(2)基于计算思维的教学设计。根据表1分析,在知识点三和知识点四两个模块中加强了计算思维培养。函数调用及参数传递过程是本章节难以理解的部分,只有理解计算机内部解决问题的逻辑思维,才能真正掌握本要点。因此,教学过程中旨在培养学生编程思维和计算思维能力,主要采用“实例分析+思维指导+动态演示法”。将知识化难为简,先以容易理解的实例为对象,将相关知识点贯穿其中,让学生先理解实际参数、形式参数、调用语句和传递过程,具体实例设计界面如图2所示;再进一步讲解知识的实际应用性,在教学中要求学生思考:如何设计一个用来判断体温是否正常的函数,并模拟通过该函数调用实现对多人进行体温检测排查。学生先思考,然后通过PPT分析指导、最后给出正确的设计代码并演示实现过程。此环节设计旨在展示本章知识点的实用价值,培养学生的应用能力,达到学以致用的教学目标。具体实例设计如例1所示。函数调用过程中一个既抽象又重要的知识点便是实参和形参在内存空间中的变化问题,即:形参在函数被调用前不占内存,函数调用时为形参分配内存;调用结束,形参内存释放。学生在学习过程中往往对内存空间数据的变化问题难以理解,为降低难度,使知识更具有理解性,教学中采用“实例+内存动态演示法”进行分析,以动画演示内存空间变化形式组织教学,具体实例设计如例1和图3所示。
图2 函数调用及参数传递
图3 参数传递动态调用
例1:编写函数实现求X的立方。注意分析函数调用时内存空间的变化问题。
解题步骤:
第一步:根据函数定义知识,分析函数参数个数、参数类型和返回值类型,构建子函数 float cube(float x),其中x为形式参数。
参考代码设计:float cube(float x)
{ return(x*x*x);
}
第二步:定义主函数main()函数,定义变量 a和product,并给实参a变量输入值;在主函数中调用函数cube()函数,并将实参a的值传递给形参x。参考代码设计:
main( )
{ float a, product;
printf("Please input value of a:");
scanf("%f",&a);
product=cube(a);
printf(”Cube of %.4f is %.4f ",a,product);
}
第三步:分析主函数和子函数中参数在内存中的分配情况,见图3。主要强调:形参在函数被调用前不占用内存空间,当函数调用时,为形参分配内存空间,调用一旦结束,内存空间将被释放。
函数的嵌套和递归调用模块涉及深层次函数调用的过程,知识点难度大、实用性强,因此,教学设计时重点培养学生的计算思维和逻辑思维,采用“实例+路径跟踪分析法”,将复杂问题简单化,增强学生理解性。例2和图4给出了递归调用路径分析法具体实例。
例 2: 有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第3个人,又说比第2个人大2岁。问第2个人,说比第1个人大2岁。最后问第1个人,他说是10岁。请问第5个人多大。
解题思路:
第一步:根据题意,分析求解过程:包括两个阶段,第一阶段是递归过程,第二阶段是回溯过程,同时分析得到递归结束的终止条件为:第1个人10岁。
第二步:分析归纳递推公式,并讲解递推过程和回推过程,通过分析得到递推公式,进一步定义递归函数。具体分析过程如图4所示。
图4 递归调用路径分析法实例
1.4 教学实施过程
在教学过程中采用课前预学、课堂直播、实例演示、交流辅导和在线作业批改等完整教学组织形式。
(1)课前预学。考虑到大一学生编程基础薄弱、线上教学适应能力差、主动学习能力不够强等问题,在教学设计中首先设计一个详细的PPT课件,并录制一个详细讲解的视频,让学生提前预学,从而对课程内容有个全面的了解和掌握。
(2)课堂直播教学。直播前进行签到,以提醒同学们做好直播准备。在正式授课前,用较短的时间进行课程导入,包括:对学生近期关心的问题进行回应、对课前预学情况进行通报、归纳本次课应该学习的主要知识点和重要内容等,以帮助学生对本次教学有个全面的了解。在直播过程中,始终围绕培养计算思维和人本思维的教学目标,采用理论讲授和案例分析相结合的线上教学,根据知识点的特点又分别采用思考提问法、思维引导法、动态演示和路径跟踪等多种教学方法;由于学生已经进行了预学任务,在理论讲授时重在提高,加强计算思维和逻辑思维的培养,在案例分析过程中,根据知识点的难易度层次和应用性特点,理论结合实际,将典型实例在实验环境下反复演示运行,鼓励学生加强实验,以增强学生的实验动手能力。
(3)交流辅导。在线上教学过程中,学生可以在直播平台留言,直播后,教师针对学生留言的问题进行交流辅导,同时,教师会根据本节课程重点或易错问题布置思考题供学生交流。
(4)在线作业批改。直播结束后,布置作业,并要求学生在一定期限内上传教学平台,教师及时批阅,筛选优秀作业作为课程考核的加分项,不合格作业打回重做。通过作业情况及时总结学生掌握情况,从而改进教学方法。
2 教学效果
在教学过程中采用课前导学、理论直播、实例演示、个性化交流和在线作业批改等完整教学组织形式,得到学生的一致好评,激发学生的学习热情,学生参与度高,提高了学生对社会问题的关注度,增强了学生的自学能力,学生的作业质量得到明显提高,教学效果得到大大提高。以“函数的定义与使用”线上教学数据为例,其中本班学生人数220人,外班旁听人数99人,直接参与本次直播人数256人,达到91%,观看人次为472人次,即平均每人重复学习约2次,点赞数达到1 558次,其中未参与直播的同学基本都能观看回放完成线上教学任务。学生的作业质量得到明显提高,此次作业布置和批改情况统计中,批阅的265份作业中优秀作业达到88%,学生作业工整,学习态度端正。
3 结语
计算思维与人本思维相融合的线上教学设计既能将人文思想、社会重大问题等思政教育融入到课堂中,又能提高学生的计算思维和逻辑思维,培养学生实际动手能力和应用能力。基于计算思维与人本思维相融合的线上教学,具有收益面广、教学视频能反复收看等特点,因此线上教学的推广能大大提高课堂教学质量和课程思政教育效果。