程序设计驱动计算思维能力培养的大学计算机基础课的改革和研究
2019-12-06张赛男郑长友蒋园园洪宇
张赛男 郑长友 蒋园园 洪宇
摘 要:大学计算机基础是根据教育部计算机基础教学指导委员会培养要求开设的公共基础课程,是众多课程的基础。在很多高校关于大学计算机基础这门课的教学大纲中都明确要求课程教学以计算思维培养为目标。本文主要介绍我校以Python语言进行程序设计实践,以计算思维能力培养为导向的教学改革中的难点以及解决思路和方法。课程的改革有效地推动了低年级学生工程应用能力、创新应用能力的提高。
关键词:大学计算机基础;计算思维;实践;Python;程序设计
中图分类号:TP301 文献标识码:A
Reform and Research on University Computer Foundation Driven by
Programming for the Training of Computational Thinking Ability
ZHANG Sainan,ZHENG Changyou,JIANG Yuanyuan,HONG Yu
(Institute of Command Information System,Army Engineering University,Nanjing 210007,China)
Abstract:University Computer Foundation is a general foundation course offered according to the training requirements of the Computer Foundation Teaching Steering Committee of the Ministry of Education.It is the basis of many courses.In the syllabus of University Computer Foundation in many colleges and universities,it is clearly required that the teaching of computational thinking be the goal of the course.This paper takes our school as an example to discuss the difficulties of teaching reform and research and the ways to solve them based on the practice of programming in Python language and oriented by the cultivation of computational thinking ability.
Keywords:University Computer Foundation;computational thinking;practice;Python;programming
1 引言(Introduction)
大學计算机基础是教育部计算机基础教学指导委员会要求开设的公共基础课程,是大学各专业一年级新生的第一门计算机课程,也是本科各学科专业学生必修的公共基础课程[1]。大学计算机基础教学的目标之一是要掌握理解计算机的基本原理,例如:信息的表示、计算机软硬件知识、数据库、网络以及多媒体的基本常识,在教学实施的过程中有意识地培养学生的计算思维意识,展现计算思维方法,而计算思维能力就必须通过实验来加强学生的基本应用技能来体现。在理论培养和基本应用技能培养的过程中理解计算机在处理问题过程中所展现的科学思维方式,同时培养学生的分析问题和解决问题的工程应用能力,进而在这基础上培养学生的创新能力。随着周以真教授提出的“计算思维”的概念的推广,各大高校已经认识到计算思维在计算机基础学科中的重要性,因此将学生计算思维能力的培养作为目标,为了实现这一目标将程序设计内容引入到大学计算机基础课程中。现已有很多高校已经付诸实施,并且取得了一定的效果。
传统的大学计算机基础课程理论知识点主要包含信息的表示、计算机系统组成、操作系统、计算机网络、数据库以及多媒体等内容,而实验内容则以操作系统的使用、办公软件的应用和多媒体制作为主。为了培养计算思维能力,显然这种基于使用软件式的实验内容是不能满足这一培养目标的需求。为了能在课程中向学生传递计算思维的理念,在实验课程内容中加入程序设计内容,通过计算机编程来模拟计算机软硬件知识,例如,可以通过编程来模拟对数据库的添加、删除、修改等操作,通过实际问题的解决来推动学生对计算机理论知识的认识,促进计算思维能力的培养。
2 实践能力的培养促进计算机思维的培养(The training of practical ability promotes the training of computational thinking)
周以真教授对计算思维的定义是运用计算机科学的基本概念去求解问题、设计系统和理解人类的行为[1],计算思维是人机共存的思维,强调机器实现和问题求解的具体操作过程。它通过运用约简、转化、嵌入,以及仿真等方式以合适的方式去表述一个问题,并对这个问题的相关方面进行建模,将看似困难的问题阐释为我们知道如何去求解的问题,寻求并运用最有效的方法去解决问题。这其中含了三个层次的内容:计算思维意识、计算思维方法和计算思维能力。计算思维能力的培养是一个长期的过程,而大学计算机基础这门课是学生入手的第一门计算机相关的课程,因此对于学生思维能力的培养非常关键。学生首先必须要有计算思维意识,然后使用计算思维方法去解决问题,进而培养计算思维的能力。
传统的大学计算机基础理论和实验的实施过程中,注重的是知识原理的掌握和理解。在确定以计算思维培养为目标之后,教师要有目的的去培养学生的计算思维意识,向学生展示计算思维的方法,通过计算思维方法解决实际问题达到计算思维培养的目标。因此需要建立计算思维在计算机基础课程中的表达体系,将其融入和映射到理论知识点和应用技能点之中,以能力标准作为计算思维在课程中的落脚点和表现形态,以能力要求来推动学生计算思维品质的提升,这也是学生掌握计算思维思想与方法的有效途径[2]。
能力要求则体现在课程的实验环节上,实验过程是描述问题、抽象问题和解决问题的过程,也是思维在课程的落脚点,把计算思维方法运用于解决实际问题的能力上。引入程序设计实践教学部分主要是实践学生所学习的理论知识。因为Python语法简单,提供很多功能函数及接口,对于一年级的新生来说比其他编程语言更加容易上手。对于教师而言则可以把更改多的精力投入到把编程语言作为工具去解决问题上,而不是讲解编程语言的语法上。因此我校选用Python语言,而且很多高校也都选择了Python语言。
3 我校在大学计算机基础课程教学过程中存在的问题(Problems in the teaching of University Computer Foundation in our university)
大学计算机基础涉及计算机专业多门课程的知识,例如:计算机系统、计算机网络、数据库、多媒体、操作系统等,课程内容多、学时少、学生程度不一。现阶段我校大学计算机基础课程课时、学生和教师、思想认识上等多方面都存在有诸多困难和挑战:
(1)总课时压缩成48课时,其中理论和实验各24课时,每节课时间压缩至45分钟,理论内容较多,课时数有限,每个班级人数也比较多。多年的教学发现大部分学生仅仅满足学习计算机基础知识、基本操作,把计算机当作工具会用即可。
(2)学生基础高低不同,选择Python作为实践工具,计算思维融入和映射到应用技能,教师在实践内容的把握和选取上还需多思考。
(3)教师当中存在大学计算机基础就是讲解计算机软硬件基础的片面观念。
(4)教师在课堂上实际上在进行无意识的计算思维教学。由于计算思维受重视的时间不长,但是因为一方面計算机应用的本质是问题求解[1],另一方面计算机问题求解过程就是使用计算思维方法去解决问题的过程,因此,在基础课程教学过程中要时刻去体现、展示计算思维。
(5)由于早前对计算思维重要性认识不足,没有意识到计算思维的重要性,而且计算思维能力的培养是一个长期的过程,需要教师在计算机基础学科中提高认识,把计算思维能力的培养作为计算机基础教学的首要任务[3]。
4 大学计算机基础课的改革中存在的几个问题(Several problems in the reform of University Computer Foundation)
如何在大学计算机基础课程教学中传递计算思维,以提高学生运用计算机知识描述问题、抽象问题和解决问题的能力?以计算思维为导向的大学计算机课程教学改革面临诸多困难。
(1)我校从2017年开始进行大学计算机基础课程改革,按照大纲设置理论课教学内容,但是还需要在对课程内容进行提高和优化。教师还需要把对计算思维的表达融入理论知识点和实践中,以实践能力为抓手达到推动学生计算思维能力的提升。
(2)在实验思维训练环节中,选择Python语言作为实践语言,如何通过Python工具求解问题来训练计算思维能力还需多探讨。
(3)实验内容的设置以及实验成绩的评价方法。目前实验环节的教学内容已经根据教学大纲的要求从传统的以使用软件为主的实验转变为以采用Python程序实践的方式进行,但在实验内容的选择还不能很好地支撑理论教学的内容,也不能很好地体现计算思维的概念。
(4)缺少实验平台的支撑。实验环节没有实验平台的支撑,教师不太容易掌握每个学生的课前、课中和课后预习、学习和课后作业情况。实验课时间每次课90分钟,如果每个班的上课人数较多,达到60人以上,那么对于教师挨个检查实验情况是很困难也不太现实的,因此来说对于实验成绩的客观评价不能很好地体现。
(5)缺少适合我校学生的配套的理论教材和实验教材。
(6)网络教学资源的整合还不完善。为了方便学生能够预习复习,课程的每个知识点的教学视频、预习复习资料、参考资料都需要进行整合。在整合资源的同时还需要增加教师和学生之间的互通,需要通过增加网络交流平台方便学生问题留言、教师回答问题以及学生之间的讨论。
5 思维为导向,能力驱动的改革思路和实施过程(Thought-oriented and ability-driven reform ideas and implementation process)
大学计算机基础课程包括分为理论教学和实践教学两部分内容。在课程内容上兼顾计算机基础知识和计算思维,将信息表示与处理、计算机系统、网络、数据库多媒体等知识作为教学内容,然后将这些理论知识作为计算思维求解问题的研究对象,并加以实践,来应用计算机思维解决各领域问题。最终,希望通过这种问题求解的学习和实践,培养学生在理解计算机基础知识的同时能够主动在各自专业学习中利用计算思维的方法和技能,进行问题求解,能动手解决具有一定难度的实际问题[4]。
5.1 依据教学对象和教学目标合理设计理论与实践的授课内容
围绕下发的教学大纲以及课程实施的教学对象,依据计算机的核心原理组织教学内容。我校大学计算机基础的教学对象是一年级所有学生,其中包括各专业的本科层次学生以及专科层次学生。本科层次中有10%的学生是计算机相关专业,如,网络工程专业,指挥信息系统工程等,经过入学前的调查发现这部分对计算机有一定的了解,有些学生在高中就参加过信息类的比赛,而也有不少学生对计算机基本不了解,所以必须要按照教学对象分层次来设置教学内容和教学目标。对于本科层次的学生主要理论内容以及学时设置分布如表1所示。
实验内容和理论内容对应,通过实验内容来理解理论知识。在实验主要完成內容如表2所示。
5.2 依据教学内容、教学任务采用多元化的教学模式、教学方法
根据教学内容、教学任务采用合理合适的教学模式和方法,例如,综合实验:①创建文本文件,通过键盘输入“I am a college student”作为文件的内容;②利用加密算法,对文件内容加密。加密的算法是对文件中的每一个字符进行逐个判断,如果是字母,则进行移位加密,否则就保留原样,不做处理。移位加密是将26个字母看成一个环,比如当输入“computer”,若是对每一个字母移位2位,即a→c,b→d,c→e,以此类推,最后y→a,z→b,则经过移2位的加密运算后,输出的结果应该为“egorwvgt”;③将加密过的文本文件通过网络进行传输;④对方接到文件后,进行解密,得到原文件。对于综合实验则可以采用任务驱动的教学模式,可将其分解成多个子实验,按步骤推进。教师在教学实施过程中应注意学生和老师的“双主”地位,鼓励学生思考,培养计算思维意识、引导学生用计算思维方法去求解问题。对于此类综合实验,将实验内容对应的各个章节中的理论知识点紧密联系起来,通过实验加深理论知识的理解。
理论知识部分,例如:对于计算机网络中的信息安全知识,则可以通过学生自主学习,以研究小报的形式呈现;操作系统中多道程序设计的概念的理解则可以通过研讨的方式来进行课堂实施;对于信息的表示中进制的转换、原反补,以及浮点数的表示则可以通过预习作业让学生完成学习,但是对于进制之间的转换规则以及为什么整数在计算机中采用反码表示的背后的道理则需要教师在课堂上和学生一起探讨。
无论采取什么样的教学模式、教学方法,最根本的目的是激发学生的学习兴趣、提高学习能力及工程实践应用能力。
5.3 提供良好的实验平台以及实验评价机制
以实践能力为抓手达到推动学生计算思维能力的提升。能力的培养离不开实践的环节,为了培养学员的计算思维,良好的学习环境以及相应的实验平台都是很关键的因素,建立良好的软硬件环境是改革过程中很重要的组成部分。实验平台的引入能够方便教师实时了解学生课上、课下实验情况,并掌握学生实验问题所在,及时和学生沟通交流。实验平台对于实验成绩的评定提供了很好的依据。
实验成绩的评定需考虑如下方面:
(1)实验平台中学生的完成情况。这里的完成情况指的是完成的正确率以及完成的速度。
(2)实验报告中对实验的分析过程。除了实验平台的代码,在实验报告中需要明确说明实验的分析过程,包括设计思路、算法等内容。对于一年级的新生来说,编程能力相对来说都比较薄弱,因此代码不一定会顺利通过编译产生结果。但是学生自己对实验分析、设计思路以及解决问题的算法也是需要考虑的重要方面。
(3)综合实验中的表现。大学计算机基础实验一般分为基础实验和综合实验。有些综合实验会以小组的形式完成,每个学生在小组中的工作量作为评定成绩的组成部分。
6 结论(Conclusion)
大学计算基础是所有非计算机专业学生必修的一门通实类教育课程,是认识计算机的基础,抽象的理论知识结合程序设计内容对学生计算思维能力的培养起着至关重要的作用,通过开展实验教学、整合教学资源平台、实施有效的考核形式与评定方法等途径来不断提升学生运用计算思维解决问题的能力。改革原有以使用软件类的能力培养转变为以通过程序设计解决实际问题来推动计算思维的培养,利用计算思维方法解决问题,提高计算思维能力是改革的关键。
参考文献(References)
[1] 龚沛曾,杨志强.大学计算机基础教学中的计算思维培养[J].中国大学教育,2012(5):51-53.
[2] 杨建磊.关于我国大学计算机基础课程教学中“计算思维能力培养”的研究[D].兰州:兰州大学,2014:7-10.
[3] 何钦铭,陆汉权,冯博琴.计算机基础教学的核心任务是计算思维能力的培养[J].中国大学教学,2010(9):35-39.
[4] 李蹾.大学计算机基础[M].北京:清华大学出版社,2018(3):97.
[5] 何明,陈卫卫,陈希亮.基于计算思维的大学计算机基础课程改革方法探析[J].计算机工程与科学,2017(36):96-99.
作者简介:
张赛男(1979-),女,硕士,讲师.研究领域:软件工程,网络安全.
郑长友(1986-),男,博士,讲师.研究领域:软件工程,网络安全.
蒋园园(1981-),女,硕士,讲师.研究领域:软件工程,网络安全.
洪 宇(1979-),男,博士,讲师.研究领域:软件工程,网络安全.