大学计算机系统型混合式教学的探索与实践

2018-08-22 10:27李俊生刘才华
计算机教育 2018年8期
关键词:学时程序设计案例

姜 洋,李俊生,王 红,刘才华

(中国民航大学 计算机科学与技术学院,天津 300300)

0 引 言

大学计算机是本科非计算机专业的一门核心基础课程,目的是使学生了解计算机的基本概念、原理,认识计算机在各种领域中应用,建立较强的计算机意识,掌握基本的程序设计方法,培养学生具有熟练操作计算机的技能和计算思维能力的通识性课程[1]。随着时代的不断发展和技术的不断进步,社会对大学计算机的人才培养目标提出了更高的要求,更加强调综合素质的提高和计算思维能力的培养[2]。然而以往的大学计算机课程由于缺乏程序设计的内容,计算思维培养的深度不够[3],但如果增加程序设计,学习程序语言本身又需要增加大量的学时。如何在学时有限的情况下,使学生既了解计算机的基础知识、掌握计算机的基本操作,又能够通过程序设计提高计算思维水平是一个具有挑战性的问题。

挑战的关键除了精简教学内容,改革教学方法,更重要的是选择一门合适的程序设计语言,该语言需要具备简洁、高效、生态3个特点,否则对于大部分没有深入接触过程序设计语言的非计算机专业学生来说,过多的语法细节和低效的开发效率,不仅不能激发学生的学习兴趣,还容易使学生陷入偏重语言本身而忽略领悟计算机问题求解的基本方法和思维模式[4]。相对于传统的程序设计语言,当前流行的Python恰好具备这3个特点[5-6]。Python的语法简洁且更接近自然语言,Python还是一门解释型、交互式、可移植的面向对象编程语言,可以高效地实现各种程序模块,并且能够整合其他语言实现的程序模块,编程效率很高。不仅如此,Python良好的计算生态特性,使其在大数据分析与处理、深度学习、科学计算可视化及科学研究等领域得到越来越广泛的应用。学生通过学习Python语言,不仅能够快速入门,而且能够在更高层次上去分析和解决复杂问题,是提高大学生计算思维能力培养质量和水平的最好选择。

1 课程改革方案

为了进一步提高大学生计算思维能力培养水平,探索在大学计算机课程中重点引入Python,利用Python丰富的计算生态系统,提高大学生分析和解决复杂问题的能力[7]。为了达到这样一个目标,需要让学生对计算机的知识体系有一个系统完整的认识,但作为一门本科非计算机专业的公共基础课程,课程本身具有内容多、学时少、实践性强、学生多且程度不一的情况[8],因此笔者将计算机系统型知识分成3个层面进行介绍,分别是系统型认知层、系统型应用层、系统型设计层。在系统型认知层,主要使学生熟悉计算机的基本原理、特点和发展历史,了解计算机硬件系统、软件系统、网络系统等相关重要概念。在系统型应用层,学生掌握操作系统的基本功能,文字处理软件、电子表格软件与演示文稿软件等基本操作,并能够综合运用这些软件的功能解决一些实际问题,如文档排版、成绩表数据的统计和分析、毕业论文答辩等。在系统型设计层,掌握Python基础知识及程序设计的一般方法,了解从问题分析到程序维护整套程序设计流程,初步具备利用Python解决各类实际计算问题的开发能力,培养学生计算思维。这3个层次的内容不仅相互联系构成一个整体,而且相互之间是层层递进、相互促进的关系。

大学计算机是一门实践性很强的课程,主要包括计算机基本操作及程序设计,因此实践教学十分重要。作为计算机公共基础课,该课程的实践教学一方面要开展计算机的基本操作及办公软件的应用;另一方面开展Python程序设计实践,特别需要挖掘学生生活学习中亟待解决的计算问题,从而增强学生兴趣,提高学生解决问题的能力。

2 系统型混合式教学方法

近年来,在新工科和教学生态建设背景下,中国民航大学(以下简称“中航大”)在大学计算机改革方面积极探索,不断实践,从最初的案例驱动式教学,到MOOC+SPOC+翻转课堂式教学,再到在大学计算机中引入Python程序设计的系统型混合式教学。在不断丰富大学计算机教学内容的同时,也在适应新时代教育背景,不断改进教学模式。此次在大学计算机课程中重点引入Python程序设计,并且将大学计算机知识体系分成系统型认知层、系统型应用层、系统型设计层3个层次,针对不同层次的知识特点,分别采用内涵式混合教学、案例驱动式混合教学、演化式混合教学的教学方法。

2.1 系统型认知层:内涵式混合教学

从2016年开始,在大学计算机基础课程中,中航大就尝试采用“MOOC+SPOC+翻转课堂”的教学模式,学生首先通过MOOC自学计算机文化基础知识,如果有问题话可以通过SPOC和老师同学进行在线交流,然后通过翻转课堂的形式进行分组汇报,展示学习效果。实践结果表明,此种教学模式教学效果很好,学生普遍认为不仅收获很大,而且锻炼了综合能力。中航大因此获得全国高校计算机教育MOOC联盟优秀案例二等奖。基于以往的教学经验,这次在大学计算机改革中,对于计算机文化基础部分,笔者安排了4个理论学时,因为大部分的计算机文化基础知识,学生可以通过MOOC自学,课堂教学重点讲解计算机的本质和内涵,因为这不仅能够帮助学生更加深刻理解MOOC的学习内容,而且有助于对计算机应用层,尤其是设计层方面知识的理解和掌握,下面将举例说明,课堂内涵式教学的内容和方法。

第一个重要内涵是关于计算机的本质。随着硬件技术和网络技术的不断发展,计算机的外形发生了很大的变化,而且逐渐向着微型化和巨型化的两个极端发展。从图灵最初提出的计算机理论模型图灵机、冯诺依曼设计的计算机物理模型和存储程序,到世界第一台通用电子计算机ENIAC、第一台个人PC的诞生,再到智能手机得到普及和应用、智能穿戴设备的流行,虽然这些设备的外形发生了很大的变化,但理论模型和物理模型并没有发生变化,仍然是冯氏计算机,了解计算机的本质和发展是培养计算思维的重要基础,因此需要在课堂教学中重点强调。

另外一个在课堂上需要重点强调的内涵是数据在计算机中的表示。这对于理解程序设计语言中数据类型的概念非常重要。数据类型是程序设计语言的核心基础,也是程序设计的基础,由于程序等于数据加算法,程序的运行过程就是对数据的处理过程,对数据类型概念的深入理解能够有助于对设计层程序设计语言的深刻理解和掌握。在程序设计语言中,不同类型数据的表示方式不同、取值范围不同、支持的运算不同,但他们最根本的区别还是存储方式不同,例如整型数据采用二进制补码存储,实数采用浮点数结构存储,字符串采用Unicode等编码的方式存储,如图1所示。因为存储方式不同,才决定了他们的取值范围不同、运算方式不同,所以当不同类型数据进行运算的时候,需要进行一致性转换。课堂教学由于时间相对充裕,而且有黑板便于演算,所以这部分知识可以通过详细举例来进行分析。这种混合式教学方式使学生在深度和广度上对计算机文化都能够有较为系统的认识,为后面的深入学习打好基础。

图1 相似不同类型数据的存储方式实例对比

2.2 系统型应用层:案例驱动式混合教学

对于Office高级应用,近年来主要采用案例驱动的方式教学,设计了一些与生活息息相关的教学案例,例如基于Word的毕业论文排版、基于Word的个人简历、基于Excel的大学生就业数据分析、基于Excel期末成绩统计与分析、基于PowerPoint的演示文稿等,这些案例不仅包含Office软件常用的基本操作,而且与实际生活紧密结合。笔者将这些案例的操作过程做成短视频,分享在学校的在线教学平台上,学生可以将案例视频下载到手机或电脑上,遇到操作上的问题可以随时参考视频,这样学生不仅可以反复观看,熟练掌握基本操作,而且也节省了课堂教学时间,提高了课堂教学的质量和效率。

由于包括office在内的各种软件总是在不断升级更新的,仅仅熟练掌握某一个版本的操作是不够的,也无法提高学生思维的深度和广度,因此在学生通过在线视频掌握基本操作方法之后,在课堂教学上需要重点讲解操作背后的一些核心概念,这些概念是隐含在操作背后最本质最核心的内容,不会随着软件版本的变化而变化。例如在讲解word案例的时候重点介绍样式、域、节这些文档排版和编辑的概念;在讲解Excel案例的时候,重点介绍相对引用、绝对引用、函数、数据清单、分类汇总、排序和筛选等数据统计和分析的概念;在讲解PowerPoint案例的时候,重点介绍占位符、幻灯片版式、主题和母版这些文档展示方面的概念。深刻理解这些概念不仅有助于学生快速适应新版本的变化,而且有助于对计算机系统型认知层和系统型设计层的理解和掌握。课堂教学主要通过案例深入讲解相关概念,线上案例视频帮助学生熟练掌握办公软件的操作过程,两者相互补充。熟练掌握案例的相关操作,有助于对概念的深入理解,又有助于对操作更加灵活的应用。这种线上线下的混合式教学,不仅提高了课堂教学的效率,而且通过课堂由表及里的案例分析,培养了学生深入思考、探索研究和广泛联系的思维习惯,从而极大提高了课堂教学的质量。

2.3 系统型设计层:演化式混合教学

Python作为一种面向对象的解释型编程语言,其简洁优美的语法和功能强大的计算生态系统,使其成为当下最受欢迎的编程语言,而且在人工智能、大数据的时代背景下,Python应用越来越广泛。为了提高大学生学习计算机的积极性和主动性,并能够在更高层次上提高分析问题解决问题的能力,中航大在大学计算机课程中重点引入了Python语言程序设计,安排了包括上机学时和授课学时在内的48学时,在总共64学时的课程总学时中占主要比例,因此也是教学的重点。为了提高课堂教学质量,并充分利用中国大学MOOC上丰富的在线教学资源,笔者采用演化式混合教学方法,学生通过和教材同步的MOOC进行自学,MOOC课程内容丰富、形式活泼、时间安排非常紧凑、学生学习效率很高。此外,还有面向零基础的网络先修课CAP,这样非常有助于文科类的非计算机专业学生提前预习。对于基础较好的理工科非计算机专业学生来说,可以根据自己的兴趣学习一些更加高级的内容,例如“Python爬虫与信息抽取”“Python机器学习应用”“Python科学计算三维可视化”“Python游戏开发入门”“Python云端系统开发入门”“Python数据分析与展示”等配套课程,这些配套课程不仅极大丰富了课堂教学的内容,而且为基础好、对Python语言有更高追求的学生提供了更加广阔的学习平台。

在课堂教学方面,为了让学生能够快速地掌握基本概念和程序设计的思想,笔者采用演化式的教学方法,从基本案例出发,然后不断增加案例的复杂度,把python语言的基础知识点融入案例中,让每个知识点都能找到一个真实的应用场景。这样既激活了枯燥的知识讲解,又积累了编程经验,并通过层层深入的讲解,锻炼了学生分析问题、解决问题的能力,培养了学生独立和深入思考的思维习惯。以计算天天向上年能力增长值案例演化为例[9],从最开始利用Python的内置数值函数计算、便于批量修改每天增长值引入变量,然后为了区分工作日和休息日引入分支结构和循环结构,最后为计算根据设定的年增长目标、计算工作日需要达到的努力程度引入了函数,利用函数将计算年能力增长值的问题封装成一个独立的模块。此案例要想实现最后的计算目标,还需要引入一些程序设计思想,比如试凑的思想,因为无法根据年增长的目标直接计算出工作日要达到的努力程度,需要利用计算机计算快的特性,通过不断的累加尝试,达到目标输出结果。通过此案例的不断演化,学生不仅理解了语法概念的产生背景,而且随着问题的不断深入,掌握了利用计算机分析问题解决问题的思路和方法。

3 课程评价

为了反映此次教学改革的教学效果,我们对所有学习大学计算机课程的学生进行了问卷调查,调查的主要目的是此教学模式和方法对学生学习方式和学习收获的影响,结果如图2和图3所示。调查结果表明此模式不仅有助于提高学生的综合能力和计算素养,更能够引导学生培养混合式学习习惯,此学习习惯的养成不仅有利于学生对计算机课程的学习,而且有利于对其他课程的学习。

图2 系统型混合式教学对其他课程学习习惯影响

图3 学生通过系统型混合式学习的学习收获

4 结 语

系统型混合式教学方法是新工科背景下结合在线开放课程及Python语言的一次综合性探索和实践。教学实践结果表明,此方法不仅使非计算机专业学生更加系统性的掌握计算机的基本概念、基本原理及解决问题的基本方法,提高了计算思维培养的质量和水平,更能够引导学生培养混合学习习惯,从而提高自主学习能力。笔者下一步将通过与其他专业的深度融合,逐步开发出适合不同专业的、定制的教学计划和教学案例,努力培养信息化社会亟需的计算机和各专业的交叉人才。

猜你喜欢
学时程序设计案例
第二课堂成绩单制度下的学时发放标准的探索
——以中国民用航空飞行学院为例
《诗词写作》课程教学大纲(节选)
医学专业“Python程序设计”课程教学改革总结与思考
案例4 奔跑吧,少年!
TWO VILLAS IN ONE CEDIA 2020案例大赛获奖案例
Bespoke Art Deco Media Room CEDIA 2020案例大赛获奖案例
教学大纲国画(工笔花鸟)
探索学时积分制 构建阶梯式成长激励体系
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧