APP下载

计算思维导引新生研讨课中问题驱动教学方法研究

2017-09-01鲁强陈学兰

计算机教育 2017年8期
关键词:计算思维

鲁强+陈学兰

摘 要:将Problem-Based Learning(PBL)教学方法引入计算思维导引新生研讨课程中时,面临着新生课下讨论时间难以集中、自主学习能力差、分组讨论教室资源有限等问题。为提高学生分析、解决问题的能力,在改进PBL教学方法的基础上,提出与授课主题特点相适应的问题驱动教学方法,这种教学方法包括完全驱动、部分驱动和授课驱动3种授课方式,重新梳理并优化课程中的问题,最大化提高学生参与问题讨论的效果,帮助学生理解课程内涵,进而增强学生的自主学习能力。

关键词:计算思维;Problem-Based Learning;新生研讨课;问题驱动教学方法

0 引 言

计算思维导引新生研讨课的开设目的是突破现有计算机导论性质课程困境,通过研讨课形式让学生理解计算机学科的发展脈络,了解学科关键问题以及课程体系框架,并使其初步具有查阅、分析和总结文献的学习能力[1]。由于此课程是针对大一新生开设的研讨课,在课程中如何引导新生积极主动思考、发言,进行有针对性的自主学习,是课程教学过程中需要考虑的问题。Problem-Based Learning(PBL)[2-3]教学方法强调以问题为导向,鼓励学生分组讨论,在问题分析、解决方案设计过程中培养学生主动学习和解决问题的能力。这与此课程的开设目的相一致。

PBL教学方法在实施过程中对教学资源要求较高(例如分组讨论教室),需要学生进行充分的讨论,同时具有较强的自主学习能力。此课程授课对象是全校各个专业的大一新生,面临授课学时短、授课内容范围广、学生课下讨论时间难以集中、新生自主学习能力差等问题。如何引入内容合适的问题,教学内容如何围绕这些问题进行设计,是此门课程成功的前提。

1 课程问题设计

此门课程共16学时,分为8个主题,具体见表1[1]135。根据每个主题授课内容及其特点,教师按以下3种授课方式进行问题设计:完全驱动、部分驱动和授课驱动。完全驱动指授课过程中,完全以问题进行驱动,在课堂上首先提出问题,让学生自主思考和讨论,并配以教师的辅助引导,最后让学生总结得出结论;部分驱动指在授课过程中,首先进行主题概况和知识脉络分解,然后提出相关问题,引导学生根据主题含义回答相关问题,进而思考并得出结论;授课驱动指以授课为主,配以提问回答环节,帮助学生深入理解相关内容。这3种方法对问题的难度、广度及问题直接的关联性要求不同,需要根据不同方法设计与主题相适合的问题。

1.1 完全驱动

完全驱动适合与日常生活关联紧密的主题。在这些主题和授课目标提出后,新生能够根据以前积累的生活常识,对其中大部分内容有直观上的认识。在目前授课体系下,主题“万物皆信息”“人类智能之梦”和“虚拟幻境”由完全问题驱动进行。下面以“万物皆信息”为例,具体说明如何进行问题设计,并驱动学生逐步达到授课目标。

“万物皆信息”的授课目标是让学生能够在理解编码和信息的基础上,建立起编码与信息之间的映射。教师在问题设计中根据人类信息通信的历史,先后提出了“鼓声如何会说话”“象形文字和字符文字如何表示信息”“文字如何组织和存储才能方便人类查阅”“人类的通信有哪些方式?这些通信内容是如何被编码的”“信息是抽象的?还是物理的”“人类是被编码的高级机器人吗”等问题。

这些问题在提出时配以相应的场景和环境说明,让学生能够准确无误地理解问题。例如,在“鼓声如何会说话”这个问题中,首先通过一个传教士在非洲原始部落之间的旅行[4],引出部落之间的通信是靠鼓声来进行的。在学生理解非洲鼓声的声音特点后,让学生讨论、思考并回答这个问题。这个问题设计的目标是让学生能够初步了解鼓声与语音之间的映射是通过简单的编码完成的。通过这个问题的讨论与回答,学生能够初步建立起信息与信息之间的编码转换、信息冗余、信息转换损失等概念。

问题之间要有层次渐进关系,逐步引导学生深入思考。例如,首先在“鼓声如何会说话”这个问题的基础上,通过提出“象形文字和字符文字如何表示信息”这个问题,让学生思考并回答象形文字与字符文字在表示内容时的不同,使学生进一步理解编码与信息表示之间的联系,初步建立起编码形式与信息复杂性之间的映射。然后在“文字如何组织和存储才能方便人类查阅”这个问题中,引导学生思考编码与信息组织及检索之间的关系。进而在“人类的通信有哪些方式?这些通信内容是如何被编码的”这个问题中,引导学生进一步思考和回答编码与信息之间关系,并在材料中给出信息论相关的简介内容,让学生思考编码、信息和通信的本质。

每个主题中的部分问题要设计为争论性较强的题目。这些题目没有明确的答案,学生通过思考及辩论能否得到这些题目的准确答案并不是问题设计的初衷。这些题目设计的目的是引导学生独立思考并提高其分析材料、鉴别材料的能力。例如,在“信息是抽象的,还是物理的”和“人类是被编码的高级机器人吗”的问题设计中,给出的材料并没有任何倾向性,需要学生自己根据内容进行分析判断,阐述自己的观点和论点,并与其他学生进行辩论。教师在学生回答问题和辩论过程中,为各个观点提供补充说明,但并不发表自己的论点。

1.2 部分驱动

部分驱动适合需要先进行基本概念和理论讲解,然后使用问题来驱动学生对概念和理论进行深入思考的主题。这部分主题内容距离学生积累的知识边界并不远,能够通过问题扩展学生的计算机科学知识边界。在目前授课体系下,主题“计算灵魂”“数据的力量”和“万物皆互联” 由部分问题驱动进行。我们以“计算灵魂”主题为例,说明如何通过问题设计配合概念和理论的讲解,并通过问题引导学生进行相关理论的深入思考。

“计算灵魂”授课目标是让学生熟悉数学与计算思维模型之间的关联性,其中涉及的重要概念和理论讲解内容包括算法、数学与算法关系、数学思维和计算思维的区别及联系。教师在这些内容讲解过程中配以问题来驱动学生进行思考,主要问题包括“如何完成鸡兔同笼问题”“其中的二元一次方程组如何来解”“还有没有其他的解法”“两个数相除是如计算的”“如何来计算圆周率”“这些计算过程中使用的方法是算法吗”“这些计算方法是如何找到的”“汉诺塔与世界末日”“解汉诺塔的方法及其复杂度的评估方式与初、高中阶段数学解题方法有何不同”。

在部分问题驱动主题中,概念、理论讲解要与问题相互配合,问题穿插在讲解过程中,起到辅助理解或引出概念或理论的作用。例如,在新生没有接触过程序设计语言的情况下,很难讲解算法这个概念,但可以通过问题“两个数相除是如计算的”“如何计算圆周率”引导学生思考这些问题的解题步骤,进而引出算法的概念。在讲解数学与算法的关系过程,通过“如何完成鸡兔同笼问题”“其中的二元一次方程组如何来解”“还有没有其他的解法”等问题说明两者之间的关系。

在部分问题驱动主题中要避免过早地给出问题的精确答案。有些问题答案可以通过概念和理论的讲解逐步细化和精确。例如,在讲解算法这个概念时,前面问题只是引导学生对算法有个较为直观的认识,对算法的概念也仅是说明算法是解某一个问题的固定步骤。在“如何计算圆周率”这个问题中,引导学生得到如下的结论:算法步骤是逐步逼近和构造形成的,而数学定理和运算是精确推导和运算形成的。通过“汉诺塔与世界末日”问题,帮助学生建立正确的算法概念,并给出算法与数学计算最大的不同是其需要考虑时间和空间复杂度的结论。

在部分问题驱动主题中,需要有最终能够反映主题的综合性问题。例如,“解汉诺塔的方法及其复杂度的评估方式与初、高中阶段数学解题方法有何不同”这个问题覆盖了这个主题下的几乎所有概念和理论,能够让学生综合思考和深入理解本主题下的内容,进而引出和讲解数学思维和计算思维[5]的不同和联系。

1.3 授课驱动

授课驱动以教师进行课程讲解为主,主要是因为有些主题的内容比较深奥,并且需要高度的抽象和凝练,并不适合新生进行问题讨论。例如,在主题“计算理论与实现基石”和“计算机学科体系”中,需要教师从宏观上进行抽象和把握,在专业知识深刻认知基础上能够凝练出其中的核心含義,这些是大一新生不具备的。在授课驱动中,也可以采用具体案例或者问题帮助教师进行概念和理论的讲解。

2 授课方式和方法

根据上面3种不同的问题驱动方式,授课方式包括完全课堂讨论、部分课堂讨论和完全授课。这3种授课方式需要学生的参与度不同,提前学习和思考的程度也不同。在完全课堂讨论授课过程中,以提问、回答和讨论为载体,学生是教学活动的主体,教师只起到引导和总结的作用。这需要教师在授课前为学生提供与主题相关的阅读材料及课程中全部问题,供学生提前预习和思考;在部分课堂讨论授课过程中,学生在教学活动中起主导作用,教师只提供必要的概念、理论讲解以及问题结论分析。相关材料和问题可以公布给学生,让学生做预习;在完全授课过程中,教师是教学活动的主导,学生根据教师对概念、理论的讲解来进行积极思考,并回答相关的问题。

虽然完全课程讨论和部分课堂讨论都是以课堂讨论为主,与传统的PBL教学方法极为相似,但是由于此课程面向全校大一新生,其课下时间很难集中,并且不太可能提供有效的讨论教室,因此去掉了分组讨论环节。在完全讨论课堂上,主要使用提问、思考、回答、讨论等教学方法进行授课。学生是授课过程中的主体,他们要参与全部问题的回答,提出自己的见解,反驳或支持其他同学的观点。教师在提出问题时,仅给予问题本身背景环境的解释,并不对问题答案做出倾向性说明或选择;在学生回答或辩论过程中也只是更正或补充出现的错误或模糊概念,不参与学生的答辩过程;在授课最后一个环节进行问题回答过程的回顾及综述,总结学生回答的各个观点或知识点,并对其中不明确的内容进行补充说明。

在部分讨论课堂上,学生依然是授课过程中的主体,需要积极主动地回答教师提出的各种问题。教师要按照事先授课的内容框架,将问题分解为合理的范围和粒度,使每个问题都与框架下的具体内容相对应。教师在授课过程中,要注意对内容框架的分解,把握其中关键的核心概念及理论。特别要注意框架下不同模块之间内容的关联性,并予以重点说明,使学生能够通过问题回答,逐步掌握和深入理解主题核心内容及它们之间的关系。教师要参与到学生回答问题和讨论的过程中,并对涉及的概念及相关理论加以说明和讲解。教师在授课过程中,根据问题与讲解内容之间的关联性,确定问题与概念讲解的先后次序是先提问后讲解,还是先讲解后提问。

通过以上两种方式的阐述,可看出这两种授课方式的本质是不同的。完全讨论授课是自底向上的授课方法,通过学生不断对不同问题的回答,逐步总结出相关主题的内容框架和结论;而部分讨论授课是自顶向下的授课方法,需要教师提前规划内容框架,并对框架内容及其核心概念进行讲解,在此基础上将问题按照内容框架模块依次提出,使学生在掌握主题内容总体架构情况下,通过回答问题,逐步深入理解各个内容模块的细节。

由于完全授课方式与传统的授课方法相同,本文不再阐述。为提高学生分析、总结材料的能力,需要他们选择与授课主题内容相关的题目进行综述文章写作,以锻炼其科学文献的查阅、分析和汇总能力,为其在高年级进行科研夯实基础。

3 授课方式效果分析

在实施授课过程中发现部分课堂讨论授课方式效果较好,这主要有以下两个方面原因:①教师事先给出解决问题的框架,因此学生面临的问题难度较小;②教师更善于在有事先准备的框架下组织讨论和讲解相应的理论。例如,在讲解“计算灵魂”主题时,教师首先按照算法设计的原则和框架组织讨论内容,即课程问题框架包括问题形式化描述和建模、问题模型求解和算法分析。教师针对这3个方面设计相关问题,引导学生逐步深入理解算法的本质。例如针对问题形式化描述和建模,使用“鸡兔同笼”“除法”“圆周率”“汉诺塔”等问题,说明算法问题如何建模。针对问题求解,通过引导学生求解上述问题,说明代数求解方法与计算机算法之间的异同。最后,针对这些问题讲解“如何进行算法时间复杂度分析,并评价算法好坏”。为加深学生对算法“好坏”的印象,教师还让学生分组表演冒泡排序和快速排序,并引导学生对这两个排序算法的“好坏”进行评价和分析。通过回答这些问题,学生基本能够认识到“算法是计算机的灵魂”,也基本清楚了解决计算机问题的一般思路。

完全课堂驱动由于对教师和学生两个方面要求均较高,比较适合课程基础简单的主题。但是在实施过程中由于教师参与讨论的环节较少,导致学生无法对部分问题进行展开讨论,并且由于学生自主分析、解决问题的能力较弱,导致部分题目的讨论不能顺利开展。例如,针对“DNA是否意味着人类是编码机器人”这一问题的讨论,学生大多数凭直觉进行论述,而不是通过事先查阅相关文献来支持自己的论证。这需要教师在课前给予学生充足的材料,也需要学生在课前对这些材料进行认真的阅读和思考。

4 结 语

将PBL教学方法引入此门课程,丰富了以往研讨课的授课形式,能够提高学生参与课程的积极性,能够增强学生的自主学习能力,这对大一新生尤为重要,但PBL教学方法也对教师和学生都提出了较高的要求。如果没有前两年的授课基础,很难有效地实施PBL的教学方法。在此方法实施一年的实验过程中,经过两个班次的授课,笔者发现学生在经过课程训练后,能够独立进行问题的分析和总结。其中,绝大多数学生对后两种授课方法(部分课堂讨论和完全授课)比较适应,而一大部分学生对完全课堂讨论方法表现出无所适从、无从下手的现象,这需要在以下几个方面加以改进和应对:问题设计上目标性要更强;为学生提供的相关材料要更加充分;对学生预习情况提出更加明确的要求。

PBL教学方法与计算思维导引新生研讨课的教学目标、方法和手段有着密切的联系,是此课程天然的能量剂。在以后授课过程中还要逐步摸索和改进PBL教学方法,使此课程的“研讨”味道更浓烈。

参考文献:

[1] 鲁强.“计算思维导引”新生研讨课的实施与认识[J]. 计算机教育, 2016(10): 133-136.

[2] Barrows H S. Problem-based learning in medicine and beyond: A brief overview[J]. New Directions for Teaching and Learning, 1996(68): 3-12.

[3] Hung W. Theory to reality: A few issues in implementing problem-based learning[J]. Educational Technology Research and Development, 2011, 59(4): 529-552.

[4] James G. 信息简史[M]. 北京: 人民邮电出版社, 2013.

[5] Jeannette M W. Computational thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.

(編辑:孙怡铭)

猜你喜欢

计算思维
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养