APP下载

面向C#的计算思维训练支持系统研究

2015-12-04皇甫睿

中国教育信息化 2015年24期
关键词:程序设计思维课程

皇甫睿,杨 威

(山西师范大学 教育技术与传媒学院,山西 临汾041000)

一、引言

计算思维由美国卡内基·梅隆大学的周以真教授提出,是运用计算科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[1]。计算思维的教育价值体现在三个方面:问题求解思路、创新思维和形式化描述[2]。而程序设计课程的学习目标恰恰是学习求解问题的思路和方法,即算法。这种能力需要在教学中通过实际操作不断强化才能得到训练。C#是当前比较流行的面向对象的编程课程,也是高职院校计算机专业的必修课之一,贵在让学生获得面向对象程序设计思想与面向对象程序设计最基本的知识,得到面向对象程序设计的思维训练、基本职业能力的训练和社会能力的训练。本文通过对计算思维方法的深入研究,设计符合教学目标、针对学生能力的教学案例,构建面向C#的计算思维训练支持系统。该系统专门用于学生课下学习C#课程,目的是提升学习者的自主学习能力和思维能力,本文还做了相应的实验研究,得出了一些教学策略与系统改进建议。

二、问题求解中的思维方法

计算思维就是将计算机作为工具,用来解决由具体问题转化成的抽象问题(也即格式化或形式化的问题)的一种思维方式,属于面向问题和面向解决方案的方法论范畴。对于教师而言,程序设计课程并不是一门简单的技术性课程,高职教师不同于某些培训班的教学人员,不是以传授技能、迅速上岗为原则,而是更注重学生思维能力的培养,那么在教学设计中就应该有明确的体现。针对不同的教学任务,不同学习基础的学生,思维训练的策略也有所不同。本文将程序设计中常用的几种方法作了仔细研究,常用的思维方法有整体性思维、构造性思维、目标转化思维、分类处理思维、逆向思维、联想思维等。如图1所示,结合以往教学经验,程序教学中的问题求解过程从分析问题、算法设计、编程实现到运行、结果检验都应贯穿有思维训练,并且要将人的逻辑思维能力与计算机结合,以使算法达到最优化。

三、系统设计

1.整体架构及功能分析

面向C#的计算思维训练支持系统,是借助Moodle平台搭建的学习支持系统,通过设计多样化的算法和基于计算思维培养的解题思路,为学生提供共享的学习资源环境和自主学习平台,帮助学生作课下学习;同时,也为教师开展教学、进行教学管理创造了便捷的平台。本文综合考虑学生的先决技能、高校学习环境,依据C#程序设计课程的教学目标,设计了面向C#课程的计算思维培养支持系统,系统功能模块的总体设计见图2。

图1问题求解中的思维方法

图2系统功能结构图

(1)教师模块。教师的主要任务就是进行课程设计,在对C#课程标准参透的基础上,设计出有效的思维训练算法,并上传到学习平台供学生课下学习交流。教师拥有对课程的全权管理权限,可以通过系统为学生上传学习资料、发布贴子、与学生互动、查看学生作业等。

(2)学生模块。学生是该系统的使用者,也是主要用户。该系统为学生设计的主要功能有个人信息管理、案例学习、思维训练、讨论区、聊天室、作业提交。学生成功登录后可以进行自主学习,并能根据教师提供的资源进行练习,同时还能提交问题、与教师和同学进行交流互动等。

(3)管理员功能。管理员具有最高权限,可以对教师和学生用户进行管理,对课程进行管理、角色委派,对所有发布的信息进行统一管理等等。

2.主页面设计

系统主页面设计要注意以下几点:①界面直观简洁。目的是为了让用户更加方便地进行课下学习、能够迅速找到学习内容并进入学习;②语言、布局和设计要保持一致性。色彩搭配和谐、排版整齐划一也是视觉方面的审美要求;③方便用户使用。要遵循实现目标功能的最少操作数原则、鼠标最短距离移动原则等。本系统的页面经过合理规划,将主要功能集中在一起,以绿色柔和为主基调,如图3所示。后期我们将会对页面的色彩、布局及动态效果进一步改进。

图3系统主页面设计

3.系统实施流程

教学实验过程中,每一个任务都各有其特点,教师不能一味按照课本上的模式组织教学,更不能照本宣科。面向对象的程序设计无外乎封装性、继承性、多态性三个特征。在求解问题时,运行效率取决于设计模式,设计模式取决于思维模式,因此,我们要在教学过程的每一个环节严格把控,设计多样化的算法,实验班借助系统的支持,设计如图4所示师生主要的教学活动流程,该流程按照“教师-学生-教师-学生”的交互模式进行。教师要先对课程内容进行充分的准备,对问题作透彻的分析,结合学生的先验知识和理解能力,设计出有效的算法,并将学习内容上传至学习支持系统;学生利用课下时间通过网络进行学习、思考和练习,还可以在网上发布贴子、交流讨论;与此同时,教师也要及时关注学生的在线动态,进行答疑解惑、作业批改等;最后,在上机实训的过程中,学生便能更加从容地完成任务,实现所学习的算法设计编程并调试运行进行验证。

图4教学活动流程

4.系统思维训练案例剖析

本系统的核心设计是为学生提供思维训练的算法和经典案例,作为学习的支持平台,下面列举计算思维训练中逆向思维的经典案例:判断某年某月某日是星期几——函数嵌套调用。

在C#中,所有的函数定义都是平行的。函数之间允许相互调用,也允许嵌套调用。习惯上把调用者称为主调函数。嵌套调用就是一个函数调用另外一个函数,被调用的函数又进一步调用另外一个函数,形成一层层的嵌套关系,一个复杂的程序存在多层的函数调用。

如图5所示给出的是函数嵌套调用的关系模型,我们要想判断日历某个日期是星期几,首先要知道该日期是当年的第几天,即Days()函数,在此之前还要先对其是否为闰年进行判断;然后才能根据公式w=(x+(x/400)+(x/4)-(x/100)+Days(y,m,d))%7计算出答案。图5中的IsLeap()为判断闰年的函数,ValueChanged()是触发函数,Form1_Load()是入口函数。如此逆向思考,问题便简单很多。

图5函数嵌套调用关系图

四、教学设计

1.学习者先决技能分析

本文对某高校计算机专业二年级的学生进行实验。实验前,对学生的先决技能进行分析,了解学生在学习编程语言过程中的思维障碍。

(1)形象思维主导,逻辑思维能力较差。形象思维是人最基本的思维能力,不需要学习和训练,学生习惯于凭借直觉经验去思考问题,逻辑思维能力未得到良好的训练,对抽象的问题缺乏深刻感知。

(2)教学方法不当导致思维定式。大多数学生在“传递-接受”式的教学方法引导下学习,缺乏自主性和合作意识,往往教师说什么就是什么,没有个人观点,有限的课堂教学容量极易导致思维的片面性、灵活性,久而久之形成思维定式,影响学生对知识的吸收,也不利于今后的发展。

(3)缺乏问题意识,难寻思维切入点。大学教育要培养学生发现问题、解决问题的能力,而不是单纯地学习解决某一类问题的方法,要具有从实际问题中抽象出问题模型、找到问题解决切入点的能力。而70%以上的学生面对问题是茫然的,感到无从下手。

此外,实验将C#的先行课程C语言成绩作为前测数据,统计与分析得到:1301班(对照班)平均分63.2,1302班(实验班)的平均分为62.9,二者在实验前水平无显著差异,可以作对照实验。

表1 期末成绩t检验结果

2.教学实验及结果的统计

实验将1302班作为实验班,1301班为对照班,每班均为40人。经过一学期的实验,在期末考试后,对两个班的成绩进行了统计,按照公式:期末成绩=卷面成绩*70%+实践成绩*30%,计算两个班级的成绩。

期末考试的试题是经过各位教师反复测试后确定的,题目难易程度相当,试卷采用标准化考试结构,试卷为密封卷。最终全班的成绩呈现正态分布,而且两个阶段的标准差均在正常范围之内,因此,本次考试结果的信度和效度符合要求。将两个班看作两个独立样本,通过SPSS对数据进行统计,并利用t检验分析这两个样本是否具有显著性差异。

现假设两个样本总体为正态分布,忽略总体标准差。由于样本数量大于30,要对比两个班的成绩差异性,采用均值方程的t检验,检验结果如表1所示。由于Sig(双侧)=0.022<0.05,小概率事件发生了,实验组与控制组存在显著性差异,说明采用基于经验之塔的教学模式取得了一定的成效。

五、结束语

程序设计语言由一系列记号和相对应的一系列规则构成,抽象的语法、语义和内部运行机理,使得多数学生较难入门,传统的教学模式显得枯燥乏味,学习效果也不理想。随着以计算机、网络和多媒体为核心的现代信息技术的发展,计算思维已经成为学习变革不可抗拒的潮流,通过抽象和分解的方法,选择合适的方式对问题进行建模,将复杂问题约简,转化成为学生容易接受的思维模式。本文通过对C#课程的研究,结合以设计、构造为主要特征的计算思维理念,设计了科学、严谨、新颖、有效的学习模式,并搭建了配套的计算思维训练支持系统,为减少学生盲目钻研带来的困难,培养学生自主学习的能力和抽象、转化的逻辑思维能力,做了大量的工作和实验研究,也取得了一定的成效。

由于对课程标准的参透不够深入,教学设计与系统设计均有待进一步完善:一是要继续参透教学内容,使其与思维训练方法相配套,让学生能够更加清晰地学习编程案例;二是要对系统进一步完善,加强后台管理,尤其是对贴子中师生互动记录的管理,另外最好能对学生发布的贴子进行分类,便于教师和其他学生查看和交流;三是由于本系统是基于Moodle开发的平台,界面设计等方面较为死板,需要进一步修改。

此外,实验班级人数有限,该方法的有效性验证结果可能存在片面性。因此,这些不足之处也是对教师的一大考验,在今后的教学实践中要做的工作还有很多。

[1]黄锐军.C#程序设计项目实训教程[M].北京:化学工业出版社,2009.

[2]黎加厚.信息化课程设计——M oodle信息化学习环境的创设[M].上海:华东师范大学出版社,2007.

[3]王汉澜.教育实验学[M].开封:河南大学出版社,1992.

[4]高文.教学模式论[M].上海:上海教育出版社,2002.

[5]张东生,季超.从形象思维到计算思维[J].计算机教育,2012(19):6-11.

[6]陈杰华.程序设计课程中强化计算思维训练的实践探索[J].教学与课程建设,2009(20):84-85.

[7]王子.程序设计课程思想树的构建研究[D].南京:南京师范大学,2014.

猜你喜欢

程序设计思维课程
思维跳跳糖
思维跳跳糖
思维跳跳糖
思维跳跳糖
数字图像处理课程混合式教学改革与探索
软件设计与开发实践课程探索与实践
基于Visual Studio Code的C语言程序设计实践教学探索
为什么要学习HAA课程?
从细节入手,谈PLC程序设计技巧
A—Level统计课程和AP统计课程的比较