论文部分内容阅读
摘 要:本文旨在探索工程化教学对编程实践和应用能力的提升作用和方法。方法:使用了第三方开源硬件作为工程化教学的辅助手段。通过项目设计与实践提高初学者对编程语言基本知识点的理解进而提升综合应用能力,真正将所学转化为能力。结果:根据文中列举的知识点做比较项统计掌握度对比结果,分为课程前自测、实测、课程结束后的项目评定三个阶段,通过三阶段的比较得到工程化教学对编程应用能力提升的效果数据。结论:提升编程应用能力是非常重要的教学目标,提高学生实践、学科竞赛、创新的能力,并契合新工科教学改革目标,培养符合行业与社会需求的复合型专业人才。
关键词:工程化教学;程序设计;编程语言;设计应用
前言
國家对于“新工科”的大力支持与推进是深化应用型人才培养的坚实后盾和方向指引,鼓励创新工程教育方式与手段,探索新的实践教学体系和结构。对于计算机专业学生来说程序设计应用能力是学生是否真正掌握“编程”这一技能的重要指标,决定了学生在适应社会需求与岗位能力所需的程度。如何能使教学适应社会需求以及让学生“编程”能力真正得到提升及达到岗位能力所需是计算机类学科在教学中必须重点关注和解决的问题。
一、程序设计教学问题与现状
计算机学科基本上由数学和机械学科衍生而来,最大特征就是能不能做出来,这个方法(算法或设计)效率有多高。程序设计在计算机学科中又处在基础和关键环节,最大的特点是需要实践才能掌握知识点,实践能力也是用人单位考量学习者能力最重要的方面。
对于计算机学科来说知识是相关联的,从教学目标到各级各阶段教学任务,从某级某阶段知识点开始逐步加深对相关课程的理解。某个知识点是懂与不懂的问题,但是具体到实践就是懂多少的问题(延伸如完成相同任务,解决方法数量与质量是与实践能力成正比的),随着知识应用广度与深度的差别,工程化教学与普通教学将形成知识层面的“马太效应”差距会成倍增长。
(一)国内外现状
计算机学科的工程化借鉴了传统工科标准化、工艺化、模块化、平台化的特点,旨在解决如何明确学习目的,提升学习兴趣这类编程语言教学中的难点。国外工科学校对于创新教学方法的研究层出不穷,蒙特雷技术学院试图通过脑电图信号识别及互动式的教学方法来改善较难课程的教学动态[1]。林克平大学工科教育采用CDIO模式应用在自动控制学科及工程教育中,CDIO教学做一体化的教学模式对工科学校教学具有显著作用[2]。
国内学校对于如何提升学生的计算机应用能力也有诸多的探索,程序语言教学中的诸多问题如代码规范遵守、调试程序的能力[3]、团队协作的能力等等已经作为教学的重要目标。无论一周一个small projiect,每周上机测试,使用UCB查重,互测制度等,还是设计几个huge project,每个project开始看上去难度都很高,通过长期实践来最终完成。各种方式的目的都是强化实践教学,最终可以极大地提升学生程序设计应用能力。
(二)问题与改进方案
传统教学中课堂上大都采用分散的基础知识点讲解,使用各自的案例进行解释和运用,但如何整合这些知识点的方法也大都采用同一个贯穿项目来解决,使得考核方式单一,考核结果雷同,不能体现知识点实际掌握水平。对于这种情况当然可以采用Version Contral工具等来制约,了解项目组浑水摸鱼的情况。但抹杀了学生的主观能动性,学生一门课下来没写几行代码,更不能让学生主动系统地理解知识点之间的关联,真正体现能力的所学有所用没有合适的方式来实现。本文所述工程化教学方式可以在一定程度上修正传统教学方式的弊端及提升学生的实践应用能力。
二、工程化教学的理念与意义
知识工程化的概念出自19世纪泰勒的三个著名的科学管理实验。其采用实验方法研究管理问题,开创实证式管理研究先河,其科学地划分工作元素的理念对计算机学科的工程化教学有着极高的理论指导意义。
(一)工程化教学可以提供科学的学习曲线,具体到编程语言教学中编程语言本身有着自身的特点和结构层次,理解和掌握基础知识点可以依照如下顺序:
编程语言基础知识点结构:
数据抽象→→表达式表达逻辑与运算→→循环和分支结构控制逻辑与运算→→单个功能封装成函数→→函数调用与库的定义
对于基础知识点按照以上顺序结合工程化教学,辅助使用硬件工具,根据项目要求中特定的硬件反馈和功能实现来解释和帮助理解。从而基础概念和知识点可以很好地转化为实际应用能力。在打好基础后对诸如对象、继承、抽象数据、状态储存、状态和行为的统一封装等进阶知识点的理解将更清晰和深入。
(二) 工程化教学可以提供合理的教学规划,教学目标必须是一个有明确目的、过程、并经过验证的计划,不能是无法预测结果的尝试。工程化教学的第一步是制定多个可行的学习目标或任务,第二步是帮助学生制定学习路径并了解目前所处位置及前进方向,第三步是将完成目标或任务的知识点按学习路径融入课程和教学计划,第四步是以完成目标或任务的程度作为学业考核的标准。
(三)工程化教学可以提升学生学习热情,学生在学习之初大都抱有较高的求知欲,如何保持及提升这种主观能动性是关键,工程化教学的优势在于能够提供给学生在教学知识框架内自由发挥的空间并且能够将分散的知识点融合在项目中,将枯燥的概念转变为必须使用的工具。使得长时间学习产生厌烦情绪转变为完成项目满足成功感的动力。
三、工程化教学与程序设计能力提升教学方式探索
(一) 教学方法设计
本次实践的班级为4个共183名学生,课程包含《新工科试验》《工程认知与创新素质培养》两门课。采用美科公司的mcookie开源硬件套件作为辅助,套件使用c和c++作为编程语言。为了更加接近培养计划及更有针对性,本次实践的学生都具有c语言基础并不要求通过期末考试。首先以问卷与问答方式设计调查统计内容如下表,并在课程结束后再次采集相同选项数据作为工程化教学的效果对比,选项都与课程知识点相关。、 每个选项有3个分值,每个分值0-10分,分别对应学生自评,课前评测,课后评测。学生自评主要了解学生在传统教学后的自我能力评价,课前评测评价学生真正的应用能力,采用问答、试卷、工程能力等多种方式。课后评测是在工程化教学之后进行,检验学生在工程化教学之后对选项知识点的掌握程度。
通过三个分值的统计比较,将会得到工程化教学与传统教学对知识点掌握程度的差异数据。在课程中鼓励学生发现问题,解决问题。在解决问题的过程中对知识点进行梳理和讲解。
(二) 教学效果比较方案与结果分析
一个学期课程结束后各项分值统计如下:
知识点掌握人数
知识点分项 按学生填表和字数统计(工程化教学前) 实测(工程化教学前) 课程结束依据项目评定统计(工程化教学后) 增长率((教学后-实测)/实测)%
通过增长率统计可以看出,经过一学期的工程化教学实践,学生的应用能力得到明显地提升,原本散乱的知识点归纳到有序的知识框架中并得到了项目应用锻炼。各项知识点在实际应用环境中得以联结,项目的完成也对学生的学习自信心起到了极大的鼓舞作用。
四、结语
工程化教学区别于传统教学在于不是死记硬背,而是理论联系实际,看得见的成果和能力的体现。项目压力与实践过程奠定了编写代码的能力,通过。。。是学生掌握和理解项目流程、架构、软件工程所涉及的方方面面等等书本上的知识很好的途径,并在学习过程中保持学习热情,理论和实践的紧密联系能引发强烈的求知欲,引发求知欲是教学的重要目的,亦是工程化教学的初衷。
[1]Ricardo Zavala Yoé, Ricardo A. Ramírez Mendoza.International Journal on Interactive Design and Manufacturing (IJIDeM), 2019, Vol.13 (4), pp.1353-1365
[2]Svante Gunnarsson. Automatic Control Education in a CDIO Perspective[J]. IFAC PapersOnLine,2017,50(1).
[3]高赟,張骥先,孔兵,张学杰.C语言程序设计课程中应用能力的培养[J].计算机时代,2017(08):61-63.
作者简介:
季萌(1973.7-),男,汉,籍贯:江苏南通;助教,硕士;单位:上海杉达学院 研究方向:数据工程
关键词:工程化教学;程序设计;编程语言;设计应用
前言
國家对于“新工科”的大力支持与推进是深化应用型人才培养的坚实后盾和方向指引,鼓励创新工程教育方式与手段,探索新的实践教学体系和结构。对于计算机专业学生来说程序设计应用能力是学生是否真正掌握“编程”这一技能的重要指标,决定了学生在适应社会需求与岗位能力所需的程度。如何能使教学适应社会需求以及让学生“编程”能力真正得到提升及达到岗位能力所需是计算机类学科在教学中必须重点关注和解决的问题。
一、程序设计教学问题与现状
计算机学科基本上由数学和机械学科衍生而来,最大特征就是能不能做出来,这个方法(算法或设计)效率有多高。程序设计在计算机学科中又处在基础和关键环节,最大的特点是需要实践才能掌握知识点,实践能力也是用人单位考量学习者能力最重要的方面。
对于计算机学科来说知识是相关联的,从教学目标到各级各阶段教学任务,从某级某阶段知识点开始逐步加深对相关课程的理解。某个知识点是懂与不懂的问题,但是具体到实践就是懂多少的问题(延伸如完成相同任务,解决方法数量与质量是与实践能力成正比的),随着知识应用广度与深度的差别,工程化教学与普通教学将形成知识层面的“马太效应”差距会成倍增长。
(一)国内外现状
计算机学科的工程化借鉴了传统工科标准化、工艺化、模块化、平台化的特点,旨在解决如何明确学习目的,提升学习兴趣这类编程语言教学中的难点。国外工科学校对于创新教学方法的研究层出不穷,蒙特雷技术学院试图通过脑电图信号识别及互动式的教学方法来改善较难课程的教学动态[1]。林克平大学工科教育采用CDIO模式应用在自动控制学科及工程教育中,CDIO教学做一体化的教学模式对工科学校教学具有显著作用[2]。
国内学校对于如何提升学生的计算机应用能力也有诸多的探索,程序语言教学中的诸多问题如代码规范遵守、调试程序的能力[3]、团队协作的能力等等已经作为教学的重要目标。无论一周一个small projiect,每周上机测试,使用UCB查重,互测制度等,还是设计几个huge project,每个project开始看上去难度都很高,通过长期实践来最终完成。各种方式的目的都是强化实践教学,最终可以极大地提升学生程序设计应用能力。
(二)问题与改进方案
传统教学中课堂上大都采用分散的基础知识点讲解,使用各自的案例进行解释和运用,但如何整合这些知识点的方法也大都采用同一个贯穿项目来解决,使得考核方式单一,考核结果雷同,不能体现知识点实际掌握水平。对于这种情况当然可以采用Version Contral工具等来制约,了解项目组浑水摸鱼的情况。但抹杀了学生的主观能动性,学生一门课下来没写几行代码,更不能让学生主动系统地理解知识点之间的关联,真正体现能力的所学有所用没有合适的方式来实现。本文所述工程化教学方式可以在一定程度上修正传统教学方式的弊端及提升学生的实践应用能力。
二、工程化教学的理念与意义
知识工程化的概念出自19世纪泰勒的三个著名的科学管理实验。其采用实验方法研究管理问题,开创实证式管理研究先河,其科学地划分工作元素的理念对计算机学科的工程化教学有着极高的理论指导意义。
(一)工程化教学可以提供科学的学习曲线,具体到编程语言教学中编程语言本身有着自身的特点和结构层次,理解和掌握基础知识点可以依照如下顺序:
编程语言基础知识点结构:
数据抽象→→表达式表达逻辑与运算→→循环和分支结构控制逻辑与运算→→单个功能封装成函数→→函数调用与库的定义
对于基础知识点按照以上顺序结合工程化教学,辅助使用硬件工具,根据项目要求中特定的硬件反馈和功能实现来解释和帮助理解。从而基础概念和知识点可以很好地转化为实际应用能力。在打好基础后对诸如对象、继承、抽象数据、状态储存、状态和行为的统一封装等进阶知识点的理解将更清晰和深入。
(二) 工程化教学可以提供合理的教学规划,教学目标必须是一个有明确目的、过程、并经过验证的计划,不能是无法预测结果的尝试。工程化教学的第一步是制定多个可行的学习目标或任务,第二步是帮助学生制定学习路径并了解目前所处位置及前进方向,第三步是将完成目标或任务的知识点按学习路径融入课程和教学计划,第四步是以完成目标或任务的程度作为学业考核的标准。
(三)工程化教学可以提升学生学习热情,学生在学习之初大都抱有较高的求知欲,如何保持及提升这种主观能动性是关键,工程化教学的优势在于能够提供给学生在教学知识框架内自由发挥的空间并且能够将分散的知识点融合在项目中,将枯燥的概念转变为必须使用的工具。使得长时间学习产生厌烦情绪转变为完成项目满足成功感的动力。
三、工程化教学与程序设计能力提升教学方式探索
(一) 教学方法设计
本次实践的班级为4个共183名学生,课程包含《新工科试验》《工程认知与创新素质培养》两门课。采用美科公司的mcookie开源硬件套件作为辅助,套件使用c和c++作为编程语言。为了更加接近培养计划及更有针对性,本次实践的学生都具有c语言基础并不要求通过期末考试。首先以问卷与问答方式设计调查统计内容如下表,并在课程结束后再次采集相同选项数据作为工程化教学的效果对比,选项都与课程知识点相关。、 每个选项有3个分值,每个分值0-10分,分别对应学生自评,课前评测,课后评测。学生自评主要了解学生在传统教学后的自我能力评价,课前评测评价学生真正的应用能力,采用问答、试卷、工程能力等多种方式。课后评测是在工程化教学之后进行,检验学生在工程化教学之后对选项知识点的掌握程度。
通过三个分值的统计比较,将会得到工程化教学与传统教学对知识点掌握程度的差异数据。在课程中鼓励学生发现问题,解决问题。在解决问题的过程中对知识点进行梳理和讲解。
(二) 教学效果比较方案与结果分析
一个学期课程结束后各项分值统计如下:
知识点掌握人数
知识点分项 按学生填表和字数统计(工程化教学前) 实测(工程化教学前) 课程结束依据项目评定统计(工程化教学后) 增长率((教学后-实测)/实测)%
通过增长率统计可以看出,经过一学期的工程化教学实践,学生的应用能力得到明显地提升,原本散乱的知识点归纳到有序的知识框架中并得到了项目应用锻炼。各项知识点在实际应用环境中得以联结,项目的完成也对学生的学习自信心起到了极大的鼓舞作用。
四、结语
工程化教学区别于传统教学在于不是死记硬背,而是理论联系实际,看得见的成果和能力的体现。项目压力与实践过程奠定了编写代码的能力,通过。。。是学生掌握和理解项目流程、架构、软件工程所涉及的方方面面等等书本上的知识很好的途径,并在学习过程中保持学习热情,理论和实践的紧密联系能引发强烈的求知欲,引发求知欲是教学的重要目的,亦是工程化教学的初衷。
[1]Ricardo Zavala Yoé, Ricardo A. Ramírez Mendoza.International Journal on Interactive Design and Manufacturing (IJIDeM), 2019, Vol.13 (4), pp.1353-1365
[2]Svante Gunnarsson. Automatic Control Education in a CDIO Perspective[J]. IFAC PapersOnLine,2017,50(1).
[3]高赟,張骥先,孔兵,张学杰.C语言程序设计课程中应用能力的培养[J].计算机时代,2017(08):61-63.
作者简介:
季萌(1973.7-),男,汉,籍贯:江苏南通;助教,硕士;单位:上海杉达学院 研究方向:数据工程