孙敏

(长春光华学院,吉林长春 130033)

1 研究背景

教育部高等学校大学计算机课程教学指导委员会发布了 《大学计算机基础课程教学基本要求》(以下简称《基本要求》)指导性文件,但在实际教学过程中,缺乏认真解读和系统的教学设计。因此,依据《基本要求》教学内容知识体系总体架构和教学体系,设计既符合应用型高校培养目标体现其专业价值,又能吸引学生参与互动的学习内容研究,势在必行。

2 应用型高校C语言程序设计教学现状及存在的问题

2.1 C语言程序设计教学现状

经过MOOC平台的研究,以“C语言”为关键词在常用的MOOC平台中搜索相关课程,中国大学MOOC平台返回107条相关结果;学堂在线平台返回272条相关结果;爱课程平台中返回43条相关结果。基于MOOC的混合式教学改革还需要继续探索。已经有新型教材,且有配套的多媒体教学资源。将现有的优质资源进行整合,基于新型教材优化课堂教学有待进一步研究。

2.2 应用型高校C语言课程教学存在的主要问题

C语言程序设计的教学内容呈“线性”组织,过于强调语法,忽略计算思维的培养。C语言语法知识多而杂,把知识按照这种简单的链状顺序连接在一起,给学生造成认知困难,也很难灵活提取知识解决实际问题。课堂教学教条化、模式化、单一化、静态化的特点很难满足新时代人才培养的需求。

3 应用型高校C语言程序设计课程教学内容研究

2016年发布的《大学计算机基础课程教学基本要求》将大学计算机基础教学的知识领域由以前的4个调整为3个知识领域,C语言程序设计属于 《基本要求》中提出的“宽专融”课程体系“专业型”课程类型中“程序设计基础”的典型课程。

3.1 C语言程序设计教学知识体系及计算思维培养重点

3.1.1 C语言程序设计课程知识体系的构建

《基本要求》提出程序设计基础的知识点分为两种类型:“核心 1(统一必修)”“核心 2(分类必修)”,一般要求每个学生必须掌握“核心2”知识内容的20%以上。参考《基本要求》中提供的“程序设计基础(C语言)”课程典型教学方案,C语言程序设计课程知识框架设计6个知识模块:程序与程序设计语言、数据与数据类型、程序控制语句、函数与模块化程序设计、复杂数据类型、文件。每个知识模块又划分为若干个知识单元,共划分为44个知识单元。各知识单元在教学内容组织上循序渐进向学生呈现知识点之间丰富的内在联系,打破知识点线程呈现的局限。

3.1.2 C语言程序设计涉及的计算思维及计算思维能力的培养

在教学内容组织和教学过程中,需关注的计算思维培养重点包括核心概念:(1)算法、程序;(2)迭代、递归;(3)数据类型、数据结构、数据组织;(4)重用性;掌握重点:(1)理解算法、程序的概念;(2)掌握迭代、递归等基本方法;(3)了解典型问题算法求解策略;(4)理解常用数据类型和数据结构的概念和作用;(5)了解程序模块化设计思想。

在教学过程中有意识地培养和强化与本课程最相关的自动化、设计、评估、计算等计算思维方面的内容。通过介绍算法概念和简单算法介绍、递归函数设计等相应的程序设计训练,使学生理解算法、迭代、递归,以及贪心法、分治法等简单的算法设计思想,进而理解计算机自动化的基本思想方法;通过介绍结构化程序设计方法、函数设计等相应的程序设计训练,使学生理解程序设计的模块分解与复合、重用、信息封装等软件设计的基本思想;通过训练程序的调试、比较分析不同算法程序运行效率,使学生理解评价指标、基准测试、容错等程序评估思想和方法以及理解计算的复杂性。

3.2 C语言程序设计课程教学内容设计

学生组织知识的方式会影响其学习和运用知识的方式。研究已表明,与让学生自己推断概念结构相比,教师为他们提供适合于新知识的组织结构,可以使他们的学习效果更好、效率更高。只要能为学习者提供熟悉的知识组织结构,就可以提升学生的理解和记忆水平。课程教学内容侧重围绕某个主题进行组织,使学生能把每堂课上所学的知识联系起来,通过内容的螺旋式迭代,使学生在知识点间建立必要的联系,达到学习新知识时能基于其原有的知识基础,以相互关联的信息组块,随着学习的推进,将知识组织呈一个复杂的、相互关联的结构。

3.2.1 C语言程序设计教学资源的整合

C语言程序设计教学内容以程序设计为中心进行组织,根据知识点的内在联系设计教学模块,在教材选用上,选用高等教育出版社何钦铭等主编的教材《C语言程序设计(第3版)》,其内容组织强调以程序设计为主线,以案例和问题引入内容,加强编程实践的教学设计理念,与课程改革思路相符,而且有与其关联的MOOC课程,中国大学MOOC平台翁恺老师主讲的《C语言程序设计》,教材还提供在线练习PTA网站http://pta.patest.cn,可以实现在线评分的功能。将MOOC课程视频资源作为教学视频资源,根据教学内容重新组织教学视频,通过学习任务单给学生设计每个教学单元的有效学习路径,引导学生学习。

3.2.2 C语言程序设计教学内容设计

教学内容设计原则:首先介绍一些背景知识和利用搞计算机求解问题的过程,然后从实例出发,介绍顺序、分支和循环3种控制结构以及函数的使用,使学生对C语言有个总体的了解,并学习编写简单的程序,激发学生学习兴趣,然后逐步深入讲解程序设计的思想和方法,说明如何应用C语言解决问题[2]。

根据教材内容框架,将44个知识单元重新组合,共72学时。将教学内容分C语言程序设计基础(30学时)、C语言程序设计进阶(20学时)、高级编程(20学时)三个阶段。C语言程序设计基础阶段包含知识模块:程序设计基础、基本语法(整型、算术运算符、控制结构和函数基础)、程序设计思路和方法(分支、循环、函数)、数据表达与数据处理(基本数据类型、表达式),首先使学生从程序基本框架入手,了解完整程序的一般组成,再深入展开,体现程序设计理念,知识点螺旋式迭代式展开,有利于学生理解程序设计的过程。C语言程序设计进阶阶段包含知识模块:构造数据类型、指针、结构。高级编程阶段深入讲解函数和程序结构、指针和其他构造类型在编程中的应用、文件的使用等,通过典型案例和问题引入,循序渐进地提高学生程序设计能力。

4 结语

C语言程序设计是一门实践性很强的课程,传统教学中,围绕C语言语法本身的体系展开内容,学生学习困难,学习积极性不高,实践动手能力差,在有限的学习内得不到有效的计算思维训练。课程教学改革尝试重组教学内容强化以程序设计为主线,教学内容呈螺旋迭代式展开,以编程应用为驱动,加强编程实践和计算思维培养,尝试线上线下混合式教学模式,通过“MOOC+SPOCs+翻转课堂”推动本校的教学改革实践,为同行提供教学参考。