基于OBE理念的医学生“Python语言程序设计”课程的教学案例研究与设计

2024-01-09 03:09夏翃高磊华琳
中国信息技术教育 2024年1期

夏翃 高磊 华琳

摘要:在新医科建设背景下,本研究基于OBE理念,根据三大医学智能应用场景进行课程综合性的教学案例研究与设计,以期培养学生运用Python语言解决实际医学问题的能力,从而实现对医学生综合创新性竞争能力的培养。

关键词:Python;OBE;教学案例设计;医学人工智能

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2024)01-0098-05

教育部2019年启动“六卓越一拔尖”计划,提出要发展新工科、新医科、新农科、新文科,这是新时代全面振兴本科教育、打造教育“质量中国”的战略一招。[1]笔者认为,新医科建设在注重对现有医学培养体系升级的同时,还要注重与文、理、工等各学科的交叉融合,因为新医科需要培养的是能够适应以人工智能为代表的新一轮科技革命变革时代所需要的医疗人才。[2]

新医科建设对医学生的计算机类课程提出了更高的要求,要求该课程不仅要培养医学生的信息技术素质和能力,能为医学专业问题求解提供信息技术支撑,还应着力培养学生运用交叉学科知识解决医学前沿问题的能力,使学生具备运用信息技术解决复杂交叉学科问题的能力。

OBE教学模式

随着近年来工程教育专业认证的推动,OBE(Outcome-Based Education,人才培养的产出导向)模式在本科教育中得到广泛认同和普遍接受。OBE模式主张根据学生预期达到的最终学习成果即专业人才培养质量目标,来反向设计课程体系即人才培养过程,形成系统性的教学质量持续改进闭环。[3]OBE模式强调解决如下四个问题:学生的学习成果是什么?学生为什么要这样的学习成果?如何帮助学生取得这样的学习成果?如何检验学生是否取得这样的学习成果?[4]OBE模式強调成果导向的价值取向、学生中心的教育理念、持续改进的质量文化,实现教学模式从“以教为中心”到“以学为中心”直至“能力达成”的转变。

Python是开源、跨平台的解释型编程语言,用户可以利用已有内置标准库或大量的第三方库,快速搭建应用,能显著地缩短开发周期。Python已广泛用于科学计算、数据挖掘、图像处理、机器学习、人工智能及WEB开发等众多领域。基于Python程序语言的这些特性,“Python语言程序设计”课程非常适合采用OBE模式进行教学设计与实践。

基于OBE理念的教学案例设计

随着现代智能技术的迅速发展,人工智能(Artificial Intelligence,AI)技术在医学领域中的应用越来越广泛、越来越深入,目前,它已经在疾病预测、医学影像、健康管理、药物研发和医院管理等多个方面得到应用(如下页图1)。[5]而Python提供了众多的科学计算和机器学习工具,可以帮助医学研究人员加快算法和模型的开发过程,提高医学数据分析和医学图像诊断的准确性等。

计算机科学和编程技能在医学领域中的广泛应用,使得医学生掌握基本的编程技能和计算思维能力变得越来越重要。“Python语言程序设计”课程是面向笔者所在学校低年级学生的基础性编程语言课程,根据教育部新医科建设的要求,课程除了要教学生掌握Python基本语法规则和编程思想,更要着重提高学生计算思维能力和应用程序设计方法解决医学问题的能力。所以,本研究在教学案例设计时遵循了基于“学习成果”导向的OBE理念。

本课程基于OBE理念,以医学智能应用为目标,在进行课程综合性的实验教学案例研究时,采用任务驱动法,进行项目式教学案例设计与应用(如图2),以期培养兼具医学专业知识和人工智能应用等信息新技术处理能力的交叉融合型人才。

1.情境选择

在进行实验案例选择时,本课程选择医学中常见的三大类与医学实践相关的实际情境,如自然语言处理、医学图像处理、医学数据分析与可视化等,以激发学生的认同感,确保情境能够激发学生的兴趣和动力,并与课程目标和学习成果相匹配。

2.问题设定

针对选定的情境,本课程设计具有一定挑战性的问题,要求学生运用Python编程知识和技能进行问题分析、技术路线设计和程序实现,从而激发学生的思考和探索。

(1)自然语言应用

自然语言处理NLP(Natural Language Processing)是机器学习的重要分支之一,在医疗健康领域主要用于医学信息抽取、医学文本分类、医疗决策支持、病人信息管理、医疗信息问答、医学知识挖掘等诸多方面。

而自然语言处理应用首先要做的预处理就是分词。英文单词天然有空格隔开,容易按照空格分词,而中文由于没有空格,分词就是需要专门去解决的一个问题,较常用的中文分词工具有jieba、SnowNLP、THULAC、NLPIR和PKUSEG等。

在进行教学案例设计时,教师以我国药物学巨著《本草纲目》的内容实现词云效果,如图3所示。希望通过这个综合案例的分析与实现,在让学生掌握自然语言处理在医学中的应用的同时,也激发其对传统医学的兴趣和关注,发现我国传统医学的内在信息。

本案例选择使用jieba库对内容先进行中文分词,jieba库支持三种分词模式——精确模式、全模式和搜索引擎模式,并且支持自定义词典等。[6]分词后再统计各个词汇出现的次数,并进行倒序排序。在实现词云效果之前,进行数据特征观察,列出排除无关医药词之后再用wordcloud库实现词云效果。该案例的实践过程如下页图4所示。

本案例涉及的Python基础知识包括文件读写、列表、字典、集合、循环结构及匿名函数等。在该案例通过词云展现高频词在视觉上的突出呈现方式的同时,学生了解了自然语言处理在医学中的基本应用,同时也学习了Python标准库之外的第三方库的安装与应用。[7]

(2)图像处理应用

图像处理(Image Processing)是指对图像进行各种操作的过程,主要包括图像增强、图像分割、图像识别、目标检测、形态学处理等。

①普通图像。

OpenCV(Open Source Computer Vision Library,开源计算机视觉库)是一个高度开源发行的计算机视觉库,可以在Windows、Linux、Mac等多平台跨平台操作,实现了众多图像识别和计算机视觉的通用算法。[8]OpenCV支持多种语言如C++、Python、Java等进行开发,使用OpenCV可以完成很多常见的计算机视觉领域的任务。

本案例在设计时,选择OpenCv-Python库实现图像二值化处理过程,通过设置不同参数得到不同的效果,从而让学生了解图像处理的一般流程和图像的基本操作,以及常见中文乱码的处理方法(如图5)。

②DICOM图像。

医学图像能够直观反映人体的内部结构,利用图像处理技术可以对图像进行分析和处理,实现对人体器官、软组织和病变体的位置检测、分割提取、三维重建和三维显示,可以对感兴趣区域进行定性甚至定量分析,从而大大提高临床诊断的效率、准确性和可靠性,所以,医学图像是现代医疗诊断非常重要的依据之一。此外,医学图像具有数据标准统一、易获得且质量高等特点,利用人工智能技术研究医学图像也是目前的热点之一。因此,对医学生进行医学图像知识的介绍、应用和分析是非常有必要和有意义的。

医学数字成像和通信DICOM(Digital Imaging and Communications in Medicine)是美国放射协会(American College of Radiology,ACR)和美国国家电子制造商协会(National Electrical Manufacturers Association,NAMA)联合开发的一个医学数字成像和通信通用标准,是目前最为广泛应用的医学影像格式,如CT、MRI等。在进行DICOM图像处理(如分割CT图像中某个病灶组织)之前,一般需要将DICOM图像进行读取、脱敏、调窗等操作,以便于后续的编辑与分析。

鉴于学生在现阶段并未学到医学图像处理相关的专业性课程,本案例在设计时,让学生对DICOM图像进行读取信息后实现数据脱敏和调窗的基本功能(如图6),使其通过该案例了解相关的第三方库Pydicom[9],同时也对医学图像DICOM有基础的认识,并为下一步深入学习医学图像专业课学习打下计算机技术基础。

(3)数据分析与可视化应用

Python提供了众多且功能强大的数据处理和分析工具,使医学数据处理、分析和可视化变得更加高效和灵活。例如,numpy是一个高性能的科学计算和数据分析基础包,具有多维数组对象、线性代数、傅里叶变换和随机数等强大功能,在数据分析和人工智能领域有广泛的应用。Pandas提供了丰富的数据处理功能,如数据过滤、排序、分组、聚合等。Matplotlib是常用的数据可视化库之一,它提供了应用广泛的绘图功能,如折线图、散点图、柱状图、饼图等。这三个基础库的结合使用,可以完成许多数据的分析与可视化工作。

由于学生在现阶段并未学到数据统计或数据挖掘相关的专业性课程,故本案例在设计时,选择医学生较为常用的BMI(Body Mass Index,身体质量指数)数据进行基础数据处理和可视化。该案例通过对原始数据(如图7a)一系列的递进操作,让学生掌握基本的医学数据分析和可视化过程,具体实验过程如下。

数据分析:数据分析是数据处理最基本的操作,也是数据分析必须掌握的部分。在该过程中,采用numpy和pandas库,实现BMI数据计算、BMI类别判断以及基本统计数据(如图7b)。

数据分类统计:在数据分析的基础之上,要对数据进行分类统计,以期了解数据的整体面貌。在该过程中采用pandas库的value_counts等方法,根據“BMI类别”数据进行分类统计(如图7c)。

数据可视化:在该过程中,采用matplotlib库,根据“BMI类别”的统计数据生成饼图,实现数据的可视化。根据所得到的饼图,可以直观快速地看到各种数据的占比情况(如图7d)。

数据保存:在该过程中,分别采用pandas库的to_csv方法和ExcelWriter对象保存多个Excel工作表的实现方式,来学习并掌握常见保存文件的各种形式。

3.学习支持

除课堂教学外,本课程还提供扩展的学习资源和指导,如常见编程问题及实践指导、参考资料和在线学习平台及行业知识延伸等,帮助学生掌握必要的编程知识和技巧。此外,本课程还建立学生微信群,在微信群内或通过校内BB平台发布课程相关信息,以及最新的行业动态。同时,利用微信群加强与学生的交流与互动,及时解答学生的问题。

4.独立研究与团队合作

在设计实验时,任务实现模式分为两种方式:一种是学生独立自主完成,这种任务培养的是学生独立思考和技能掌握与应用能力。另一种是团队合作式任务,这种任务设计就要按照团队模式去设计实验案例,鼓励学生在小组中合作完成案例研究。通过团队合作,学生可以相互学习、交流思想,并培养协作和沟通能力。

5.反馈与评估

课程为学生设计了一些课堂实验任务、课后知识性任务、章节性项目任务和课程性综合任务,从而对学生的阶段性学习效果、课程综合性学习效果,以及知识技能和团队项目能力等有一个多维度、全方面的考核与评价。

课程在开课前通过调查问卷方式,了解当期学生的前期基础、兴趣点及学习目标,这样便于教师构建教学要点及对相关课程进行必要的补充或简化等。

分析与讨论

本课程基于OBE理念,立足于医学应用,在具体研究设计教学案例时解答了OBE过程中所关注的问题。

学生的学习成果是什么?通过具体的与医学相关的实验案例,分析所需解决的关键问题,让学生在复习巩固Python基本语法规则的同时,学会查找相关第三方库,并结合该库官方网站的示例,学会安装与应用第三方库的基本功能,再结合医学问题来完成复杂问题的综合技术实现。

学生为什么要这样的学习成果?Python官方索引网站目前拥有第三方库已超过46万个,且每个库的方法繁多,已不能采用详细讲解每个库的传统教学方式了。教师要变“授人以鱼不如授人以渔”为“授人以慧”,培养学生的自学能力和解决实际问题的能力。

如何帮助学生取得这样的学习成果?“用”是学习的重要途径,所以要通过和学生一起讨论分析问题、设计解决问题方案、进行具体程序技术实现等一系列练习过程来实现。因此,做好课程规划,设计好相关实验内容和技术路线,就非常有必要了。

如何检验学生是否取得这样的学习成果?可以通过某一个医学复杂案例的分析和实现过程让学生掌握医学应用中这一类常见问题的分析与解决,在该案例完成之后,教师会布置类似的医学类型问题,让学生课后自主完成。

结语

本课程基于OBE理念的成果导向,通过“提出问题—探究问题—解决问题”的过程引导学生进行问题分析与思考,促进知识的同化和迁移,最终解决实际医学问题,从而实现了从“以知识传授为中心”到“以关键能力和核心素养培养为中心”的转变,让学生具备运用交叉学科知识解决医学前沿问题的能力,以适应快速发展的智能时代。

参考文献:

[1]中华人民共和国教育部.教育部启动“六卓越一拔尖”计划2.0[EB/OL].http://www.moe.gov.cn/jyb_xwfb/xw_zt/moe_357/jyzt_2019n/2019_zt4/tjx/mtjj/201904/t20190430_380243.html.

[2]李鳳林.新时代我国新医科建设的路径探析[J].中国高等教育,2021,664(Z1):6-8.

[3]刘卫东,黄蕾,冯若雯.基于OBE人才培养模式的本科教学质量管理体系重构[J].国家教育行政学院学报,2021,286(10):19-30.

[4]常建华,张秀再.基于OBE理念的实践教学体系构建与实践——以电子信息工程专业为例[J].中国大学教学,2021(01):87-92+111.

[5]张育涵.一张图看AI医疗[R].鲸准数据中心,2017.

[6]jieba[EB/OL].https://pypi.org/project/jieba/.

[7]教育部考试中心.全国计算机等级考试二级教程——Python语言程序设计(2022年版)[M].北京:高等教育出版社,2022.

[8]opencv[EB/OL].https://docs.opencv.org/4.x/index.html.

[9]pydicom[EB/OL].https://pydicom.github.io/pydicom/stable/index.html.

作者简介:夏翃(1974—),女,博士,副教授,研究方向为医学信息学;华琳(1973—),女,通讯作者,博士,副教授,研究方向为生物统计与生物信息学。

基金项目:2023年首都医科大学教育教学改革研究课题“智能时代背景下《Python语言程序设计》教学模式研究与实践”(项目编号:2023JYY057)。