以人工智能及编程能力为核心的计算机专业新工科教学改革研究

2020-02-15 20:59周卫红潘文林黄立冬熊良林
关键词:程序设计计算机专业编程

周卫红,蒋 作,江 涛,潘文林,黄立冬,熊良林,王 新

(云南民族大学 数学与计算机科学学院,云南 昆明 650500)

第四次工业革命的到来,促使工程教育进行全方位的变革.“新工科”[1]改革倡议正是我国工程教育面对《中国制造2025》[2]所做出的积极回应.德国工业4.0[3]的核心内容包括智能工厂、智能生产和智能物流3大主题,以及大数据分析、自主机器人、模拟、水平和垂直系统集成、工业物联网等新的趋势.智能时代的到来对人才培养提出了巨大的挑战[4].有研究指出“未来20年,美国可能被机器人取代的职位比例为47%,英国为35%”,也就是说在未来人们需要更强大的竞争力,来确保自己不被替代.如何能做到这一点,具备什么能力才能不被淘汰?研究及市场需求表明,人工智能(AI)时代最重要的能力就是编程能力,最需要、最紧缺的人才就是编程人员,特别是大数据人工智能编程人员.也就是说,人类开始进入“面向人工智能时代的编程能力”时代后,编程能力将会成为未来新时代人才的基本能力要求[5],特别对于计算机及相关专业的学生,良好的编程能力更是其未来的基本生存技能.

就我国目前的人才需求情况来看,当前迅猛发展的大数据、物联网、人工智能、网络安全、大健康、机器人等新经济领域都出现人才供给严重不足的现象,暴露出我国相关专业工程教育与新兴产业和新经济发展严重脱节的现实[6].有研究数据表明,到2020年,我国新一代智能信息技术产业、电力装备、高档数控机床、机器人和新材料将成为人才缺口最大的几个专业[7],其中新一代智能信息技术产业人才缺口将达到近750万人,到2025年,缺口将进一步达到近950万人.大力发展适应未来智能信息产业需求的计算机新工科是国家智能化建设的基础和对智能信息技术人才培养的必然要求[8].

1 教学改革的内容和意义

1.1 教学改革的内容

教学改革的目的是为更好地实现专业培养目标,不同的培养目标需要不同的课程体系来实现,计算机专业培养目标的课程体系主要由专业基础课/专业课程组成.专业基础课包括离散数学/数据结构/算法设计与分析等主要的基础课程.专业课程又可以分为软件能力培养和硬件设计能力培养两个主要方面,软件能力培养由一系列的语言课程来完成,包括C/C++程序设计/Java/面向对象程序设计/.net程序设计.项目的主要研究内容在于如何对相应的软件能力培养方案部分以及相应的程序设计课程进行优化改进,强化计算机专业学生的编程能力,以适应新的智能时代的要求.

程序设计的核心是算法, 大数据人工智能时代后,大数据分析、数据挖掘、智能控制、智能算法等算法逐渐成为程序设计的核心.近年来,人类逐渐进入人工智能时代,而人工智能时代的基础就是程序设计,特别是基于智能算法的软件程序设计.教学改革的一个重要措施就是在计算机专业的程序设计课程中,引入智能算法的内容.教学改革计划在教学计划中适当增加一些人工智能(AI)算法的学习,尝试开设MATLAB/Python数据分析、数据挖掘、神经网络深度学习等课程,使学生具备一定的大数据人工智能算法基础.这样也带来一些新的问题,首先是在计算机程序设计的教学上,如何合理的安排和设置新的程序设计课程体系,加入新的智能程序设计课程;其次是随着智能算法等算法的出现,算法的理论和实践复杂度和难度大大提升,这就给程序设计的学习带来了新的困难,如何运用直观地、动态地、图示化的方式来讲解算法,让学生能更好的掌握智能算法,是我们教学改革研究的重要内容之一.

其次,不管是传统软件程序设计还是新兴的智能算法程序设计,程序设计能力的核心是实际动手编程能力,如果学生只听课,不加强实验,根本无法达到学习目的.因此课程的实验环节设计是课程质量的核心.如何采用各种方法提高学生的实际动手编程能力是研究的重点.

另一方面,我们认为程序设计能力的培养是一个长期渐进的提高过程,我校计算机专业的程序设计课程从大学一年级就开始开设,大学一年级开设“C语言程序设计”,后续会继续开设“面向对象程序设计(C++)”以及“Java程序设计”,“数据库系统设计”,以及现在新增的“Python程序设计”等.目前存在的一个主要问题是,教师和学生都对程序设计能力培养的连续渐进提高认识不足,对这些课程的教学和学习往往像完成孤立的任务一样,学生拿到学分就结束了,持续性的关注不够,培养效果不理想,需要进行相应的教学改革来加强.

1.2 教学改革的作用和意义

1) 发展以智能算法编程能力为核心的计算机专业新工科建设改革,使学生在人工智能(AI)时代具备较强的就业能力和良好的职场生存和发展能力.适当开展基于人工智能算法的程序设计,开设MATLAB、Python等人工智能语言的课程,适应大数据人工智能时代的人才要求.

2) 程序设计作为一种思维训练的手段被学界广泛承认.学习编程不但能培养学生的抽象思维能力,逻辑思考能力,不能使学生做事专注细心,提高学生创新创造能力和综合素养并使学生养成良好的学习习惯.

3) 程序设计是计算机学科的大多数其它专业课程,如操作系统、数据结构、数据库技术、编译原理、人工智能等课程必要的实践环节基础,学生程序设计能力差,这些后续课程都不可能学好.提高学生程序设计能力,能有效提高后续课程的学习效果.

2 教学改革拟解决的问题和达到的目标

2.1 存在的问题

1) 优化本科培养方案中的程序设计课程设置,鉴于学生的程序设计能力的提高是一个连续渐进的过程(全周期4年),再加上新加入的智能语言如Python等,在教学计划的安排上突出程序设计能力锻炼课程的连续性,在一些程序设计空白学期可以考虑安排增加程序设计的课程设计课等小课程或者项目实习课,让学生专注于程序设计能力的持续提高.

2) 为提高学生程序设计的兴趣和动力,要有一个好的开端,抓好一年级的 “C语言程序设计”课程,因为“C语言程序设计”是学生接触的第一门程序设计课,大多数学生都反映难学,小部分学生在学习中期就有了放弃继续学习下去的念头,没有信心与动力,而学生反映的难点主要在动手编程方面,如何在C程序设计课以及后续的程序设计课程中采取多种手段提高学生的动手编程的兴趣、动力是难点.

3) 具体课程教学中存在的其他问题.如教学内容与教学课时之间的矛盾;教师的综合业务水平有待提高;教学方法、方式有待改进;改变重课堂教学,轻实验教学的教学模式.学生方面要改进的问题有:程序设计能力的重要性认识不足,学习目的不明确,学习动力压力不足;逻辑思维能力较弱,想象空间较窄;初学者易产生厌学情绪;重教轻学,重理论轻实践;考试能力强,编程能力弱.

4) 开设Matlab/Python数据分析、数据挖掘、神经网络深度学习等课程,有一定深度和难度(很多原来是研究生课程).如何结合物联网、机器人、大数据相关专业课程的学习,开展人工智能算法的程序设计能力培养,是一个需要考虑的新的领域问题.

2.2 教学改革的目标

教学改革力图在两个重要方面取得进展,一个是让学生具有大数据人工智能时代要求的人工智能数据分析、挖掘方面的知识并具有相关的智能程序的编程能力.另一方面是通过持续不断的编程训练,让学生的编程能力有质的提升,目的在于提高学生的就业竞争力.

1) 通过结合物联网、机器人、大数据的相关专业课程学习,开展人工智能算法的程序设计能力培养,开设Matlab/Python数据分析、数据挖掘、神经网络深度学习等课程,让学生具有大数据人工智能时代的理论及实践知识,具备智能算法设计编程能力.

2) 通过教学改革,使计算机专业的学生经过大学4年全周期有计划的连续的程序设计能力提升培养,让学生的编程能力达到一个相当高的水平,让学生在毕业时具备较强的程序设计能力,在智能时代具有较强的就业竞争力.

3) 探索并解决合理的计算机专业程序设计能力提升培养的课程培养计划、教学教法改进、理论和实践相结合的教学方法改进等教学改革问题.探索实践新工科的培养方案,探索全面提高学生动手编程能力的教学、实验、实习、工程方案.

3 相关教学改革的主要方法和实施

为达到让学生具有一定的大数据人工智能的编程基础,并持续提高编程能力,教学改革优化调整了相关的教学计划,增设了相关人工智能课程;优化了编程类课程的开课时间、顺序、间隔;对编程类课程进行教学改革,普遍采用案例、项目开发、小组开发、上机考试的教学模式加强学生的编程能力;将中国计算机学会(CCF)的CSP认证考试作为计算机学生毕业的条件;和国内知名的大企业合作,用企业的技术和环境对学生进行编程能力培训.

1) 开设Python数据分析(18级开始)、数据挖掘(16级开始)、神经网络深度学习(17级开始)课程,让学生掌握大数据人工智能的基础知识,并学习最重要的人工智能语言Python.

2) 优化调整计算机专业教学计划,合理安排程序设计课程的连续性、渐进性,优化了C语言、Java语言、Python语言、数据设计、网络程序设计的课程学时、开课时间等安排,形成对学生的长时间的、持续的编程能力的训练和培养.

3) 理论环节、实践环节的教学改革,加强实践环节,从2016级开始计算机专业的“C程序设计”课程教学中开展提升学生编程能力的教学改革,主要措施有改革课程考核方式,以上机编程作为期中、期末主要考核方式,以此倒逼学生加强编程动手能力.加强学生的基本专业素养,比如作为编程基础的英文打字也被加强,被作为考核内容.

①强调程序设计能力的重要性、明确学习目的,激发学习兴趣、动力.

②加强实验,从考核环节采用以实际上机编程考核为主倒逼学生动手编程.

③基于问题、案例、项目和实际应用结合的综合编程训练.

④合理运用多媒体课件演示程序算法,强调算法是编程的核心.

4)将参加中国计算机学会(CCF)的CSP认证考试(一种直接上机的编程考试)并取得100分以上成绩作为计算机专业学生毕业的必要条件,直接逼迫学生提高自己的编程能力,直到达到相应的要求.

5)在昆明市政府和华为公司的大力支持下,组织学生到华为公司进行华为云Devcloud的实训,参训学生大大提高了学生的研发水平和自信心.

4 教学改革取得的效果

经过几年的教学改革实践,云南民族大学数学与计算机学院计算机及相关专业的学生的编程能力及对大数据人工智能的运用能力取得了较大的进步,学生自信心大幅增强,同时由于相关措施的实施,使云南民族大学计算机专业在专业建设上也跟上时代步伐,并取得一定的进步:

1) 学生对大数据人工智能的掌握及计算机编程的能力显著增强,对社会进入人工智能时代有了更清醒的认识,对计算机专业的专业自信显著增强,对毕业后的行业就业前景普遍看好,就业自信心显著增强.

2) 学生在参加大学生数学建模竞赛时,有一个显著改变就是,提出的问题解决方案不在拘泥于传统的数学方法,提出了许多基于人工智能深度学习的方法,感觉普遍在思路上有扩展,在水平上有提高.

3) 中国计算机学会CCF的CSP认证考试对学生就业有很大帮助,为了满足教学要求(计算机类学生必须在CCF的CSP认证考试中取得100分以上成绩才能毕业)云南民族大学计算机系连续多年开展CCF的CSP认证考试,每年举行3次,每次100多名学生参加,每次大概半数的学生通过考试认证,在老师的辛勤付出和学生的努力下,取得较好效果,云南民族大学数学与计算机科学学院连续两年被中国计算机学会授予CCF优秀单位(云南省仅2家获此殊荣).

4) 云南民族大学数学与计算机科学学院的计算机专业也在改革中受益,由于中国计算机学会(CCF)的CSP认证考试在云南省本科教学评估中有加分,云南民族大学计算机专业在专业评估中也受益,获得B类认定.同时计算机科学与技术专业在云南民族大学双一流专业申报中获得支持,并被学校推出做为省级/国家级双一流专业申报,以上成绩的取得也得益于教学改革措施的实施.

5 教学改革的总结和展望

以人工智能和编程能力为核心的计算机新工科建设,人工智能(AI)时代最重要的能力就是编程能力,也就是人工智能及程序设计能力,特别是对计算机专业的学生来说更是如此.具备了较强的人工智能及程序设计能力,就具备了较强的就业竞争力,较强的职场生存发展能力.这个改革是必须的、及时的,对计算机学院、专业和学生都具有重要的意义.

新工科建设在实际实施中也发现有很多不足,需要进行进一步的改革和优化,主要反映在以下几个方面:

1) 在工程要求方面有差距,我们的这次改革虽然有一定力度,但是由于必须遵守本科教学计划的规范,以及由于学校教学成本的限制,无法进一步开展相关的工程教学改革,比如进一步增加实习实训的课时,加强和企业的合作,以便将学生派往企业参与企业的实际工程项目实施.

2) 如果进行进一步的改革,必然要求对计算机专业的教学培养计划做较大的修改,可能需要更多的和企业合作,这个在现有的学校学院的计算机专业学生培养框架下实施有一定难度.

3) 进一步的改革,也必然对学校的教师队伍提出更高的要求,要求引进更多的具有工程经验的教师或者和企业进行合作,这也带来一系列的管理和成本问题.

4) 如果进一步加强工程教育,必然会造成教学成本的大幅上升,这个也是制约工科教学改革的一个决定性的因素.

猜你喜欢
程序设计计算机专业编程
新工科背景下计算机专业创新创业人才培养探究
中职计算机专业产教融合混合式教学研究与实践
编程,是一种态度
元征X-431实测:奔驰发动机编程
“以赛促学,以赛促教”促进计算机专业教学理念创新与实践研究
编程小能手
基于Visual Studio Code的C语言程序设计实践教学探索
纺织机上诞生的编程
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索