APP下载

“三位一体”的C语言程序设计课程教学改革实践

2019-11-28李海丰李俊生谢丽霞王宏伟万小艳

计算机时代 2019年11期
关键词:C语言程序设计计算思维三位一体

李海丰 李俊生 谢丽霞 王宏伟 万小艳

摘  要: 为了应对目前C语言程序设计课程教学中面临的诸多问题及挑战,提出了“三位一体”的C语言程序设计课程教学改革方案。通过专题化教学内容整合、立体化教学模式改革、多层次实验体系建设以及多维度课程考核等方式培养学生的“编程技能、算法知识、计算思维”。上述教学改革措施已在中国民航大学实践了两年,取得了良好的效果。

关键词: 三位一体; C语言程序设计; 教学改革; 编程技能; 算法知识; 计算思维

中图分类号:TP311.1          文献标志码:A     文章编号:1006-8228(2019)11-93-03

Abstract: In order to cope with the problems and challenges in the teaching of C language programming course, a trinity teaching reform plan of C language programming course is put forward. Through thematic teaching content integration, three-dimensional teaching model reform, multi-level experimental system construction and multi-dimensional curriculum assessment, students' programming skill, algorithm knowledge, computational thinking are trained. The above-mentioned teaching reform measures have been practiced in Civil Aviation University of China for two years and have achieved good results.

Key words: trinity; C language programming; teaching reform; programming skill; algorithm knowledge; computational thinking

0 前言

自然科学领域有三个公认的科学方法:理论方法、实验方法以及计算方法。与这三个科学方法对应的三大科学思维分别是理论思维、实验思维以及计算思维[1]。计算思维是在2006年由美国卡内基·梅隆大学计算机科学系主任周以真教授提出的。计算思维是指运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[2]。

1 “C语言程序设计”课程教学现状分析

“C语言程序设计”是高等学校计算机公共基础课,是大学通识教育的重要组成部分,也是培养学生计算思维的基础课程。以中国民航大学为例,“C语言程序设计”课程是所有非计算机理工科专业学生的公共基础课,每年有超过3000名学生在大一的第二学期学习本课程。“C语言程序设计”课程是高校计算机类通识教育的核心课程之一。然而,目前国内很多高校开设的C语言程序设计课程仍存在以下问题。

⑴ 教学知识点繁杂,教学课时不足

目前, “C语言程序设计”课程教学内容陈旧,仍然以全面的语法讲解为主,课程教学内容往往不能满足信息技术发展和实践需求,这些都成为阻碍教学改革与发展的重要因素。此外,还存在授课内容繁杂,教师授课面面俱到,而一般高校“C语言程序设计”课程的学时仅为48-54学时(其中理论课时34左右),导致教学课时明显不足。

⑵ 教学模式不能激发学生兴趣

“C语言程序设计”课程依然延续着以往“教师讲,学生听,上机练”的教学模式,教师课堂讲授理论知识部分,学生听课后通过上机操作实验部分。课程课内学时有限,课外学时学生积极性不高,未能很好地激发学生的学习兴趣。

⑶ 实验教学的外延性不够

目前,实验教学仅是课堂教学在计算机上的简单延续,以验证课堂所授知识为目的,无法调动学生的参与积极性,也不利于引导学生学以致用,课程实验内容的外延性不够,甚至导致学生感觉本课程与其他后续的专业课程关联小,有学而无用的错觉。

⑷ 无法满足培养学生“计算思维”的需求

目前的C语言课程授课存在重语法、轻算法、忽略思維的倾向性,即重视语法学习,很少涉及算法掌握,无法培养学生的计算思维。

针对上述问题,本文提出了面向“编程技能、算法知识、计算思维”三位一体的C语言程序设计课程教学改革方案。

2 三位一体的教学改革

2.1 三位一体教学模式的内涵与总体改革思路

采取“技能、知识、思维” [3]三位一体的教学模式,其具体内涵及三者之间的关系如图1所示。其中,编程技能是“C语言程序设计”课程应该培养的最基本的能力,在掌握了一定的编程技能的基础上,融入算法知识的学习,通过自行设计不同算法,编写程序解决各类实际问题,从而培养学生的计算思维。

图2所示为本文设计的“C语言程序设计”课程总体教学改革思路。下面各小节将逐一阐述每一项具体的改革措施。

2.2 专题化的教学内容整合

现有的“C语言程序设计”教材在内容组织上,虽然依逻辑思维方式进行了归类,但难点还是较为集中、跨度大[4];概念繁琐,但分析较少。因此,需要研究在课堂教学中对教学内容重新归纳,以专题化、精简化的方式提高教学质量。目前,已经形成了以下的C语言专题化、精简化的教学思路。

专题一:C语言的基础知识——从“数据被加工的过程”说起。主要从哪些数据能够被加工的角度,来介绍C语言的数据类型,从被加工的手段出发介绍C语言的运算符,从被加工的具体过程的角度,来介绍控制语句的三种基本结构。

专题二:批量化数据的定义及使用。包括以数组的形式实现对相同类型数据的定义和处理,以及以结构体和共同体的形式实现对不同类型数据的定义和处理。

专题三:函数的定义及使用。包括函数的定义与调用,编译预处理等内容。

专题四:指针及其应用。包括指针的定义与引用,数组与指针,以及用于表示字符串的特殊指针——字符指针。

2.3 立体化的教学模式改革

设计了课内外、线上线下等多种模式相结合的立体化教学模式改革方案。包括网络课堂与传统课堂相结合、课内精讲与课外资源相结合、课堂教学与在线视频教学相结合、纸质实验报告与在线作业相结合等四个方面的具体改革措施。

⑴ 网络课堂与传统课堂深入结合:大规模在线开放课程(Massive Open Online Course,简称慕课或MOOC)[5]是今年兴起的一种全新的在线教学模式。本课程组利用中国大学慕课平台的开放MOOC课程,建设了我校的“C语言程序设计”SPOC网络课堂。将传统课堂教学与SPOC网络课堂学习有机结合,SPOC主要起到课前预习、课后核心知识点考查、部分知识拓展的作用,传统课堂主要是核心知识点的讲解。

⑵ 课内精讲与课外资源的结合:针对上述四个专题的教学内容,以专题化的方式精讲课内核心知识,同时利用建设的校内Bb教学平台为学生提供经典习题、应用拓展、知识延伸等的课外学习资源,丰富学生的知识体系。

⑶ 纸质实验报告与在线提交作业相结合:采用课后作业、实验报告和在线作业相结合的组织方法。学生的课后作业和上机实验报告的内容仍以纸质报告提交。此外,本课程组自行设计开发了一套C语言程序在线提交系统。在我校校园网环境下,借助该系统可以实现作业题目的入库与发布、作业发布、学生在线提交程序、系统自动批改作业并评分、组织学生进行编程类竞赛实训等功能。该系统为学生提供了提高编程技能的实战环境,同时提高了作业批改效率。将纸质报告与在线提交作业相结合,纸质报告侧重核心知识点和关键上机内容的考查,而在线提交程序作业则是以工程训练的手段进一步提高学生的编程技能,巩固课程中的算法知识。

⑷ 普通課堂教学与在线视频教学结合:以四个专题内容为基础,从中总结了58个核心知识点,任课教师对每个知识点专门录制了短视频,并以微课形式发布在网上。微课视频涵盖了课程的核心知识点,有助于学生的课前预习和课后复习,在课堂教学时则是针对每个核心知识点进一步展开,以经典案例的形式深入分析,并讲授与其相关的其他知识点。

2.4 多层次的实验体系

在计算思维能力培养要求的指导下,以实际案例驱动为核心思路,设计了多层次的C语言程序设计课程实验体系,包含演示性实验、设计性实验、综合性实验、实践创新训练、企业实践等五个层次。

⑴ 演示性实验:演示性实验的目的是直接演示相关程序,让学生对实验结果有直观的认识,或者通过编译、执行已有程序来验证相关操作,使学生能够“边学习算法边实践编程”,通过编程实践来验证理论算法,进而进一步理解、掌握相关算法知识。此部分主要涉及C语言程序设计基础、程序运行过程与调试等实验。

⑵ 设计性实验:设计性实验以编程实践为基础,对学生的编程技能、算法知识进行训练,以实现提高学生工程实践能力并培养计算思维的目标。目前,本课程组已专门编撰了C语言程序设计课程的实验指导书[6],其中包含了8个设计性实验。在提交的实验报告中,需包含以下要素:问题及分析、算法的设计、程序流程图、程序源代码、归纳总结。鼓励学生用不同的算法去解决实际问题,通过算法多样化训练学生的计算思维。

⑶ 综合性实验:针对具体工程问题,从需求分析、算法设计、算法实现、程序实际应用、分析总结等方面完成综合性的实验。综合性实验的选题包括两个来源:一是课程组建立了一个综合性实验项目库,学生可从其中任选一题完成;二是鼓励学生自拟题目,自拟题目可以源于自己本专业或学生参与的实际科研项目。综合性实验的管理采用项目管理形式,即学生可以组织团队,经历项目的立项、开题、需求分析、方案设计、方案实现、测试分析、结题等全部环节,通过该方式更有助于提高学生的用计算思维解决实际工程问题的能力。

⑷ 实践创新训练:实践创新训练采用大学生创新创业项目等课内科技类项目的方式开展,如果学生已经参与或者计划参与相关项目,该内容除了可以作为综合性课程设计外,还可得到老师的指导。

⑸ 企业实践:企业实践的具体落实办法为:课程组根据任课教师各自的科研经历,凝练了与企业合作中的实际案例,建立企业实践案例库。企业案例实践以讲解为主,每次以视频、图片、文字等形式展开,每个案例讲解控制在5分钟左右。重点是让学生了解程序设计的意义和未来可能的应用领域,激发学生学习兴趣,同时扩展学生视野。

2.5 多维度考核方式

课程考核采用包含MOOC学习成绩、作业成绩、考勤成绩、期中和期末考试在内的多维度考核方式。其中,MOOC学习成绩通过统计学生在线学习时间、完成MOOC作业和测试的方式得出;作业成绩包括提交的纸质报告成绩和在线提交的程序作业的成绩;期中和期末考试采用题库,以上机考试的方式完成。

3 总结

本文首先分析了目前高校“C语言程序设计”课程教学中存在的问题。然后,提出了“编程技能、算法知识、计算思维”三位一体的教学理念,并以此为指导,详细阐述了在模块化教学内容整合、立体化教学模式改革、多层次实验体系建设以及多维度课程考核等方面的改革方案。该方案已在我校非计算机专业的“C语言程序设计”课程中完整实践了两年,取得了较好的效果,学生课程评价分数显著提高。目前,这些教学改革经验正逐步在我校计算机学院的程序设计类课程中推广实践。综上,本文为通过C语言程序设计课程培养学生计算思维能力提供了一种具体可行的思路和方案。

参考文献(References):

[1] 朱亚宗.论计算思维——计算思维的科学定位、基本原理及创新路径[J].计算机科学,2009.36(4):53-55

[2] 周以真.计算思维[J].中国计算机学会通讯,2007.3(11): 83-85

[3] 尹建新,张广群."技能-能力-思维"三层次大学计算机基础教学[J].计算机时代, 2013.9:67-69

[4] 邱建林,刘维富,顾晖,等.C语言程序设计教学的研究与实践[J].电气电子教学学报,2003.25(4):96-98

[5] 苏小红,赵玲玲,叶麟,等.基于MOOC+SPOC的混合式教学的探索与实践[J].中国大学教学,2015.7:60-65

[6] 谢丽霞,李俊生,王红.C语言程序设计实践教程[M].第2版.北京:清华大学出版社,2017.

猜你喜欢

C语言程序设计计算思维三位一体
以“学生为中心”的《C语言程序设计》教学设计探究
程序设计课程中计算思维和应用能力培养问题研究
基于“三位一体”校企合作人才培养模式下职业教育教学质量的提升途径研究
浅谈《C语言程序设计》课程的教学改革
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养
《C语言程序设计》课程的教学改革与实践
论“有趣、有用、有效”三位一体的教学模式在商务礼仪课程中的运用
浅析高职院校三位一体航空服务专业人才培养模式