程序设计类课程立体化教材建设探索与实践

2018-02-27 21:49周幸妮任智源马彦卓沈中孙德春
计算机时代 2018年2期
关键词:立体化教材教材建设教学设计

周幸妮+任智源+马彦卓+沈中+孙德春

摘 要: 根据程序设计类课程本身特点,以计算机解题的角度做切入点,分析相应传统教材的问题,研究探讨适合的教学设计与方法。借助电子及互联网等各种媒介,选择合适的方式将教材做立体表达。教学设计主线以纸质教材为主,重点在建立计算思维方法及明晰程序的调试方法;课堂教学使用电子类教材,辅以在线随堂练习题目;上机训练配以测试题库,实现网络在线自动测试。通过建设合理有效的立体教材,多种方式配合,解决程序设计教与学过程中的难点与重点问题。

关键词: 程序设计课程; 教学设计; 立体化教材; 教材建设

中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2018)02-90-05

Abstract: According to the inherent characteristics of the program design courses and the perspective of computer-based problem-solving, the problems in corresponding traditional textbooks are analyzed, the appropriate pedagogical designs and methods are studied and discussed. With the help of various media such as the internet, appropriate methods to comprehensively present the textbook are selected. The pedagogical methodology is mainly based on the paper-based textbook, and focuses on establishing computational ways of thinking and clarifying the methods of program testing. The classroom instruction will be based on an electronic textbook, aided by online in-class exercises. The programming exercises are supplemented by a library of tests in order to achieve automatic online testing. By producing a sensible and effective three-dimensional teaching material, the multiple methods are cooperated to solve the difficult and important problems in the teaching of program design courses.

Key words: program design course; pedagogical designs; three-dimensional teaching material; textbook construction

0 引言

在數据结构的教学中发现,学生对教材有一些看法,比如他们把教材分为两类,即“工具书”和“讲解书”。工具书类教材注重框架,概念、知识、数据、内涵等比较全面,也包含必要的过程描述,一般传统教材都是这种写法,其好处在于无余赘、易查找,但其致命缺陷是不能脱离课堂讲解,这对授课老师和学生的课堂学习质量及查阅效率便提出了很高的要求。现在网络发达,工具书的优势——已可以被网络所取代。在大学,需要自主学习,所以需要好的讲解书,帮助我们理解知识,掌握知识并灵活运用,我们认为,《数据结构与算法分析新视角》[1]是一本好的讲解书。

1 网络时代传统教材存在的问题

计算机类课程的学习需要从计算机的角度思考问题,遵循计算机的规则解决问题。其教学对计算思维的培养有所忽视。

现在一般的C语言与数据结构编程类课程,采取的授课方式是大课堂讲解和机房上机练习,上课进度和上机安排一般不能完全同步,学生课下自主练习困难。另外,上机调试复杂且繁琐,学生课上往往不能完全记住老师机上演示的要点。以上各种原因造成不少学生对编程课的反映是概念难理解、调试难掌握,学习效果不尽如人意。

数据结构课程概念较多、思维方式较为抽象,如树、图等结构的建立、相应算法处理都有一定的理解难度,若先修课C语言编程基础不好,学生到了数据结构的学习阶段,就更不易理解难度较大的算法程序,造成不少学生放弃编程学习。

2 立体教材体系的建立

针对传统教材存在的不足,我们课程组编撰了《C语言程序设计新视角》[2]和《数据结构与算法分析新视角》(以下简称c新视角、数据结构新视角)等新教材,通过实际生活和工程案例引入重要概念;从横向和纵向给出各概念间的归结,便于知识点的理解与把握;给出各相关重点难点题目的调试实例步骤图,让学生有模仿的范本。

立体化教材体系的建立,可以更好地解决学生学习中的问题。立体化教材建设的想法是于上世纪末提出的,为摆脱局限于课堂的授课方式,改革以往书本一统的局面,从单调的文字、图片,转向声、影、光立体展现,从纸介质一种表现形式转向不同媒体的多元表现形式。这样不仅有利于知识的获取,而且有利于知识的保持。

3 程序类课程教学计划设计

关于人类的认知学习,有许多教育学家心理学者创建了许多的理论和方法,比如美国教育心理学家布卢姆(BloomB.S.),把认知领域的教育目标顺序分成六个类别:识记、理解、应用、分析、评价和创造六个由浅到深认知过程[3]。我们对客观世界事或物的认知是通过回答三个问题“是什么、怎么、为什么”来完成的。“是什么”是关于事物本质的问题,“怎么”则为人们“应该怎么做”而提供的指导。“为什么”是对事物问题发生原因的探讨。任何事物的存在或现象的出现都不可能没有原因,只有正确认识事物发生的原因,认清其因果联系,才能真正认识此项事物。ADDIE是一套有系统地发展教学的方法,主要包含三个方面:要学什么(学习目标的制定);如何去学(学习策略的运用);以及如何判断学习者已到达学习成效(学习评量的实施)[4]。由卡尔霍恩·威克(Calhoun Wick)等人构建出的6D学习设计模型,核心思想在于为学习者创造一个完整的学习体验和学习环境[5]。endprint

无论采用什么样的教学设计,原则是设计应与人的认知规律相适应,从而确定相关学习层次,进而为媒体选择与设计提供指导。由于计算机课程本身的特点而带来的特性问题,程序设计类课程的教学设计要特别注重从计算机解决问题的角度即用计算机思维来考虑。

3.1 基于多种媒体的综合教学设计

根据程序设计课程的特点和各种媒体的特性,具体教学设计见图1。

知识领会层次的教学目标,设置在基本概念容易理解并掌握上,教学设计上,通过实际问题引入、各概念横向纵向联系分析、讨论各种机制设置原因三个主要方面来进行,实施手段主要是课堂讲解。

分析运用和综合运用的教学目标都是了解计算机解题的步骤和方法。对分析运用层次的教学设计,按照计算机解决实际问题的顺序(数据输入、功能实现、结果输出),将数据分析后形成测试样例设计;通过功能分析,构造系统模块,做接口设计;采用自顶向下逐步细化进行算法描述。

综合应用层次,在算法描述完成的基础上,完成代码编制,并在相应集成环境中进行测试和调试。

实践与评价层次,设置要达到的目标是逐步熟悉掌握编程技能,通过笔头作业和上机练习,习题难度从简单到综合,复杂程度逐级增加,最后通过各种测试方法,给出学生学习效果的评价。

3.2 学习计算机思维方式在教学设计中的体现

著名数学家欧拉说:如果不能把解决数学问题背后的思维过程传授给学生,那么数学教学就没有意义[6]。人的认知活动通常都从问题开始,发现问题并探索新知,这样的学习容易让人印象深刻,以及理解并掌握问题的内在规律和联系。发现问题之后,更进一步的工作是解决问题,这就需要进行深入的思考,首先寻找和已有问题类似的原问题,分析新问题和原问题的相同点和不同点,然后对新问题进行重新定义,构造新的认知,在此过程中,思考者往往能即刻顿悟出问题的创新解法。由原有的知识给出新情境中的新问题,引导学生发现新问题与已有知识间的不同,通過这样的方式进行创新的思维训练[7]。

例如,C语言新视角在结构体一章的开始提出思考问题:要实现一个不同类型的学生成绩表格的成绩统计与整体表格打印,在已知经验中没有现成可以套用的方法,此时根据已有的数组处理规则,可以和一个同类型的学生成绩表格做对比,查看相同不同点在哪里,由此引出要解决的问题——如何建立“组合的数据类型”,以实现一个复杂的数据结构的功能。通过逻辑推理与讨论,得出结论——需要增加“组合数据”的新机制,根据数据存储三要素,应该从存储尺寸、空间分配和数据引用这三个方面来分析这种新数据结构的特性,接下来再详细讨论确定“组合数据”的类型、变量定义、变量引用方式,给出“结构体”的定义就顺理成章了。

再例,数据结构新视角,在图的顶点查找问题(图的遍历)中,给出网络爬虫的搜索问题的实例。“网络爬虫”是搜索引擎抓取系统软件的重要组成部分,它遍历Web空间,能够扫描一定IP地址范围内的网站,并沿着网络上的链接从一个网页到另一个网页采集网页资料。如何无遗漏且不重复地高效访问所有的网页,需要有好的策略来实现图的遍历。通过对“图的遍历和树的遍历有什么不同”以及“如何避免图的同一顶点在遍历时被访问多次”等问题的讨论,再具体通过走迷宫策略的探讨,最后给出图的遍历的多层细化算法描述和代码实现。

通过实际问题的分析及解决过程的探讨,引导学习者从本质分析编程语言各种机制设置的原理,再从计算机的角度解决问题,可以让读者清晰地理解各个概念并建立起完整知识系统。

问题引入、计算机解题思维方式的详细描述等内容,适合在纸质教材中呈现。

3.3 测试调试方法在教学设计中的体现

针对调试过程复杂并且不易记住的情况,将调试过程分别以静态(纸质教材)、动态(课堂演示+微课视频)的方式展示,配合在线测试(Online Judge)系统,通过测试样例设计方法、程序设计方法和调试跟踪技巧的训练,让学生在实践中掌握编程。

C语言新视角和数据结构新视角中有大量调试实例,通过例程跟踪解析,使得学生能观察到计算机运行程序的内部过程。有了直观感知后,学生们反映对程序的处理方式容易理解了。

例如,链表一直是数据结构中的教学难点和重点内容,学生可以理解逻辑上的概念,但对计算机中通过编程使得各结点在逻辑关系上链接起来,总觉得难以操作和把握。在数据结构新视角里就增加了链表跟踪解析结点结构,先通过两个结点静态链接的简单实例,跟踪查看在内存级别上结点数据是如何关联上的,再到两个结点动态链接的程序跟踪调试,就容易理解掌握了。具体在数据结构新视角中,有编程实现图2的两个静态结点的连接和动态连接的例子。此处静态连接是指,结点结构空间是通过结构体变量定义静态分配的,把这样的结点连接起来;动态连接是指,在程序运行过程中,先动态申请得到结点空间,然后再按要求进行连接。

图3中显示了跟踪调试过程中的一个步骤样例,结构的空间地址及赋值情形,结构指针p记录了y的地址。最后根据跟踪结果,画出结点x和y地址关系图,见图4。可以用同样的方法再给出两个动态结点的连接调试过程的解析。

4 多媒体资源制作

立体教材的建设,既要处理各种教材形态的关系,也要研究教材与其他学习资源的关系,这需要有想法,有能力,熟悉电子、网络等各类教材的建设理论及方法,更需要投入大量的时间和精力[8]。

4.1 课件制作

PowerPoint在多媒体课堂教学中使用率非常高,我们在教学中发现存在的问题较多,ppt制作需要注意以下几点。一是提炼关键词,文字过多时,只列出其中要点。二是色彩不要过多,一般不超过3色为宜。三是图表大小比例适当。四是结构组织排列对齐,项目的级别正确。

4.2 操作演示

C语言课程有概念难理解、调试难掌握的特点;数据结构课程中存在概念抽象、数据关系复杂的问题。可以将难理解的概念、复杂的处理步骤、典型调试实例等制作做成微课,放到课程网上,学生随时可以对照教材内容在手机或电脑中观摩学习。endprint

微课本身就定位在“微”,用短时间把知识点讲清楚,需要对讲解内容的做精心的安排。目前我们已和一家信息公司及相关出版社合作,以C语言新视角教材为基础,分知识点制作了整门课程的微课。

4.3 实验测试

Online Judge系统(简称OJ)是在线判题系统,用来在线检测程序源代码的正确性。OJ系统考验学生测试样例设计的完备性、算法设计的正确性、代码实现、调试的熟练性等技能,对学生而言是一个很好的训练环境,对教师而言可以大大减轻阅读学生程序作业的工作量。目前我们已经在C语言和数据结构教学中使用了OJ系统。

在线问卷调查系统是通过互联网把传统的调查、分析方法在线化、智能化,依托传统调研公司开发的一整套有效的市场调研问卷平台。利用这类平台,我们把数据结构教材各章节的客观题做成测试问卷,在每章节内容讲授后,发布问卷的二维码,学生用手机在课堂上花几分钟即可完成答题,提交后本人能实时看到评分和正确答案。教师可以根据后台统计报告,及时掌握学生的学习情况。在数据结构课程上实施后,学生反映对此类形式比较喜欢。

4.4 网络资源

我国高校教材一般内容比较固定,修订增删间隔时间相当长,即使修订也是在原来基础上稍作改动。学生年复一年使用相同的教材而知识却在不断更新。

立体教材的形态,是纸质图书以网络为依托,采用“纸质文本+数字化资源”的方式呈现。核心资源在纸质教材中体现,拓展资源放到课程网站。教材中关键点、难点、相应节点,比如动画、视频、实验、自我测试等,则可以通过二维码扫描,实现平面教材与网络资源的链接,或登录课程网站即可浏览课程资源,实现教学课堂与课程网站的对接。

前面提到的C语言的全套微课是配合将要重版的C语言新视角做的配套网络资源,另在纸质教材相应知识点、关键字部分都将增加二维码,链接更多的拓展资源。

笔者英文版的数据结构新视角,预计2018年前后在科学出版社出版,科学社也要求作者必须提供配套的课件、题库等数字化资源。

另外可建立课程相关论坛,提供给学生自由讨论课程问题的平台。西安电子科技大学教务网站给每位老师都提供了可以自行填充扩展的网页,方便大家把自己的课程资源放到网站上,同时也具备有讨论、作业提交等功能。

5 结束语

在互联网+飞速发展的时代,大学计算机类课程应该尝试各種媒体技术的综合应用。我们根据程序设计类课程本身特点,立足分析问题解决问题的根本,在程序类课程的教学实践中,根据学生的概念理解难、调试掌握难等问题,以教学设计为纲,辅以各种教学资源,基本达到了方便教师教学,学生更容易在学习中理解其因,掌握其法的目的。对培养学生分析问题、解决问题的能力,发挥学生的自主性和创造性有一定的促进作用。各种媒体资源在线使用的方便性,提高了学生的学习兴趣,有利于因材施教。教材的立体设计方式可以应用到很多课程当中。立体教材所建立的各种课程资源,可以灵活应用于启发式、探究式、讨论式、参与式等等以学习者为中心的教学新模式中。由于非计算机专业的程序设计类课程的课时过少,我们虽然已经做了很多教材立体化资源的建设工作,但依然需要学生自觉地完成大量的自主学习。后续我们将通过学生的反馈,在教学和教材建设中不断改进提高。

参考文献(References):

[1] 周幸妮等.数据结构与算法分析新视角[M].电子工业出版社,2016.

[2] 周幸妮.C语言程序设计新视角[M].西安电子科技大学出版社,2012.

[3] L.W.安德森等.面向学习、教学和评价的分类学——布卢姆教育目标分类学的修订[M].上海:华东师范大学出版社,2007.

[4] 史密斯PL,雷根TJ.教学设计[M].上海:华东师范大学出版社,2008.

[5] (美)卡尔霍恩·威克著.周涛,宋亚南译.将培训转化为商业结果:学习发展项目的6D法则(第二版)[M].电子工业出版社,2013.

[6] 刘未鹏.知其所以然(以算法学习为例)[EB/OL].(2008-07-07)[2013-06-12].http://mindhacks.cn/2008/07/07/the-importance-of-knowing-why/.

[7] 周幸妮.基于认知规律新视角的程序设计教学研究[J].计算机教育,2014.10:38-42

[8] 陈琳,蒋艳红,李凡等.高校教材建设的时代性要求研究[J].现代教育技术,2011.21(10):20-23endprint

猜你喜欢
立体化教材教材建设教学设计
关于核科学技术专业英语教材建设的思考
湖北民间舞蹈课程体系的建构
中高职衔接教材建设的思考与实践
高中数学一元二次含参不等式的解法探讨
“仿真物理实验室” 在微课制作中的应用
翻转课堂在高职公共英语教学中的应用现状分析及改善建议
提高课堂教学有效性的研究
控制工程基础教学内容优化及教材建设的实践
丰富大学英语立体化教材内容的对策
工程图学立体化教材建设的研究与实践