APP下载

数据结构课程中面试式教学模式探索与实践

2021-07-19赵力衡李丽华

电脑知识与技术 2021年14期
关键词:面试教改数据结构

赵力衡 李丽华

摘要:专业课程知识的实用性一直都是教育教学中关注的重点,许多专业课程以项目指导等方式来强化课程知识的实用性,但数据结构作为一门较为前期的专业课程,学生此时还缺乏足够的专业技能,项目导向等方式不容易取得较为满意的结果。本文提出了一种面试式教学模式,将面试中关注的重点引入教学过程,并作为检验学习成果的更高标准,以此提高数据结构的实用性。方法在实际教学中已应用3年,实践证明,该教学模式能有效提高学生实践能力、提升学生学习兴趣,显著提高了教学效果。

关键词: 数据结构;教学模式;面试;教改

中图分类号:G642        文献标识码:A

文章编号:1009-3044(2021)14-0152-02

Abstract:The practicability of professional curriculum knowledge has always been the focus of education and teaching. Many professional courses strengthen the practicability by different methods such as project-oriented teaching, but data structure course is a relatively early professional course. Students still lack sufficient professional skills at this time, project-oriented and other ways are not easy to achieve enough satisfactory results. An interview teaching model is proposed in this paper which introduces the key points in the interview into the teaching process and serves as the higher standard to test the learning results, so as to improve the practicability of the data structure. The method has been used in practical teaching for 3 years. The results show that the proposed method can effectively improve students' practical ability, enhance students' interest in learning, and improve the teaching effect significantly.

Key words:data structure; teaching model; interview; teaching reform

1 引言

专业课程讲述的本专业相关的专业知识和专业技能经常会在工作中被频繁使用到,因此这些知识和技能也被认为对一个人在该专业方向的职业发展至关重要。一直以来如何让课堂上讲述的专业知识能很好地与实践工作结合起来,帮助学生提升能力[1]并在求职技能面试中受到认可,以及在专业技能上尽快适应职场就成了教育教学中关注的一个重点。

数据结构是应届生在应聘软件类职业时笔试题中经常会遇到的内容,数据结构题目应答结果常常会影响到应届生是否能进入面试的下一个环节,同时软件开发中也离不开数据结构的应用。本文结合数据结构这门课程的特点提出了面试式教学模式,将技能面试中常常被关注的知识点带入课堂,并作为进一步的课程考核标准,使学生在学习和实践过程中注意到职场中相关算法和知识应用的一些方式,使学生养成良好的编程习惯,有效提升了学生面试成功率和缩短了职場适应期。

2 教学模式描述

2.1 数据结构课程特点

如何将课堂知识带入职场,不同的专业课程方法不尽相同[2-5]。很多专业课程对此的一个常见方式是项目引导式教学模式,课程开始时设定一个或多个项目,使用课堂上讲述的知识来实现项目中相应的模块,逐渐完成项目。这种方式不仅让学生在学习知识的过程中了解了知识的应用方式,还让学生增加了项目开发经验,是一种有效的学以致用的教学方式,但这种教学模式需要学生掌握大量项目相关的专业知识才能进行。

数据结构在教学中通常是安排在专业课程的前期,这个时间段内学生通常并不具备足够的项目相关知识。比如要使用Java语言实现一个常见的信息管理系统,那么这个系统通常包括了用于人机交互的前端界面,处理业务的逻辑业务层,以及用于存储数据的持久层。其中前端界面可能需要使用JSP或Html等语言进行开发,持久层则可能需要熟悉SQL等数据库的开发。如果项目使用常见的BS架构进行开发,那可能还需要开发者熟悉至少一种类似于Spring这样的框架。而这些专业知识和技能的排课时间通常比数据结构课程靠后,或者学校不一定会讲授,这就意味着类似于项目引导教学模式难以在像数据结构这样前期的专业课程中展开。文献[6]提出了“课前-课上-课后”相结合的数据结构教学模式,该方式有效地将数据结构课堂下与课堂上的教学整合起来形成一个较为完善的整体,但没有进一步探讨如何将课堂知识与职业要求联系起来。本文基于数据结构课程教学时常常缺少其他专业课程支撑的特点,提出了将关注于将课堂知识与职业需求联系起来的面试式教学模式。

2.2 面试式教学模式

面试式教学模式的特点是需要教师在教学时扮演求职面试中面试官的角色,在授课时将技能面试时面试官常常关注的问题作为知识点进行讲述,在作业检查时也将这些问题作为学生在完成算法的功能之后更进一层的评分标准,从而将课堂知识与职业要求统一起来。

实际上,大多数情况下学生在开始学习数据结构课程时,才刚开始比较系统的接触软件算法。学生几乎没有在课程上学过比较完整的项目相关知识,甚至编写的程序也多以完成单个的功能函数为主。这就意味着虽然在数据结构课程中会明确讲述评价一个算法优劣的主要标准,如算法的正确性、可读性、健壮性等,但很多学生在实现一个算法时并没有清晰地意识到这些标准怎么在算法中体现出来,导致写出的算法仅停留在功能的实现上,难以满足企业对代码质量的要求。

企业项目中评估代码质量的一个常见标准是千行代码BUG率,其含义是指每千行代码中BUG的数量,如式(1)所示:

如果代码的BUG率与质量目标或过程能力基线相比偏高,说明代码质量较差,软件产品在运行时可能出现较为频繁的异常,这通常意味着代码需要大量的返工,而这正是企业所竭力避免的。因此,企业在技能面试时面试官常常会关注应聘者的算法中是否存在健壮性弱、逻辑不完整等容易引起BUG的代码,以判断应聘者是否有能力写出高质量的代码,而这恰好是应届生所缺乏的。如果在教学过程中能从面试官的角度讲解算法实现和评估代码,那么就能让学生在一开始学习的时候就培养出实现较高质量代码的思维,从而在技能面试或工作中获得优势,而这正是面试式教学模式关注的。

以使用Java语言创建一个包含3个字符串元素的顺序表为例,一些学生的实现代码类似于如下代码:

public String[] create() {

//获取数组长度

System.out.println("请输入数组长度:");

Scanner scanner = new Scanner(System.in);

int arrayLength = scanner.nextInt();

//生成数组

System.out.println("请输入数组元素,以换行符分隔:");

String[] arr = new String[arrayLength];

//将输入数据依次写入数组

for(int i=0;i

arr[i] = scanner.next();

}

return arr;

}

从功能上看,该方法正确地实现了创建顺序表的功能,但若从代码质量的角度看,这段代码就显得不尽人意了。代码出现的问题主要表现如下:

1)未检查输入数据。若在程序中输入数组长度时输入非正整数类型的数值,比如-1或字符串等,那么该程序将会因无法正常创建数组或输入异常等原因崩溃。若该函数在一个项目里被调用,那么这个异常可能引起更大范围的代码故障,甚至整个软件系统崩溃,因此这段代码的质量就显得很差;

2)数据输入方式不合理。算法的输入数据从控制台输入,这常常是初学者偏爱的一种数据写入方式。但实际上,在商业项目里数据通常来自文件、消息、参数传入或用户界面等,鲜有让用户操作控制台的机会,而且控制台输入难以模拟出NULL这样的特殊情况,对代码测试也不利,因此应尽量避免。

那么在面试式教学中,教师在讲述和检查算法时就不仅需要关注算法的正确性,还需要从面试官的角度来关注代码的健壮性等因素,使算法中尽量不要出现上述类似的问题。

3 教学实践结果

面试式教学模式已在数据结构教学中应用了3年,从结果看,相当比例的学生对此感到很有实用性和挑战性,在学习课程前后的算法邏辑也更加完善,代码中减少了很多初学者常见的问题,并且在一定程度上减少了面试时给面试官以缺乏编程经验的印象,提升了面试通过机会并对缩短工作适应期有所帮助,达到了最初的目的。

4 结束语

实验结果表明,所提方法能有效地提高学生的代码水平和逻辑能力,使完成的算法更加健壮,更符合企业要求,并能在接下来的工作中更加容易适应企业对员工软件开发的要求,有效帮助学生将课堂知识应用到了实践中。但该方法也存在不足,那就是需要实施的教师具有丰富的企业项目经验以及面试经验,这样才能把握住面试环节中面试人员的关注点。

参考文献:

[1] 吴宝锁,张慧,屈廖健.新教改背景下的师生共同体构建与大学生能力发展研究[J].西南师范大学学报(自然科学版),2020,45(12):154-161.

[2] 李建锋,刘晓爽,康红俊.基于行动导向教学法的《数字移动通信》教学研究[J].电脑知识与技术,2020,16(33):12-13,25.

[3] 蒋超,王大卫.以职业需求为导向的网络技术课程教学模式研究[J].电脑知识与技术,2020,16(33):132-133,152.

[4] 周克荣.高职计算机教学中如何培养学生的创新创业能力[J].电脑知识与技术,2020,16(33):113-114.

[5] 侯玉双.新教改模式下高等数学教学方法研究[J].科技资讯,2020,18(36):130-132.

[6] 王晓明.“课前-课上-课后”结合的数据结构教学模式探索与实践[J].高教学刊,2020(8):91-94.

【通联编辑:王力】

猜你喜欢

面试教改数据结构
大学英语分级教学存在的问题及其具体解决措施研究
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
TRIZ理论在“数据结构”多媒体教学中的应用
《数据结构》教学方法创新探讨