物联网应用技术专业关于项目化教学的思考

2021-11-21 00:47
无线互联科技 2021年1期
关键词:专业课代码调试

韦 凡

(武汉软件工程职业学院,湖北 武汉 430205)

1 传统理论教学模式和项目化教学的对比

为此学校教研室决定在两门课程中开展试点。本人所授课程“单片机高级应用”有幸参与此次试点探索。在具体的课程安排上,在课程开头介绍任务需求,告诉学生需要新模块,接着介绍模块各参数作用,学生尝试着分析如何调整参数完成需求[1]。这一模式和传统的理论课程不同在于:理论课程注重知识的全面性、深度性,面对抽象、高深的专业课,学生在一个学期的时间里很难理解每一个知识点,更不用说全面掌握;项目化教学从实际应用出发,把专业知识生活化,学生理解起来比较容易,其次不追求知识全面化,侧重让学生掌握、应用重点知识,如果学生对其他知识点感兴趣,学生可在已有知识储备的基础上做自我探索。

从上述对比中可以看到,相比传统理论教学模式,项目化教学下学生更容易吸收、应用知识[2]。另外最重要的优势在于项目化教学模拟的是企业开发环节,学生将来在企业的工作是把需求转换成代码的过程,传统理论教学模式下没有机会让学生尝试去分析需求,导致学生刚进入企业时很难适应。所以项目化教学的优势比较突出,在今后的教学工作中,应大力推广这种模式,使学生和企业无缝连接。

2 物联网应用技术专业知识

当然经过一段时间的实践后发现存在一些问题,主要表现在:(1)学生的前导课程知识积累薄弱,影响了新知识的理解;(2)当学生能听懂原理后,在实践环节能对照原理完成开发的学生非常少,大部分学生不知道从何处下手。针对上述问题,教师需要考虑的是如何解决。

第一个问题:在于如何补齐学生专业基础课短板。学生签到课程知识欠缺主要表现为2种情况,第一个:专业基础课的知识没有深刻理解,只有模糊的概念,一旦进行综合应用环节完全没办法动手,停留在回忆知识的步骤;第二个:部分专业基础知识欠缺,学生没有对应知识的积累,无法理解内容,比如在介绍传感器数据传输协议的时候,学生没有系统学习过网络知识,对协议不太理解,导致在理解传输数据时感到困惑。基于以上2个问题,教师可以探索如何去解决。第一个问题在上文讲过,改变教学模式有助于帮助学生更深刻地掌握知识,在综合应用性较强的课程上学生才能迅速上手。

第二个问题:有两种方法,一是增加新课程,二是在使用某些新知识前,可以适当花费一些课时去讲解。在这两个方法中,比较推荐第二种。大学课程一般比较固定,插入新课程比较困难,尤其对于高职院校来说,课程安排本来就紧凑,除非砍掉已有课程,不然无法增加新课。一些项目化教学的学校里采用第二种方法,当需要用到另外一门课程的知识时,提前讲解,一是减少新增开课,二是坚持以应用为主,在实践中掌握知识。

所以针对本问题,教师在安排项目化教学模式时,最好从基础课程开始推广,同时针对部分知识点,可以在项目化教学中完成传授。第二个问题则难度相对大一些,讲解个各模块原理的时候,大都可以类比日常生活,学生感官上容易接受和理解,但实际动手写代码时,往往无从下手[3]。在和学生的沟通中,发现他们常常觉得需要动手实现的需求比较多,无从下手。但实际上教师每次分配的需求异常简单,学生的这种表现一般是想得太多,束缚太多最终导致无法动手写代码。究其原因还是开发经验少,不知从哪里下手。解决这个问题需要从多个角度去提高学生的技能而不是储备知识。如果教师借鉴开发人员的日常工作流程:开发者常常从架构师或项目经理处得知新的需求,开发者利用代码完成新功能。教师不难发现每个开发者将知识转换成动手开发能力,需要理解、分析需求的能力,熟悉业务代码的能力,需要调试代码的能力。

3 基于上述能力,教师可以从以下几点培养学生

3.1 培养理解、分析需求的能力

在每次提出需求后,不要急着讲代码,而是给时间让学生自己尝试着去分析如何使用代码完成功能,当然在需求分析的起始阶段,学生不知道需求分析从哪里下手,教师可以带领学生把需求分解成小的需求,通过逐级分解,将最终的问题转换成能用几行代码解决的小需求。在这一步里,教师要有意识地培养学生分解需求的意识。分解的过程不会太难,关键是要想到分解这个动作。这一过程需要注意两点:第一,分解需求主体应该是学生,老师只是引出问题,学生思考,侧重培养学生思考解决问题的能力;第二,在每次练习时都要着重向学生表明需求是分解出来的,培养学生分析需求的意识。

3.2 培养熟悉业务代码的能力

在分解需求的同时,要培养学生熟悉工程代码的习惯。很多学生理解需求后,仍然无法开始写代码。在和学生交流中发现多数情况下,他们经常纠结怎么定义变量、怎么实现基本代码,而这些内容工程代码里是已经实现过的,也就是说学生并不知道需求和代码对接时,哪些是现成的,哪些需要自己完成。在以前的专业课学习中,可能代码量很小,几乎所有代码需要自己写,所以没有机会培养熟悉业务代码的能力。在项目化教学中,这种能力就显得很重要,如何培养呢?首先:确定工程里使用哪些模块功能,初始化、调用函数是否齐全,调用接口函数里的参数是如何定义的;其次,从main函数开始,查看整个工程运行过程中的逻辑,再结合前面理解的需求,推理出在何处补充代码、如何使用各个模块的接口函数。进过上述2个步骤学生写代码就会容易很多。

3.3 调试代码是另一重要能力

在工作中写好代码只占开发人员很少的时间,大部分时间用于调试代码。而学生的表现恰恰相反,他们只有写代码的时间,几乎没有调试过代码。他们的代码如果出现问题只会等着老师来解决。因此,教师有必要帮助学生培养调试代码的能力。首先我们分析一下学生不会调试代码主要原因:没有调试代码的意识和看不懂英文。

(1)没有调试代码的意识。主要原因在于物联网或者电子信息类专业在开设课程的时候,虽然也有软件开发的专业课,但没有系统地学习软件开发的课程,比如缺少软件测试一类的课程,导致学生在写完代码后,没有调试代码的意识或者习惯。以至于很多学生写代码依靠“运气”,一旦出现错误,什么办法都没有,只能依靠教师来解决,甚至有的学生在写完代码,发现运行不起来之后,会有沮丧、甚至放弃专业课的想法。写代码好比写文章,文章里总会遇到写错别字的时候,我们改掉就好,代码里如果出错,我们改正就能成为合格的程序。所以要培养学生克服代码出错时无奈、沮丧的心态,其次要有调试代码的意识,不能期待代码一次成型。

(2)看不懂英文是很多学生都会遇到的问题,在以前的一次调查中许多学生甚至提议希望开设英语公共课,但学生看不懂调试代码里出现的英文信息,并不是因为语法难度,更多的是陌生单词的原因,而统计开发人员调试信息里的英文之后,教师会发现都是固定的内容,常见的代码错误是符号错误、重复定义、未定义等,那么代码调试里英文提示经常出现的单词也就是固定的那几个。所以对学生而言,整句英文虽然看不懂,但是只要看到某个单词,通过反推就可以猜测错误的原因。

4 结语

通过分析,可以发现解决学生不会调试代码的问题比较简单,首先教师在学生写完代码后,要着重提示学生尝试自己去修改代码,刚开始可能学生都没有掌握技能,但培养意识很重要,通过多次提醒,学生养成习惯后,就会主动调试代码。在解决具体代码错误的时候,教师可以提前把代码错误里常见的英文单词列出来,同学们对照单词,理解问题描述,再去解决错误就容易许多。这个环节也是多次练习后,学生就能独立看懂并解决调试错误,当积累多次成功的经验后,对专业课更有信心。

教师可归纳常见的英文表述,学生在实践中多看几次就能明白。项目化教学相较于以前的纯理论教学优势比较突出,值得每一位教师尝试。虽然本人在实践中发现了一些新问题,但只要正确解决这些问题就可以极大地提高学生的知识储备和各种技能,更好地适应企业工作,成为一名技术过硬的劳动者。

猜你喜欢
专业课代码调试
“导入课”在高校专业课实施“课程思政”的实践与思考
创世代码
创世代码
创世代码
创世代码
基于航拍无人机的设计与调试
FOCAS功能在机床调试中的开发与应用
无线通信中频线路窄带临界调试法及其应用
服务学习在高职社会工作专业课内实践教学中的探索
调压柜的调试与试运行探讨