APP下载

应用型本科计算机专业C语言课程教学的改革与实践

2020-03-21王晓庆王啸楠

黑河学院学报 2020年1期
关键词:C语言章节程序设计

伍 祥 王晓庆 王啸楠

(安徽信息工程学院 计算机与软件工程学院,安徽 芜湖 241000)

《C语言程序设计》是绝大多数本科院校计算机专业一年级上学期所开设的第一门专业必修课程,同时,C程序语言也是多种软硬件课程的先修课程和基础,该课程对计算机专业的重要性不言而喻。因此,针对《C语言程序设计》,国内诸多学者在该课程诸多方面和不同角度提出了一系列卓有成效的举措和改革。罗恺韵等人为提高学生学习C语言课程的主观能动性和自学能力,提出了一种基于反转课堂的教学模式[1];尹兰兰等人利用easyX插件,将C语言课程中涉及的重要算法可视化,以画面的方式展现给学生,大大提升了课堂的趣味性和学生的学习热情[2];王磊等人提出以计算思维为导向的C语言教学模式改革和时间,用以提高学生各方面专业能力[3];谢方方等人通过“思维导图”对C语言课程的知识点进行梳理总结,使得学生在掌握该课程零碎内容更具条理性,极大地提升了其学习和掌握知识的效率[4];贾金芳等人为改变“老师只讲、学生只听”以及授课形式单一的课堂格局,提出了基于SPOC方法的C语言课程改革模式,并将其应用到实践当中,在学生的知识掌握程度和动手能力等方面,取得了良好的效果[5];林平根据MOOC灵活、针对性强等特点,将其引入至计算机教学改革之中,提出计算机相关课程未来的改革方向[6]。

上述改革和实践在一定程度上对学生的C语言学习起到助力作用,并在真实的课程教学中起到较好的效果,但目前C语言教学仍存在以下几方面的问题:(1)学生在C语言学习过程中难以培养模块化编程思维;(2)C语言理论知识和中学课程理论知识差异性较大,学生一时难以很好地接受;(3)学生课下对该“理论+实践”类课程的复习、预习情况得不到有效监管。

一、优化课程目录结构

C语言课程是《面向对象程序设计》《数据结构》等相关编程课程的先修课程,因此C语言课程在整个计算机专业类课程的地位举足轻重。但是,学生在进行后续编程类课程中,很少具有将模块化思维运用到实际编码中的意识,即少有学生将独立功能模块化为函数,进而在主函数中调用,而是把整个程序代码写入主函数之中。这一编程习惯会直接对后续课程的学习产生较大障碍,对专业知识的掌握和科学思维的锻炼造成极为不利的影响。

传统经典教材通常涵盖C语言相关的所有知识,通常包括C语言介绍、C语言算法、顺序结构、选择结构、循环结构、数组、函数、指针、结构体及文件等章节,其目录也依据从易至难逐个铺开,图1为该类教材的目录结构。

如图1所示,该类教材函数章节处于整个教材的后半段内容之中,学生在学习该课程大半过后才进入函数的学习当中。根据近几年的授课情况,学生在课程的学习过程中,学期前期的学习兴趣和热情度明显高于学期后期,因此,如果在学习的后半段才接触函数知识,其无法有效地将函数思想贯穿到C语言程序编写中,从而很难具有模块化的思维过程,直接影响后续编码的效率和习惯及面向对象的思想形成。

图1 传统C语言程序设计教材目录结构

为解决这一问题,本文对C语言课程的目录课程进行了部分调整,下页图2即为本文所述的授课目录顺序。

本文将原来目录下的第七章“函数实现模块化程序设计”调整至第四章,原四、五、六三章依次后移,形成如图2所示的目录结构。

图2 该课程授课目录顺序

通过上述调整,一旦学生对C语言有初步的了解,掌握了C语言基本语法之后就立即进入到函数的学习中,并在后续诸如选择结构、循环结构、数组等章节中,强制要求学生使用函数“封装”功能模块。

通过课程的目录结构优化,学生在之后的编码中明显具有模块化思维,并在一年级下学期及大二学年的面向对象程序设计、数据结构等课程中,能对其思想有更好的理解和掌握。

二、趣味故事情节导入

由于理工科学生在中学阶段的学习重点主要集中在数学、物理、化学等科目,因此,即便是计算机专业的学生,刚进入大学对计算机类专业课如C语言程序设计等课程重视程度不够。此外,C语言课程本身和中学课程在学习和理解方面差异性较大,如果采用中学的思维方式,可能无法达到很好的学习效果,这就使学生在C语言学习过程存在较多困难,更加降低了其学习的兴趣度。

为了解决上述问题,本文首先通过问卷调查,梳理出C语言重点和难点(亦即学生普遍存在问题的章节内容)的交集主要集中在函数、数组和指针章节。

表1 导学故事情节举例

针对该课程的重点,制作形象生动的故事情节导入资源。将重点内容变成生活中常见的、有趣的故事情节,利用声音、文本、图像等多媒体形式为学生提供关于新知识的引入,包含了与已学知识的联系,课程实际应用价值,与之后知识体系的关联,课程内部知识之间逻辑关系,帮助学生系统认识课程。然后将动画共享至课程学习资源中,以便学生能有效地预习,大大降低课程的乏味性,极大地激发和提升了学生的学习兴趣。以单分支结构和双分支结构为例,导学内容如表1所示(故事情节来源于自编讲义)。

三、基于博思智慧学习平台的过程化监管机制

学生脱离“高压”下的高中学习进入大学生活,学习状况和节奏落差较大,缺乏自我约束能力的学生无法合理规划课下时间,使学生在课程内容的预习和复习中产生极大的障碍,C语言程序设计是一门学生在一年级上学期理论与实践结合重要的专业必修课程,因此,针对该课程制定一个科学合理的课下监管机制显得更加必要。

为此,本文基于博思智慧学习平台[7],有效地将学生的课下学习时间作合理的安排和规划。该课程的授课形式包括理论、实践和线下三个部分,其比例为1:1:1。线下课程并非类似于传统课程要求学生“刷题”“刷课”,不仅没有起到应有的效果,反而浪费了学习时间。

博思智慧学习平台对浏览速度过快判定为“恶意刷课”,对重复度过高的代码判定为“抄袭”,有效杜绝了过程中的违规行为。此外。教师可以通过“报表中心”导出学生的学期情况。图3为教师端可见的各班学习时长统计。

图3 各班学习时长统计图

另外,在整个学期之中,分别在分支结构章节、循环结构章节、结构体章节结束之后安排三次阶段考核,其总和所占综合比较与期末成绩等同,多维度多次考核增加了考核的公平性、科学性和合理性[8],同时,也让学生在学习过程中做到反复复习,避免了期末考试之前“临时抱佛脚”的尴尬局面。

四、结语

针对传统C语言课程教学中可能存在的问题,本文分别通过优化目录结构、趣味故事情节导入及基于博思智慧学习平台的过程化监管机制有效地解决了部分问题。上述改革和实践还应在过程化考核中将比例更加细化、科学化,这也将是下一步的研究方向。

猜你喜欢

C语言章节程序设计
医学专业“Python程序设计”课程教学改革总结与思考
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
高中数学章节易错点提前干预的策略研究
基于C语言的计算机软件编程
利用“骨架突破法”,提高复习效率
高职高专院校C语言程序设计教学改革探索
八仙过海,各显神通
《烃》一章中的实验考点大扫描