计算机程序开发类课程整体性思维培养的探索与思考

来源 :教育界·上旬 | 被引量 : 0次 | 上传用户:pt315311
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】文章针对大学计算机专业新生遇到的如何选择和学习编程语言的问题,分析每种编程语言的特点,提出以掌握关键的通用语言特性为核心的学习方法。该方法可以使学生提高学习效能,快速掌握具体编程语言的核心技术,提高实践技能。
  【关键词】编程语言;语言特性;整体性思维
  为适应不同应用场景和用户需求,近几年计算机领域出现了众多的新技术,同时编程语言也种类繁多,使学生在学习过程中感到茫然与困惑。新入学的计算机相关专业大一新生,通常会从基础的C语言开始学习,然后逐步接触各种面向对象编程语言,如C 和Java等。此外,实践环节也要求他们另外掌握一些编程语言,以完成不同的任务。面对难度和用途各异的编程语言,大学新生在学习过程中问得最多的问题就是应该学习什么编程语言,以及怎么学习。
  一、编程语言选择的困惑
  新生在学习完计算机基础和面向过程的C语言后,都会进入到更加复杂的面向对象编程语言的学习。如何在最短时间掌握一种语言的核心技术,有必要在计算机课程初期进行介绍,以便学生选择课程和自学,并提高其学习兴趣和学习效率,避免少走弯路。这些主要问题包括:
  是否应该选择最热门和最时髦的编程语言来学习,以利于日后找工作?是否应该买一本经典书籍来学习某种编程语言?在学习一门语言的过程中,是否应该学习完该语言的所有特性以后才开始练习?如何避免长期不用某种语言导致的知识遗忘?
  二、重视语言特性
  有不少学生每学一种语言,遇到深入一点的特性就放弃,然后转而学习其他语言,最后一个学期下来还是只会简单的算术运算和循环。殊不知任何一种编程语言都是各种语言特性的组合。如果将一种编程语言看作一台电脑,那么它的牌子可能是联想、Dell或者苹果。苹果电脑一般比其他电脑昂贵,但是并不能简单认定苹果电脑就一定比联想或者Dell好。电脑的好坏主要由其配置决定,比如处理器型号(包括核数、主频大小、缓存大小)、内存大小、硬盘大小、显示器分辨率和显卡型号等等。在这里,电脑的品牌相当于编程语言的名称,而电脑的配置就相当于编程语言的语言特性。常用的语言特性包括变量定义、算术运算、循环语句、函数定义及调用、递归、静态特性、类型转换、面向对象特性、垃圾回收和指针特性等。
  在学生接触C语言之后,有必要为他们概括介绍所有语言的语言特性,使其了解语言特性与特定语言无关,学好任何一门编程语言都可以成为编程高手。
  三、授课方法
  (一)介绍所有编程语言的整体概述
  TIOBE编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如Google、Wikipedia、YouTube以及Baidu等)进行计算。图1列出了2017年7月编程语言排行榜的前10种语言。
  (二)介绍编程语言的分类及区别
  本文讨论的编程语言都属于高级语言的范畴,不包括汇编语言等底层编程语言。可以用不同标准对高级编程语言进行分类。从对事务的认识上来进行区分,可以分为面向过程的编程语言和面向对象的编程语言;从可执行文件的生成和执行过程来划分,可分为编译型语言、解释型语言、混合型语言。
  1.编译型语言,包括C、C 等。这里说的编译是指在应用源程序执行之前,就将程序源代码翻译成汇编语言,然后进一步根据硬件环境变成符合运行需要的机器语言的目标文件。这种方式使用比较方便,效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件才能执行,只有目标文件而没有源代码,几乎是没法修改的。大多数软件产品都是编译后发行给用户的,不仅便于直接运行,同时又使他人难于盗用其中的一些原始代码。
  2.解释型语言,包括Python、Perl、JavaScript等。解释型语言的实现中,翻译器并不产生机器语言的目标文件,而是产生易于执行的中间代码,这种中间代码与机器代码是不同的,中间代码的解释是由解释器软件支持的,不能直接使用硬件,解释器软件通常会导致执行效率较低。用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的。与编译程序不同的是,解释程序的任务是逐一将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码后再执行。解释程序的优点是当语句出现语法错误时,可以立即引起程序员注意,而程序员在程序开发期间就能进行校正。
  3.混合型语言。有些人为了特殊目的制造混合型语言,例如Java。Java程序也需要编译,但是没有直接编译成为机器语言,而是编译成为字节码,然后在Java虚拟机上用解释方式执行字节码。这种运行方式具有一些优势,但同时直接导致了复杂的环境、不算很高的效率和很多的争议。
  基于以上划分标准,表1列出了幾种常用编程语言的特性与区别。
  (三)推荐合理的入门语言
  大学新生因为刚接触计算机专业知识,只是模糊了解一些编程技术。因此,有必要从一种体系完整的、没有明显缺陷的语言出发,培养编程兴趣,掌握最关键的语言特性,然后由此把这些概念应用到其他语言。
  总的说来,脚本语言不适合作为入门语言,尤其是那些源于早期UNIX系统的脚本语言,例如Shell。使用脚本语言作为编程入门语言,一个很严重的问题就是使得学习者抓不住关键。脚本语言为了简化编程,往往把一些系统工具性质的东西(比如正则表达式、Web概念等)加入到语法里面,导致初学者为它们浪费太多时间,却没有掌握核心的语言特性,即变量、函数、递归、类型等。因此,好的入门语言应该使学习者专注于学习最核心的语言特性。
  选择编程语言时可以参考图1的排行榜,尽量选择流行度高的语言,以保证未来更多的就业岗位,同时也应该考虑编程语言对核心语言特性的表现方式。鉴于此,这些语言可以推荐为入门之用:C、Java、Python、JavaScript。相比之下,这些语言则不适合用于编程入门:Shell、PowerShell、Perl、PHP、Basic、Go。
  (四)培养兴趣,重视实践
  在具体学习某种编程语言的过程中,学生应该掌握以下基本方法。
  第一,在掌握上述通用语言特性的基础上,针对某种编程语言,首先粗看语法,将之前学习的语言特性具体化,理解该语言特性的具体表示形式;然后阅读一些示范性小程序,了解该特性的实际用法;接着快速练习,并在练习过程中有针对性地查找相关资料,深化对该特性的认知。
  第二,初学者切忌阅读过厚的经典编程书籍,因为这些书籍大多是资深程序员所写,对许多高级特性讲解十分透彻,但是并不适合初学者。
  第三,在掌握基础语法、特性和使用方法后,可以结合稍大的具体例子进行练习,以培养编程兴趣,提升成就感。当完成所有语言特性学习以后,可以在github中关注某些开源项目,以实际项目驱动学习,同时巩固所学的各种语法,提升编程技术。
  第四,在掌握一门语言以后,需要重新将该编程语言的语言特性抽象出来,为以后快速学习其他编程语言做好准备,也可以在长时间不用该语言导致知识遗忘时进行快速回顾。
  四、结语
  如何选择合适的编程语言,是一个基础性的问题,容易被教师和学生忽略。掌握关键的语言特性是学习的核心,并在此基础上通过实践逐步学习某种语言的语法,循序渐进地培养编程兴趣。相信大多数学生都会爱上编程和计算机技术的。
其他文献
【摘 要】党员是中国共产党的重要组成部分和先进代表,为了保持党在各个领域的先进性和代表作用,十分有必要对党员实施高效的思想政治教育。结合新媒体技术对当前思想政治教育的影响,本文对新媒体多元环境下的党员思想政治教育创新进行了积极探究。  【关键词】新媒体 党员 思想政治教育 创新  当前新媒体多元环境下,网络、手机及数字电视等技术平台层出不穷,博客、手机搜索引擎、门户网站等相继出现,丰富了人们
目的观察降脂中药方对高甘油三酯(TG)血症监床疗效。方法交50例高TG血症患者随机分成两组,治疗组25例运用中药降脂方进行治疗;对照组25例运用吉非罗齐治疗。结果治疗组和对照
【摘 要】世界经济在逐步实现一体化的同时,世界各国也在社会转型发展的过程中,出现了一些矛盾累积而起的社会现象及问题,观察各国出现的社会现象和问题的特征,可以给我国的社会工作提供正反面的参考,为社会工作带来新的启示作用。本文着重对国外出现的各种社会现象及问题加以分析,梳理各国对该问题的处理策略,形成积极的启发意义。  【关键词】社会工作 国外社会现象和问题 启示  世界各国在进行工业化和现代化
[摘要]生活化教学是新课程标准下广泛应用的教学模式,主要以学生的生活认知为载体,引导学生将学习体验与生活经验相融合,从而帮助学生丰富学科感知,提升学习效率。生活化教学的实施有利于学生将抽象的知识迁移到熟悉的生活中,简化理解过程,优化运用效果。  [关键词]高中生物课堂 生活化教学内容 生活化学习情境 生活化实验设计 生活化活动实践  一、拓展生活化教学内容  高中生物属于思维型、逻辑型学科,在学习
“一例多境”教学方法是情境化教学的最新探索。文章以高中思想政治必修四《生活与哲学》(人教版)中的《意识的作用》课堂教学片段为例,谈谈“一例多境”教学方法在高中政治课堂
<正>什么是激光?激光是一种人工光源,它的命名是根据光的功能用下边几个英文词light amplification by stimulated emission of radiation(laser)r的第一个字母拼合而成,意为
随着社会的发展,国家在人民健康中的责任越来越大,人文在国家健康中面临的挑战越来越大,国家健康人文在大健康人文中的重要性越来越大。国家健康人文的提出成为必然。《"健康
防原医学是一门综合性很强的军事医学学科,主要研究战时核武器、核爆炸和平时电离辐射所致的人体伤害医学防护及其临床救治。它与基础医学、临床医学和军事医学等学科都紧密
神经科学突飞猛进对高校神经生物学教学提出了新的要求,如何在保证学科框架完整、系统的前提下与时俱进,有针对性地传授神经科学方面知识和技术,更好地培养医科大学学员,是一
实验教学是临床寄生虫学与检验专业核心课程教学中的重要环节。为提高学生的积极性,增加其动手能力和主动性,应加强实验考核,形成终结性评价和形成性评价相结合的综合性评价