黄炜钦
(厦门大学嘉庚学院 信息科学与技术学院,福建 漳州 363105)
教育是时代永恒的主题,而教师是教育事业的重要主体之一,如何高效地传道授业解惑,是每一位教师需要自我发展与精进的一个问题。教育事业发展至今,中国的大学专业共有13个学科门类,92个专业类506个专业[1]。随着人工智能的迅猛发展,工学下的物联网相关专业发展前景广阔,各高校在该专业方面的招生人数也与日俱增[2]。因此,做好物联网专业的教育工作对国家和社会的智能化发展至关重要。
在物联网专业课程中,程序设计类型课程众多,如C语言程序设计、Java语言程序设计以及Android应用程序设计等,不同语言具有不同的语法,看似独立,实则一通百通,当学好一门程序设计课程,后续通过比较学习,融会贯通,学好其他程序设计课程,甚至是全新的语言程序设计课程,最后能够胜任软件及相关产品的研发。因此,从专业角度出发,如何评判一门程序设计课程教得好不好,一方面主要看学生是否充分掌握本门课程的专业知识,另一方面要看教师对这一类专业课程的学习方法是否对学生起到启发和引领作用,学生是否有能力依据该学习思路展开对新课程相关知识的学习,提高专业素养。因此,好的教学方法应当是既能授之以鱼,又能授之以渔的。
人们都说“一图胜千言”[3],这体现了图相比于文字的巨大优势和价值,这些优势与价值主要体现在以下两个方面。第一、理解更快。大脑处理视觉内容的速度往往比文字内容快很多,在教学中,图可以让学生在更短的时间内充分掌握知识点,节省时间,提高上课效率。第二、有助于记忆,减少疲劳。图是由形状、色彩、风格、形式等多种因素构成的,具有独立的视觉特征,加上本身的形象性、生动性和特有的心理刺激作用,相比于文字而言,最易识别和记忆,而且能从一定程度上避免单调的文字带来的疲劳感。
综上,本文提出一种“知识图解”的教学方式。所谓“知识图解”是指用图的方式将知识点进行分解,进而讲授,使知识点更为直观易懂,提高教学效果和学生知识的吸收效率,同时提高教师的教学水平和学生的学习能力。下面以《Android应用程序设计》这一课程为例,针对课程的内容和教学目标,分别谈谈知识图解在理论教学、实践编码教学和学习过程等方面的应用与优势,最后阐述“知识图解”对教师教学水平与学生学习能力的提升。
计算机程序是指一组计算机能识别和执行的指令运行于电子计算机,满足人们某种需求的信息化工具[4]。因为运行于计算机,因此其基本原理都要依赖于计算机的数据结构,而数据结构较为抽象难懂,教师如果单纯地采用文本方式去传授这一类知识,则学生们难以理解和吸收,似懂非懂,教学效果不尽人意;如果这一类问题能够结合图表,采用“知识图解”的教学方式,则对于知识点的讲授会明朗许多。下面以《Android应用程序设计》中Activity跳转的知识点为例[5],图1为该知识点的文本描述,图2和图3分别表示新Activity的载入过程与返回上一个Activity过程,其中虚线表示下一个过程的步骤。
图1 Activity的跳转原理文本描述
不难发现,通过图2和图3不仅可以清楚详细地展示新Activity的载入与上一个Activity返回基本流程,同时也展示了栈的基本原理—先进后出[6]。学生可以通过图2和图3更快更好地理解Activity跳转原理,而且基于图像会形成更牢固的记忆。如果能够借助PowerPoint完成流程的动图,那将会更好地发挥“知识图解”的优势。
图2 新Activity载入基本流程
图3 返回上一个Activity基本流程
此外,“知识图解”还适合于程序设计中技术和工具较为繁杂的过程,尤其这些技术和工具是相互联系的。例如在《Android应用程序设计》中,要讲解Android客户端与服务端的数据交互问题,其中涉及到技术与工具众多,包括Android客户端、客户端的通信框架、通信数据格式、服务端服务器、服务端开发语言以及数据库等,如果单纯采用文本描述,如图4所示,则很难梳理清楚服务端与客户端的具体操作思路,编码操作就难以进行,因此考虑将图4的知识分解为图5的交互图。
图4 Android客户端与服务端交互原理描述
图5 Android客户端与服务端交互图
图5将所涉及到的每种技术与工具视为一个实体,用矩形表示,强调其独立性,不同实体之间的线条代表实体之间的联系,线条箭头表示其方向,线条旁边的文本表示实体之间的数据流。矩形位置的摆放可清楚地表示出技术或工具之间的关系,比如图5右侧展示了PHP端与数据库是属于服务端的。此外,图5中的标注框写明对技术实体的补充说明。图中也采用不同的颜色对不同的类别以示区分,更有利于学生对实体进行分门别类,区分工具与技术,避免出现两者混淆的情况。
程序设计类课程的实践在于根据语法编写代码,以实现目标功能。编码过程中,首先遇到的问题就是开发工具的相关设置,以在Android Studio[7]开发软件中SDK的设置为例,如果要找到SDK的设置,一般的讲授如下:首先在Android Studio左上角点击“File”,找到“Setting”,选择“Appearance& Behavior”下面的“Android SDK”,点击右边窗口的“SDK Tools”,最后选择“Documentation for Android SDK”前面的矩形框。如果采用图的方式,并在关键步骤采用红色矩形框进行标注,如图6所示,那么学生对于该功能的设置一目了然,设置的速度也会比较快。
图6 Android Studio中SDK设置操作图
当新建完一个程序项目后,需要带领学生结合开发工具去认识整个项目的框架,如果仅仅只是打开窗口,指着某一区域讲解其功能和应用,则学生会因为功能区域过多或记忆不深刻等问题出现认识混乱的情况。如果采用图的方式去讲解,那么就可以明显改善这类问题。下面以Android项目结构讲解为例,如图7所示。
图7 项目框架分解图
在图7中,可以很清楚地明确这个项目在开发软件中的结构,不同的区域具有不同的功能,同一区域具有不同的文件,该图对功能区域的功能描述和简单的操作都进行了详细地注释,对运行和调试等重要的功能按钮也都进行标注,非常有利于学生上手项目。
在实践的项目中,通常会有很多类型的文件需要分别按照指定的语法格式去编写,而且这些文件之间存在互相调用的情况,如果项目规模较大,则代码看起来会更加复杂。因此,可结合“知识图解”的教学方法理清文件的来源与文件之间的联系,编码的时候可以针对重要的方法进行适当说明,突出展示与讲解。图8为Activity跳转的具体实例的代码分解图。
图8 代码分解图
图8通过矩形框和含双向箭头的虚线将Java代码、布局文件和文件在项目中的位置进行关联,学生们可以很容易看出代码中引用来源的位置以及代码文件之间的联系,代码间的调用有迹可循。同时,对于代码中比较重要的方法和参数,采用标注的形状进行说明,这样比直接提供语法的方法属性列表更为直观,学生们对于该方法的使用就会更加顺手。通过这样的代码分解图,学生能够快速高效地且扎实地掌握相关的技术和知识点,正确编写代码,而且会进一步提高代码的解读能力和编写速度。
学习过程一般是预习、上课和复习三个环节,不论是在哪一环节,老师与学生对于相关的专业知识都应该做到胸有大纲。若要对整节课或整章节的内容做到了然于胸,一般会采用树状图对知识进行梳理,本文要介绍的是一种更为高效的图,简单有效,它是一种实用性强的思维工具[8],在程序设计课程中,可以用来梳理知识点,以《Android应用程序设计》中的《Android多用户界面程序设计》一章为例,其思维导图如图9所示。
从图9中可看出本章共3部分,分别用不同颜色的线加以区分,更容易在学生的大脑中强调其独立性,每一部分都有子主题,每个子主题还可能有更多子主题。通过该图,学生在预习时可以规划自己的本章学习计划,在上课时可以清楚当前处于整个知识体系的位置,理清当前所学与前期所学知识点的关联,避免学习过程中“只见树木,不见森林”的问题。在课后,这些知识主干有助于引导学生去回忆每个主干对应的详细内容,发散复习,达到良好的复习效果,学生也可以在该图上根据自己的认知进行知识框架的调整与丰富,为自己所用。
图9 章节知识思维导图
“知识图解”对于老师的教学和学生的学习都具有重要的意义。一个知识点如果要分解为图的形式,必须要对这个知识点有彻底的掌握,才能够讲清楚整个过程。因此,对于教师而言,必须要认真备课,透彻掌握知识点,并且不断思考如何才能把复杂的知识点讲明白,掌握深入浅出的教学技能,让初学者能够尽可能吸收新知识,提高学习效率,并且能保持长久的学习兴趣。因此,在“知识图解”教学方法的不断应用中,教师可以不断优化自己的教学方法,非常有利于提高教师的教学水平。表1来源于所在学校教务系统,该表展示了上一学年的学生对于《Android应用程序设计》课程的教学评价,包括教学方法和教学效果两方面的评价,其中第2列数据为学生对作者的教学评价数据,第3列数据表示任同一课程的其他老师的教学评价数据。从表中数据可以看出,非常认同的比例均高于任此课程的其他老师,一定程度上表明“知识图解”教学方法具有一定的优势。
表1 学生评教数据(教学方法/教学效果)
对于学生,“知识图解”可以更加直观地将理论知识和实践操作展示出来,学生们能够更快更好地吸收程序语法知识,更好掌握程序设计的实践操作,达到高效学习的效果。除此之外,学生们可以结合老师课件的图解材料,掌握知识的图解方法,提高自己的学习能力。对于这门课的课后作业,让学生结合知识图解的方式去完成,既可以促进他们在完成过程中的思考与总结,而且可以避免抄袭或者缺乏过程的问题。
本文提出一种应用于程序设计类课程的“知识图解”教学方法,并结合《Android应用程序设计》课程说明该方法在理论和实践学习方面的应用与优势。综上所述,该方法既可以将复杂抽象的理论知识分解为直观的图,提高学生对于理论知识的吸收效果,又可以在实践教学中理清项目文件与代码之间的联系,理清代码的编写思路,迅速提高代码解读能力和编写速度。在知识图解的不断应用中,教师可以不断深化对知识点的理解和吸收,提高自己的专业素养和教学水平,深入浅出地传道授业解惑;学生也可以在高效学习的过程中,提高自己的学习能力。虽然知识图解优势较多,但是实施耗时长,课程中并非所有的知识点都需要图解,也并非所有的图解都需要细致,这就需要教师结合实际的教学内容、学生学情与学时进行充分应用。如何充分应用“知识图解”的教学方法,发挥其最大的优势,这也是下一步需要深入展开的研究内容。