基于Python程序设计的生物信息学人才培养模式探析
2022-05-30张帆邹显春
张帆 邹显春
关键词:大学计算机基础;计算思维;生物信息学;Python
中图法分类号:TP391 文献标识码:A
当今,生物技术是关键的前沿技术之一。随着基因测序技术的不断发展和测序数据的大量获取,生物技术科学已经进入大数据时代。面对海量的生物数据,运用计算机技术分析数据和找出基因、蛋白质编码信息等问题的生物信息学(Bioinformatics)应运而生。同时,这也对生物信息学专业学生的计算机知识和技能提出了更高的要求,特别是要求其具有一定的编程基础和编程能力,能根据自己的需要使用程序表达式在生物数据库中查找和定位基因信息、改写或写出适合自己需要的数据处理程序。
大学新生入学后必修的一门计算机课程就是“大学计算机基础”,其作为大学新生的计算机入门课程,不仅要普及计算机技术知识,还应加强计算机在专业领域的应用,最终达到让学生利用计算机来解决专业领域问题的能力。在生物专业新生的“大学计算机基础”课程中引入Python程序设计的基础知识和技巧,可以在一定程度上满足该专业学生对计算机程序设计的需求,为他们将来在生物信息学方向的发展打下初步的和编程基础。本文针对生物专业的大学新生,通过在“大学计算机基础”课程中引入Python编程,希望借此实现对生物信息学人才的培养。
1计算思维与Python程序设计
“大学计算机基础”(Fundamentals of Computers)是根据教育部计算机基础教学指导委员会的要求开设的公共基础课程,是大学各专业新生的第一门计算机课程,也是本科各专业学生必修的公共基礎课程。“大学计算机基础”课程的发展经历了“计算机文化基础”“大学计算机基础”到计算机基础课建设的热点———随着“计算思维”的演变,教学内容从最初的计算机操作,发展到计算机原理、解决问题和编程学习。早期的“大学计算机基础”课程主要讲授一些和计算机相关的软硬件基础知识,以基本应用为主,并没有过多涉及程序设计的内容。但在2010年九校联盟(C9)发布“计算机基础教学发展战略联合声明”之后,为了能在课程中向学生传递计算思维的理念,在“大学计算机基础”课堂上适当增加基础程序设计内容已经是各大高校的共识,借此培养学生使用简单的程序设计语言来描述问题、解决问题等计算思维理念。“计算思维”的概念是卡内基梅隆大学的周以真(JeannetteM.Wing)教授提出并加以解释的。当前,把培养学生的计算思维能力作为目标,已经成为大学计算机教育工作者的共识,而培养计算思维的最好方式就是学习编程。
《大学计算机基础课程教学基本要求》(2016版)指出:计算思维的核心概念是经过高度概括和理论总结的思维,其培养要渗透在传授学科知识、训练应用能力的过程中。长期以来,高校对非计算机专业学生开设的程序设计课程普遍是C语言,教学内容主要是数据类型、函数、指针和控制结构等知识。由于非计算机专业学生不具备计算机体系结构的相关知识,C语言课程在教学中会出现一些问题,也给学生带来一定的学习难度———学习的入门周期相对长、门槛相对高,无法短期满足非计算机专业学生在后续计算机应用中继续使用C语言来方便、快速地解决问题。所以,对于低年级大学生,尤其非计算机专业的学生,选择一门入门难度低、学习难度曲线适中、功能强大、应用范围广的程序设计语言非常重要。
Python程序设计由于语法简洁、清晰、易读,具有丰富的类库,是一种非常适合低年级及非计算机专业大学生学习、培养其计算思维能力的编程语言。目前,Python程序设计拥有超过十万个类库,涵盖各专业,应用非常广泛。这些丰富的类库使Python程序设计在教学中适用于各专业、各层次的学生,可以降低学生学习程序设计的难度,提高学习兴趣,所以用Python程序设计替代非计算机专业学生学习C语言是程序设计课程发展的必然趋势。另外,Python程序设计是一种解释性编程语言,其特点是轻语法、重解决问题。运用Python程序设计,可以让非计算机专业学生利用各种类库提供的工具模块快速编写程序,确保其将更多的精力放在要解决的问题上,而不是将大量的时间耗费在学习编程的语法知识及编写不必要的代码上,这更利于解决实际问题,也能更好地服务于专业。
根据教育部高等学校教学指导委员会提出的“‘大学计算机基础课程教学基本要求”,以Python程序设计课程教学目标为指导,在面向生物专业的“大学计算机基础”课程教学中,增加Python程序设计内容,确定“以思维培养为主体,以培养解决问题能力为核心,以服务专业为目标”的课程教学定位,突出生物专业的自身特点与需求,学会用Python程序设计来模拟和解决生物学中的一些问题,让学生能将所学编程知识转化为能力,以达到培养学生计算思维的能力,让学生真正掌握利用计算机解决专业问题的通用方法。
2Python程序设计在生物信息学人才培养中的建构与实践
2.1教学建构路径
以西南大学的“大学计算机基础”课程为例,总课时分为:理论40课时、实验36课时。根据课程定位与目标,我们对“大学计算机基础”课程的教学内容和课时分配做了部分调整,将其分为“计算机基础知识”和“Python程序设计入门”两部分。其中,“计算机基础知识”的课时占比为3/5,“Python程序设计入门”的课时占比为2/5。
面对学生入校时计算机水平不同的问题,“计算机基础知识”部分的教学内容包括:计算机系统、办公数据处理、计算机网络、操作系统等。这部分可以根据内容的不同,对学生加以区分和采取不同策略。从教学要求出发,课程内容可分为需了解的与需掌握的内容;从学习内容难易出发,课程内容可分为可自学的内容、需讲解的内容;在课程内容组织的过程中,对于了解性的、可自学的、概念型、资源丰富的内容,简化课堂内容,以课外自学为主;对于需讲解和总结的内容,以课堂重点讲解相关知识为主,课外学习和扩展为辅,这样就能高效、充分利用课时完成“计算机基础知识”部分的内容学习。余下的课时,则分配到“Python程序设计入门”部分。
Python程序设计作为“大学计算机基础”课程的一部分,进行学习时不同于单独的程序设计课程,其学习的主要内容涉及Python的安装、基础语法、程序控制结构、基本算法、组合数据类型及文件读写等;根据生物专业的特点,讲解和编写生物信息方面的实例和程序,让学生结合专业基础知识综合地开展Python程序设计学习。这样不仅有利于编程在生物专业中的教学,还有利于学生理解Python程序设计的知识点,以及在本专业的实际应用,达到学以致用的目的;遵循循序渐进的原则,让学生逐步提高编写Python程序的能力、提高使用计算机解决问题的能力。
2.2教学内容实例化
程序设计是一门实践性很强的课程,整个教学过程需要充分体现理论教学融于实例、实例贯穿教学等理念。在学习理论知识后,学生需要在课后和实验课中上机实践,以练习来巩固对知识点的理解。这样能够及时解答学生对教学内容的疑问,使教师更容易开展Python程序设计的互动教学活动,也使学生在学习和能力培养两方面都受益。教学重点是让学生将所学的编程知识转化为解决问题的能力,从而培养学生的计算思维能力,真正掌握利用计算机解决问题的通用方法。
在教学的过程中,要围绕以培养生物信息学专业人才为目标,根据教学内容和生物学的特点精心选取并设计教学案例,以实例引导学生由浅入深地逐步解决问题;充分利用Python程序设计的优势,让学生感受到Python程序设计的简单和易懂,培养学生的编程兴趣,提升学生解决问题的能力;以解决专业问题的教学实例来讲解Python程序设计的语句、控制结构等,更能激发学生对Python程序设计课程的兴趣。
例如,利用Python程序设计的字符串切片功能String[::[k]],可以编写出切取DNA序列中的一个片段或者对DNA序列进行逆序排列,这正好反应出生物专业上对DNA序列链进行局部切取或得到DNA的反链:
DNA转录是遗传学中的一个重要过程,这是信息从DNA流向RNA的过程。当DNA转录为RNA时,就是把DNA中核苷酸的T(胸腺嘧啶)替换为U(尿嘧啶),转录功能很容易使用Python字符串的replace(old,new)方法来实现:
生物学上需要对一条DNA链做某些统计分析,比如需要记录核苷酸中A(腺嘌呤),G(鸟嘌呤),C(胞嘧啶)和T(胸腺嘧啶)碱基的个数,可以采用for?in循环来统计出一条DNA链中核苷酸的个数:
以上都是通过生物信息学知识来讲解Python程序设计的实例,可以看出Python语句简单易懂,对非计算机专业学生来说难度较小。这些程序实例不仅结合了专业知识,而且由浅入深地使用了Python程序设计语言的基本语句和语法结构,引导学生理解和掌握程序设计在生物信息领域的应用,逐步培养通过编程来解决问题的理念和能力。
3教学效果分析
将Python程序设计引入“大学计算机基础”课程中,特别是以围绕解决生物信息学的专业问题来设计的Python程序设计实例,提高了非计算机专业学生学习编程的兴趣,增加了教与学双方的互动。通过对学生进行问卷调查———共发放和收集了108份问卷,问卷调查统计结果显示,88%的学生之前没学过任何程序设计语言;3.7%的学生以前接触过Python程序设计;78.7%的学生认为能在学习Python程序设计的编程中帮助自身增加和巩固生物信息学中的一些专业知识;69.4%的学生对用Python程序设计来解决生物信息学中的问题(如DNA链互补、核苷酸计数等)感兴趣;88%的学生觉得有必要在“大学计算机基础”课程中引入Python程序设计知识为将来的生物信息类专课程学习或更进一步学习编程做铺垫。
用专业问题进行实例化来引导学生学习Python程序设计,从基本语句开始、到逐步深入的程序结构和控制以及问题的解决,对学习程序设计有很大的帮助。这种围绕专业知识问题来学习程序设计的教学模式,能有效提升学生的主动学习能力和问题求解能力,也更能体现计算机学科和生物学科之间的学科交叉和相互贯通。
4结束语
因程序设计自身具有逻辑严谨、实践性强的特点,适合作为培养学生计算机思维能力的课程,适合学生依托程序设计来解决专业问题,培养和提高自身的创新能力。在生物专业的“大学计算机基础”课程中加入程序设计的基础内容,并以Python程序设计围绕专业知识进行实例化编程的教学更容易激发学生的学习兴趣和求知欲,能更好地理解程序设计如何具体解决本专业的问题,能培养学生使用计算机来解决问题和处理问题的理念和能力。但是由于课时限制,也有少數学生反应学习Python程序设计有困难,这个问题可以在以后的教学内容和进度中加以调整来解决,或在后期通过单独的Python程序设计选修课来解决。虽然本文是通过Python程序设计为生物信息学人才培养进行的探索和实践,但也希望可作为“大学计算机基础”课程在其他专业人才培养中的一个参考与借鉴。
作者简介:
张帆,男,讲师,研究方向:计算机教育、教育技术。