刘立群 韩俊英 薛 飞
(甘肃农业大学 信息科学技术学院,甘肃 兰州 730070)
我国经济和信息技术的持续发展,迫切需要培养新一代具有高信息素质和强计算科学创新能力的农业科技创新人才,以快速适应我国步入新型现代化农业道路的步伐。高等农业院校面临探索适应新工科培养需求、提升计算机教育研究水平、面向计算机技术与学科领域深度融合的教学改革新思路。
程序设计类课程是高等院校计算机教育的基础与重点,是一门理论与实践同步教学的基础类课程[1]。程序设计类课程已经与数学建模、微积分、高等代数、大学物理一样,成为所有高等院校的核心基础课程[2]。
为了贯彻党的十九大关于高等教育改革发展的思想,响应基金委在“十三五”规划中确定的关于“鼓励自然科学与人文社会科学交叉,探索支持教育科学研究”的意见,适应新工科背景下人才培养的需求,甘肃农业大学对程序设计类课程进行教学改革,旨在培养面向技术、面向需求、面向基本技能的具备基本计算思维和应用能力的非专业人才。
分类培养是我国高等教育人才培养的一次重要探索[3],所谓分类培养,就是依据社会发展和科技进步的要求对相同专业的人才建立不同的需求规格,从受教育者角度出发,依据各自不同的学习程度及毕业意愿,设计多元化定制的培养模式和培养方向,让学生自主选择发展方向,成为各有所长的专门人才[3]。分类培养侧重学生的个体特性与差异、目标需求、岗位取向、发展潜力等[4]。
甘肃农业大学是农业部和甘肃省人民政府共建大学,计算机基础教学旨在提高学校本科生的农业信息化水平,培养农业院校学生的计算思维、程序思维,提高学生的计算机应用水平,今后更好地服务于数字农业、智慧农业,将信息技术与农业紧密结合。以社会需求为导向,对计算机类课程新的教学模式进行探索和改革,构建“分层次、分专业”的课程体系,将计算机类课程统筹划分成三大层次,并贯通全校农、林、牧、医、工、文类本科专业制定教学计划,实现因材施教、以社会需求为导向的目的。
三大层次的分类培养的课程体系建设方案如表1所示,分别包含最低层:计算机公共知识;中间层:程序设计类课程;高级层:计算机扩展知识等三个层次。其中,计算机公共知识层的目的是扫除学生对于计算机基础知识的盲区,内容是对计算机等级考试类的公共基础知识及MS Office上机实践进行详细指导,使学生尽快掌握计算机思维,为学生进入下一个层次打好坚实的基础。程序设计类课程层依据分类培养的思路分专业指定培养方案,其中农、林、牧、医类专业学习VB程序设计课程、文史类专业学习Python程序设计课程、理工类专业学习C程序设计课程,中间层的目的是培养学生的程序设计思维及独立思考的能力;计算机扩展知识层主要针对从事相关理工科专业的学生开放设计,具体包括C++程序设计、Java程序设计、C#程序设计等程序进阶课程,以及计算机网络、电子商务等网络类课程,此外还包括单片机应用、大型数据库技术、数据挖掘、图像处理等应用类课程,另外还增设了特色类课程,主要包括现代农业信息技术、农业物联网,加强农业院校的特色优势,选修这一层次的学生一般具有一定的编程能力,对计算机类课程具有广泛的爱好和兴趣,最终培养其独立解决实际问题的能力。
表1 三大层次的分类培养的课程体系
其中,高级层,即计算机扩展知识层可以为本科三四年级的学生培养专业兴趣提供重要的基础,教学层面上具体包括以下三方面的培养模式。
1.信息技术应用培养模式
为提高学生的综合素质,指导教师以科研训练为入手点,以学生梯队建设为目的,形成高、低不同年级、不同专业学生交错组合的团队,高年级学生根据新思想申请立项,带动团队,低年级学生边学习新知识边查阅资料,起到了帮、传、带的作用;其他专业同学为团队融入新鲜思想和血液,加强团队协作能力,促成层次式、交叉式的人才培养模式。以当前高年级的本科生入手,展开程序设计类课程实践教学的科研训练,锻炼学生团队撰写立项申请书的能力,以及立项后可持续完成科研训练项目的团队能力。科研训练项目的综合实验包含程序设计类课程教学中经典的实验项目。
2.基于计算思维的培养模式
以学生为本,在大学生科研实训、创新大赛、毕业设计结合具体实例培养学生的计算思维。学生利用软件工程开发原理、在面向对象设计思想的指导下,让学生按照需求分析、总体设计、详细设计、程序编码、系统测试等软件流程过程规范进行开发,注重培养学生的综合系统开发能力和软件开发思维。
3.基于信息技术人才的培养模式
针对以上两个模式的培养优势,将信息技术与农、林、工、文各专业进行融合,即适应学校十三五“3+4+5”人才培养方针,具体包括三规格:主修专业、双专业和双学位;四平台:公共教育、基础教育、专业教育和个性教育;五课程体系:公共课、基础课、实践教学和选修课。
程序设计类课程的共同特点是知识内容宽泛、概念抽象灵活、语法复杂不易理解、程序不易调试成功、错误具有隐蔽性[5]。学校生源中农村学生占70%—80%,入学测试表明,学生掌握计算机程度较弱,需要大面积进行最低层计算机公共知识的普及,培养计算机思维,使之尽快适应高速发展的网络信息化校园。作为高等农业院校,程序设计类基础课程培养学生的目标要更实际,方法和手段要更有效,在计算机基础扫盲的前提下,探索更为有效的切合学生实际的教学方案及实践教学体系,以培养“宽基础、强特色、高素质、实用性”的复合型实践人才。
1.设计应用型案例,构建程序设计类课程教学体系
以注重“培养学生的创新精神、工程意识、实践能力”为目的,设计应用型案例,按照提出案例、编程思想、参考程序、运行结果、程序分析、注意事项等几个步骤循序渐进地引入理论教学,注重培养学生的程序设计能力,课堂上配备了知识检测点进行随堂测试。为保证宽基础、多专业、强基本技能、兼顾创新技能、多层次、分模块、相互衔接的科学系统的教学体系,课程设计实现了具体的应用案例,包括“数值数据处理”和“信息数据管理”,着重培养学生的程序设计能力和综合应用能力。应用案例均使用问题驱动的方法进行设计,依据提出问题、分析问题、解决方案和源代码参考的顺序进行练习。其中,所有案例均来自日常生活中的实际问题,目的就是为了激发学生解决实际问题的兴趣;分析问题环节教导学生定位问题的解决思路,分析解决问题的基本功能,并选择合理的程序设计语言的数据类型和结构;解决方案环节可借助程序流程图或N-S盒图对各功能模块进行内部设计,并考虑各函数接口之间的数据传递;最后选择对应的程序设计语言给出源代码进行参考。整个应用案例讲解过程完全遵从软件工程的开发流程,对学生的独立开发设计能力有巨大的挑战和锻炼。
2.设计实验内容,培养学生的创新能力和工程素养
程序设计类课程是理论结合实践进行教学的课程,其中实践教学的目标不能仅局限在教会学生使用相关的程序设计软件,更重要的是要教会学生利用已学过的算法理论去分析、解决现实问题,以及在实践中发现问题、独立思考、并提出问题的能力。为了培养和加强学生的这种创新意识和创新能力,设计实验内容时应尽量遵从减少验证类型实验,增加设计、综合、开放及创新类型实验。对各个实验内容进行深入研究,设计基本技能训练、综合测试训练及研究训练等不同层次的实验类型题目,引导学生独立学习知识、解决问题的能力,提高学生的系统设计能力、综合实践能力及创新应用能力。
经过课程组教师讨论及改革后,将实践内容按照基础验证型实验、设计开发型实验及研究创新型实验三类进行组织安排。其中第一类基础验证型实验主要针对理论知识点设计,此类实验已经被课程组教师讨论改革为两种类型题目,一种是紧密结合理论课堂知识点设计的知识检测点,另一种是以阅读代码并给出运行结果的实验内容;两种类型题目均以选择题、写出程序运行结果的题型为主,主要考察语法细节及学生独立思考的能力。第二类设计开发型实验主要针对知识框架、知识结构的理解而设计,这类实验一般以程序改错题为主,程序结构完整没有空缺,学生可以借助调试功能对程序语法错误和逻辑错误进行初步判断,以进一步确定导致逻辑错误的根源,一般难度相对较低;此外开发型实验也以程序填空题居多,程序结构是完整的,由于有空缺,学生无法从调试的方法下手,这种实验题型具有一定难度,要求学生要从分析题意、观察程序整体结构、并兼顾程序细节后,通过一定的程序语境进行大胆预测、模仿并创造性地填入答案;以上两种题型对学生的分析判断、自主学习均有考察;第三类研究创新型实验主要针对学生的研究能力与创新意识进行设计,一般呈现为程序设计题,程序主函数、函数调用及接口均已给定,需要围绕题意对被调用函数的核心功能进行编写,要求对数据类型、程序结构及调试逻辑错误等具有一定的熟练程度;这考察了学生的知识综合运用能力。目前,经课程组改革后,将实验内容以第二类为主要考察手段,兼顾第一类和第三类的实验考察方式。
3.革新考试考核方法
组织课程组教师建设课程题库,反复论证试题结构,测试考试系统,已全面实现计算机类课程的无纸化网络考试;学生也可以下载考试题库APP,通过手机APP随时随地进行模拟测试;师生通过网络教学平台开展交流,延伸课堂内外、突破了时间和空间的局限。此外,为适应全国计算机等级考试二级程序设计考试的需求,将上述改革后的三种实验类型及对应的四种题型分别融入到理论教学和实践指导中,包括理论课堂的知识点检测、课后的习题练习、实践课堂的实验项目、实践课后的上机练习题及考试考核中。为了进一步加强学生的上机实践及调试能力,以上实践课堂的实验项目、实践课后的上机练习题及考试考核的所有题目皆录入在线考试系统中,采取随堂实验考核,课程考核实现全校无纸化考试。
4.搭建网络课程,实现混合式教学体系
设计搭建程序设计学习网站,制作配套的多媒体课件、网络课件,编写讲义和教案,习题提供标准答案,并将这些资源通过整合后上传至该网站,由学生注册后免费使用。有针对性地选择一到两门程序设计类课程作为示范性课程,优先进行混合式教学体系建设,探索并构建“中国式MOOC”应用模式,设计慕课教学内容,提出慕课设计方案,最终实现线上慕课辅助课堂教学、线下实践教学相结合的混合式教学体系。
指出程序设计类课程教学的发展方向、理想模式及所需要的知识体系结构,可以为专业系列课程的教学改革提供科学的理论依据。构建具有发展潜力、先进性、普适性、切实可行的程序设计类实验教学体系,从而可以有效地提高课程的教学效果和教学效率,激发学生的学习热情及其潜力,使学生从被动学习转为主动探索,培养学生获取新知识、应用新知识的能力,全面提高学生的素质。
1.程序设计类实践教学体系内容
结合分类培养思想,以帮、传、带的思路展开实践教学。根据课程组教师的科研情况,将科研成果按照不同层次、不同年级、不同的学生群体转化到学生实验教学内容中,转化手段具有多样性。可以采取与大学生科技竞赛、科研训练、创新创业训练结合的方式,实行开放式实践教学模式;也可以利用现代多媒体技术、网络课堂、线上慕课辅助教学的形式,将知识点以多维、多方位形式传递给学生,形成开放式链接,培养学生以点到面的横向思维,提高学生知识的综合运用能力;此外,实践教学体系还应提供充沛的题库及练习资源,以满足学生的兴趣需求,对于学习程度较好的学生可以有选择性地进行高阶练习,最大限度发挥学生积极性和主动性。程序设计类实践教学体系内容如图1所示。
图1 程序设计类实践教学体系内容
2.构建基于MATLAB GUI的程序设计类课程实践教学系统
利用MATLAB GUI设计开发了程序设计类课程实践教学系统,系统使用方便、快捷,操作性灵活,可以让学生尽快熟悉实践教学内容,有利于实践的有效教学。实践教学系统初始界面如图2所示。教学系统选择界面如图3所示。其中可以选择三个不同的教学系统进行教学,包括基于MATLAB GUI的C程序设计实践教学系统、基于MATLAB GUI的VB程序设计实践教学系统和基于MATLAB GUI的Python程序设计实践教学系统。
图2 实践教学系统初始界面
图3 教学系统选择界面
其中,基于MATLAB GUI的C程序设计实践教学系统的实验项目选择界面如图4所示。包含了十个实验项目,每个项目包含不同的实验内容及题目。
图4 C程序设计实践教学系统实验项目选择界面
实验一界面如下页图5所示。界面中包含实验目的和对应的实验内容。
图5 实验一界面
实验一第1题程序运行界面和实验八第1题程序运行界面分别如图6、图7所示。程序运行界面中包含题目、源程序代码、运行程序按钮和运行结果。
图6 实验一第1题程序运行界面
图7 实验八第1题程序运行界面
程序设计类课程教学实际上是一种从知识传递到知识输出的过程,面向问题、问题驱动的教学案例是教学内容改革的一种主要手段,通过研讨性环节加强学生的科研能力,通过实践培养学生的工程意识和实践能力,使学生具有综合性、创新性设计能力。为此,将分类培养、分层次教学的思想应用于程序设计类课程及实践教学中,设计源自生活实际的问题驱动型案例应用于教学中,实现不同层次、不同年级、不同学生群体、分任务管理的分类教学方法,探索新的教学体系与模式,构建了不同层次的程序设计分类培养模式、基于案例教学式分类培养的理论及实践教学模式,开发具有发展潜力、先进性、普适性、切实可行的程序设计类实践教学系统。这对于促进程序设计类课程及实践教学的改革与创新,加强对学生能力、素质、思维的综合培养,及适应当代社会对高素质人才培养的需求,皆具有积极推进的作用及极其重要的意义。