Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 教育论文 > 正文

程序设计类课程教学研究论文

发布时间:2021-04-17 11:16:38 文章来源:SCI论文网 我要评论














SCI论文(www.scipaper.net):

摘要:程序设计类课程在计算机相关专业中有着很重要的地位。本文主要以三类不同但典型的程序设计类课程为例探讨程序设计类课程教学的内容设置与方法方式,包括程序设计类入门课程、Web类程序设计课程和机器学习类课程。这三类涵盖了专业基础课程、专业技能类课程和创新性课程,它们之间有着共同特点,但在课程定位、课程内容等方面又有着巨大差异,因此在内容设置和教学方法方式方面要分别设计。

关键词:程序设计;实践性课程;机器学习

本文引用格式:房正华等.程序设计类课程教学研究[J].教育现代化,2019,6(98):179-181.

Teaching Research on Programming Courses

FANG Zheng-hua,LI Fang-ying,GUO Yu-zhi

(College of Information Engineering,Qingdao Institute of Technology,Qingdao Shandong)

Abstract:Programming courses have a very important position in computer related majors.This paper mainly discusses three kinds of different but typical programming courses as examples to discuss the content setting and method of programming class teaching,including the first programming course,Web class programming course and machine learning class.These three categories cover professional basic courses,professional skills courses and innovative courses.They have common characteristics,but there are huge differences in curriculum orientation and course content.Therefore,there is a difference in content setting and teaching methods design.

Key words:programming;practical courses;machine learning

对计算机类专业学生来说,特别是以工程实践为主要培养目标的软件工程、物联网工程、网络工程等专业,程序设计能力的培养至关重要,各类高校的以上相关专业均在第一学期开始了程序设计类的入门课程,包括南京大学的新开设的人工智能专业。它的新生在第一学期的课程中除了数学类课程之外,还包括了一门“程序设计基础”课程。

本学院的软件工程专业以培养应用人才为目标,以专业能力和实践技能培养为主线,注重对学生软件开发技能和软件工程思想的培养。其中的软件开发技能主要包括Web端软件、移动端软件及人工智能相关系统的研发、运维及数据库管理。因此程序设计能力是本专业学生的核心能力,其学习与培养将贯穿学生的整个四年大学生涯。根据学生的不同学习阶段及学习内容,本文将程序设计能力培养的核心课程分为包括入门程序设计类课程、Web类程序开发及机器学习类课程,这三类课程从课程内容、课程难度和能力培养方面有着层层递进又千丝万缕的关系。

同时随着当前各类教学辅助平台的涌入,各高校包括本学院各专业教师也在程序语言类课程中引入雨课堂、蓝墨云、各类OJ等进行课程的辅助教学[1-4],本文将就以上三类核心课程的教学内容、教学方法与手段进行研讨。

一 程序设计入门类课程的教学方法研究

首先随着计算机软件技术的发展,程序设计入门课程在语言的选择方面经历了多次变革。在九十年代多以Pascal语言为主,到了2000之后,逐渐变成以C语言为主,后来面向对象语言的兴起后,出现了百花齐放的场面,现在的入门课程有C语言、C++语言、Java程序设计语言和最近的Python语言。TIOBE刚刚发布了10月编程语言排行榜,排名前三的依旧是Java、C、Python。

不同的语言的选择除了历史背景的原因,有很多是培养目的的因素,例如在早期的Pascal语言,是为了培养学生的严谨的学术风格,有部分高校在C语言比较成熟流行的时候依然选择Pascal语言作为入门语言就是考虑到这部分原因。而在近几年随着JavaScipt语言在前端、后端均表现出强劲的势头,还有Python语言的“人生苦短,请用Python”的口号所展现的强大的简单性,以及它在人工智能方面所展现的巨大优势等等,让很多高校将Python作为学生的程序设计类的入门课程。我校综合各方面因素考虑,仍然选择将C语言作为本学院计算机科学与技术等7个本科专业的首门计算机语言课程。

\

 
在程序设计类入门课程的教学方面,主要侧重于以下几个方面。

(一)思想是王道

在程序设计类课程的教学中,重点注意思想的传授,例如在C语言程序设计课程中注意计算思维和面向过程思想的培养,让学生首先意识到编程的目的是让计算机帮助人类解决问题,然后掌握解决过程:首先要分析问题是什么,选择何种数据结构描述已知的数据和最终的结果,然后就进行数据的输入工作,接下来就是设计算法解决核心逻辑问题,经过计算,最后输出运行结果,如图1所示。


\


(二)程序风格的培养

留白、对齐、命名等这些概念看似是无关紧要的小事,但是确实工程类专业的基本功,能完成需求的代码是软件的最低标准,更重要的是能写出“好代码”,包括良好的代码规范(命名规范、格式规范),能感知代码的“bad smell”,什么情况下该用什么语法结构(比如嵌入式系统中不要用递归)、有意识得控制代码圈复杂度等这些基本功应该在第一门语言的学习中就注重培养,只有这样学生才能写出符合业界标准的代码。

(三)调试能力的培养

程序设计类课程中,特别在首门课程的培养中不能缺失的就是调试能力的培养。软件开发中需要的大牛并不是能写出没有错误程序,而是需要有了错误,可以通过调试工具迅速定位错误,并修改错误的人才,这就需要掌握调试能力。

调试,特别是语义错误的排除时要避免陷入误区,以为调试工具会告诉你错误出在什么地方。调试工具只是真实地反映程序每步的执行结果,正确与否的判断仍需要自己来下,因此,调试程序是建立在程序完全理解,知道每一步的运行结果的基础之上的,当某一步的真实结果与预期结果不同时,就实现了错误的定位,进而加以修改。

(四)恰当方法的运用

在讲授第一门程序设计语言时,教师面对的学生通常是没有任何计算机基础的学生,如何调动学生的积极性,提高学习效率就变得尤为重要。

笔者在讲授C语言程序设计时融入了游戏的思想,将课程的内容根据难易程度划分为青铜、黄金、白金、钻石和王者,学习编程变成了打游戏通关,在提高学生兴趣的同时,提高学生课余练习的积极性,如图2所示。

\


在后续的函数章节中,特别重视对面向过程思想的培养,体现模块化思想,同时也提出软件复用的概念,强调软件开发过程中,复用的重要性,后续的设计模式很多都是围绕复用而展开的,而这里的函数就是一种初步的“复用”思想。

而在后续的Java课程中,重点培养学生对面向对象思想的理解,包括封装的由来,采用生活中的常见例子,例如电梯,它内部结构很复杂,但是呈现给用户的只有几个按钮,这里利用的就是“封装”的理念,既体现了便利性,又保证了安全性,面向对象中的封装与此“异曲同工”。

(五)MOOC、各类OJ平台的引入进行翻转课堂的改革

为了更好地激发学生的学习积极性,通过MOOC平台、PTA平台,采用翻转课堂理念,改革传统课堂,将课堂变为点睛、答疑、解惑、测试的课堂,一改原来的满堂灌状态,为了能把握学生的掌握情况,并且可以让学生更好地体会程序正确性的概念,引入PTA平台,效果显著[5]。此外通过PAT认证、CCF CSP认证考试和各类程序语言类竞赛激励学生。

二Web类程序开发课程教学

Web类程序开发课程的授课对象与首门程序语言课程相比有很大的不同,他们不再是初学者,经历了至少两门语言类课程的学习、数据结构课程的编程训练和数据库等课程的练习之后他们在理论基础和简单编程方面已经具有了一定功底,但是在软件开发方面,特别是Web类软件开发方面还有欠缺,如果依然以原先的方式方法进行教学,必然会事倍功半。

Web类程序开发强调的是可用性与实用性,因此在该类课程的教学中重点关注以下三个方面。

(一)软件工程工具的合理利用

任何工程领域,良好的工具都是有效率、高质量完成工作所必备的。因此在Web类程序开发中要注重强调各类软件工具的使用,如项目管理工具Maven、版本控制工具Git、代码静态质量检查工具、持续集成工具及各类单元测试工具等。

(二)前沿技术的讲授

在基础类课程中,教学可以专注原理,可以持久而弥新,但是在Web类程序开发课程中应该与企业保持一致,将企业中的最新技术及时地融入课程中来。例如在Java EE应用与开发课程中,课程大纲在近三届中,每次授课都添加新内容,从最初的SSH2框架,到后来的MyBatis框架、SSM框架,直至最近的Spring Boot框架和Spring Cloud微服务等内容都尽量保持与企业的同步,这样学生在就业时可以很快适应企业的需求。

(三)实践性、可用性

实践性依然是该类课程的重要特点,但据不完全统计,学生在各类课程实现的“软件”100%得不可看、不可用,纯粹是Toy APP,因此设计实现出可看可用的程序是此类课程的最低目标,此时就需要真实的案例,不能再凭空虚造各类管理系统。

在本学期的“Java EE开发与应用”课程中,第一个案例就来源于学校的迎新的实践情况:本学院新生家长见面会迎新报名系统,在这个系统的设计过程中,学生就需求、前台页面、后台功能进行充分的分析,而且因为有真实的学生数据(脱敏后的新生数据),所以本次的设计就变得真实、有血有肉,而且同学们经过本次案例对微信小程序、微信二维码有了更深入的了解,对课程之外的内容进行的深入拓展,涌现出了很多优秀案例,如图3所示。

\
 
三机器学习类课程的教学

由于最近几年人工智能,特别是机器学习等相关技术的迅猛发展,国内外很多高校开设人工智能相关课程甚至相关专业,对于大部分高校的本科生来说在机器学习类课程中除了学习相关的算法原理外,更重要的是体会、实践人工智能类开发与传统程序开发的不同。在机器学习中需要计算机解决的问题不再需要人类自己提前将解决思路设计好,只需要建立相关模型,设定相关参数,进行数据集的训练与测试即可,此时主要让学生了解各类经典问题的解决方法,为后续进行相关的科研或实践奠定基础,因此可采用以下方式进行。

(一)可以引入各类成熟框架:如Google的TensorFlow框架进行课程的教学与实践,给学生一个展现的平台体会各类机器学习算法的奥妙。

(二)引入各类竞赛平台,如Kaggle、科赛网[6]等,开阔学生的视野,为日后从事相关工作奠定基础。

(三)介绍各类经典的数据集以及数据集查询的方法,如Google最新推出的数据集搜索业务。

(四)本课程更多的是给学生创造平台,为学生的创意提供出口。近两年,本专业学生成功获批4项Google大学生创新训练课题。

四小结

总之,程序设计类课程在计算机相关专业特别是软件工程专业中有着举足轻重的地位,它相关一系列课程的内容设置、课程定位及教学方法方式拥有着共同的特点,但也有很多独有特性。本文主要对程序设计类入门课程、Web程序类课程和机器学习类课程的教学方法方式进行了总结归纳,强调了其共同的实践性,也给出了每类课程的独有特点,以上研究内容与结论有一定的普适性,也有应用类本科学生的独有特点的体现。后续工作包括以程序设计类课程为主题的课程群建设,课程短视频建设,主要解决相关课程学习中可能出现的问题、核心技能展示,构建知识图谱等。

参考文献

[1]王荣芝.基于在线评测系统的程序设计类课程混合学习模式设计[J].计算机教育,2018(08):126-129.
[2]林忠.基于雨课堂和OJ系统的程序设计类课程教学方法设计[J].现代计算机(专业版),2018(20):68-71.
[3]陈英,郑巍,杨丰玉,等.程序设计类竞赛对教学质量的作用及分析[J].高教学刊,2018(09):92-95.
[4]李竹林,王文发,赵健.基于计算思维的程序设计类课程教学模式探索[J].西部素质教育,2018,4(06):1-2+5.
[5]程序设计类实验辅助教学平台[DB/OL].https://pintia.cn.
[6]科赛网[DB/OL].https://www.kesci.com/.
[7]鄢然.计算机程序设计课程教学方法探析[J].教育现代化,2019,6(68):65-66.

关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.scipaper.net/jiaoyulunwen/30159.html

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 豫ICP备2022008342号-1 | 网站地图xml | 百度地图xml