推广 热搜: csgo  vue  2023  angelababy  gps  信用卡  新车  htc  落地  控制 

第一门编程语言选谁?

   2023-06-26 网络整理佚名2480
核心提示:二、你学的第一门编程语言是什么?在国内的大学中,当前大多数选用C作为学生的第一门编程语言。三、适合于入门的脚本编程语言就我个人看法,第一门语言比较适合采用脚本式的编程语言。是一种动态编程语言,语法简洁易学,本身是开源的,程序可以运行于几乎所有主流的操作系统之上。四、以编译型的语言作为入门级编程语言与Java类似,C#比较适合作为计算机专业的入门级编程语言。

台湾著名技术专家蔡学勇先生撰写了《编程ING》一书,宣称“人人都可以学习编程”。 作为一名IT教育者,这本书引起了我的兴趣。 读完之后,我发现了很多共鸣。 结合国内计算机教育的现状,我感触良多,所以想出了这篇小文章。

1. 为什么学生认为编程令人畏惧?

我首先成为一名学生,然后成为一名老师。 不知不觉中,我已经在大学里“混”了十几年了。 我发现至少有一半进入计算机专业的学生一开始并不了解真正的软件开发。 “一张白纸”,遗憾的是,经过四年的学习,很多张“白纸”已经变成了很多罐“浆糊”,软件开发或许是畏惧的,或许是冷漠的,但绝对不是像离开校园那样的情怀。

编程真的那么无聊吗? 这么困难又无聊?

我写代码已经快20年了。 虽然我不靠编程为生,但也勉强算得上是一个老程序员了。 我对编程的看法可以用两句话来概括:何必解决烦恼,唯有编程! 我经常思考一个问题:编程其实很有趣、好玩、实用、有成就感。 为什么这么多学生认为编程令人畏惧? 为什么我们的计算机教育在激发学生对编程的兴趣方面“如此成功”?

蔡学勇老师在《编程ING》中给了一张图:

图1 正向兴趣循环是学习的关键

我认为这张图说明了问题的症结——学习过程中的“正向”兴趣循环是否成功建立。

强烈的兴趣和持续的成就感是整个学习过程的“引擎”,为学生完成整个学习任务提供源源不断的强大动力。 有无数的事实支持这一观点。

传统教学观点认为,本科生的主要教育目标之一是为学生未来在本专业领域的发展“打下坚实的理论和实践基础”,因此需要“严格要求”和“科学训练”。最开始的时候。

这个观点不会错,但我认为我们计算机教育的首要任务,特别是对于初学者来说,是要引起兴趣。 没有兴趣,没什么可谈的。

我所知道的事实是:许多计算机科学专业的学生认为编程是一种令人畏惧的方式。 原因在于我们现有的计算机教学方法从一开始就给了这些学生“痛苦”的编程经历。 不幸的是,这种经验在后来枯燥的专业课程中不断强化,学生最终远离了编程或者对编程产生了恐惧。 它就像一只老虎。

事实上,教育学研究早就指出,成功、高效的教学应该是这样的:循序渐进、由浅入深、循序渐进、以兴趣为导向。

教师的职责不是将知识“注入”学生的大脑。 首要任务是激发学生的兴趣,鼓励他们探索未知领域,主动学习和吸收知识,发展技能,积累经验。 在这个学习过程中,教师应该成为一名优秀的航海家,为学生绘制航线,鼓励他们出海,解决航行过程中遇到的困难,帮助学生建立学习的“正向”兴趣循环。

编程的“第一印象”非常重要! 于是,一个非常有趣的问题出现了——应该选择哪种语言作为学生的第一编程语言?

2. 您学习的第一门编程语言是什么?

在国内大学中,目前大多数选择C作为学生的第一门编程语言。 其实这并不是什么大问题。 C的重要性无需多言,其实问题的关键不在于选择C教学,而在于以何种方式进行教学。

遗憾的是,国内很多C语言教材都注重C语法细节的介绍,而且课程考核方式非常死板——很多院校采用闭卷考试,一堆选择题和填空题。 一个典型的问题是从一段代码中删去一两句话,让学生“填空”。 哪位高手是通过这些“填空”来学会编程的? 计算机也流于形式,要求学生折腾、摆弄几个“黑底白字”的“玩具式”小程序。 学了一个学期,学生们连一个有用的程序都写不出来……

这种死板的教学方式足以摧毁大部分学生对编程的兴趣。

我个人认为C不应该成为大多数学生教授的第一个编程语言。 我们的教学体系应该为学生提供更多的选择。

向初学者教授的第一种编程语言应该具有以下特征:

(1)必须“有趣”,能够诱发人们“动手”和“思考”。

(2) 初学者需要远离不必要的低级技术细节,以免分散他们的注意力。

(3)语言必须足够简单,同时又要有足够的编写实用程序的能力,让学生轻松获得成就感,体会软件开发的魅力。

(4)该语言必须能够充分体现现代软件开发的基本思想和技术成果,为学生进一步学习打下基础

(5)花在这门编程语言上的时间和精力是值得的。 掌握它后,你将拥有一个强大的工具,可以用来在未来的学习中实践和创造。

另外,学习这门编程语言应该帮助初学者正确理解和体验以下编程思想:

(1)分而治之:把大问题分解成小问题。

(2)组件化、模块化:用积木“搭建”软件系统。

(3)算法思维:针对实际问题建立数学模型,设计计算机算法,最终通过编程来解决问题。

同时,该编程语言的学习应该能够有效培养以下基本编程技能:

(1) 调试代码的能力。

(2)能够编写出可读性强、扩展性好、易于复用的高质量代码,并培养良好的编程习惯。

(3)具有查找技术资源和阅读技术文档的能力。

也许学习一门编程语言并不能满足以上所有要求,但是结合几种不同的编程语言几乎就足够了。 下面,我介绍几种适合初学者入门的编程语言。

3.适合入门的脚本编程语言

为了教初学者学习编程,蔡学勇老师在《编程ING》中选择了REBOL编程语言。 门语言似乎太小众了,书中缺乏能够引起初学者兴趣的强大应用实例。

根据我的经验,初学者如果能手写几个有用的例子,他爱上编程的可能性就会大大增加。

以下是我粗略总结的几个容易引发学生成就感的技术领域:

图形和动画、多媒体

游戏

互联网应用

具有可视化界面的桌面应用程序

在手机上运行的应用程序

我个人认为,第一种语言更适合脚本编程语言。

:了解编程是什么,训练基本的编程技能

国外很多人都极力推荐(),认为它是最适合初学者学习的编程语言。

它是一种语法简单易学的动态编程语言。 它是开源的,程序可以运行在几乎所有主流操作系统上。

对于初学者来说,可以学习基础编程知识(如学习编写分支、循环语句),体验动态编程语言的特点,了解类、对象等面向对象编程的基础知识。

但鉴于我国的实际情况,在使用中存在一些问题:

(1)官方提供了交互式开发环境IDLE,使用方便,但是用可视化界面开发程序比较麻烦,而且其他厂家的开发环境还不成熟稳定。

(2)缺乏合适的汉语教材。 与其他语言相比,它在中国的使用并不广泛。 个人观点:用它来训练初学者基本的编程技能是比较合适的,但是用它入门之后就必须学习其他的编程语言。

以及:训练算法设计和编程能力

学习、应用和设计各种算法,培养针对各种问题建立数学模型的能力,对于软件开发来说非常重要。 算法在我国已被引入高中数学教学并纳入高考考试内容。 这是一件好事。

目前的高中新课标数学教材中,使用的是法国国家信息自动化研究所(INRIA)开发的软件。 这个软件和大学里流行的软件高度相似,是学习算法的好工具。

可惜的是,也缺乏足够的语文资料,而且由于高考数学只考简单的算法流程图,占分很少,所以大部分高中不会在这方面投入太多的精力。 。 数学建模能力无法得到充分培养,这个任务只能交给大学来完成。

完全可以使用 or 作为第一种编程语言。 与or类似,or编程采用交互操作方式(图2),编程语法也非常简单。 基本的编程能力也可以通过它得到培养,尤其是其强大的程序的数学图形功能对学生来说非常有吸引力,或者说编程对于他们的数学能力和算法设计与应用能力的培养是无与伦比的。 这种能力将为学生今后在学术研究领域的发展提供强大的动力。

图2 交互式编程环境

+VBA:使用VBA代码控制自动执行各种任务

几乎所有的大学都开设“计算机基础”课程,大部分都会教授微软软件包的使用。 但目前该课程的教学方法存在问题。 例如,我见过一些考题,考核学生是否记住了Word操作的某些快捷键。 这完全是本末倒置啊! 其实,只要对本课程的教学内容稍加改革,就可以培养学生的编程能力。 关键是要加强或增加以下内容:

(1)使用Excel进行数据分析,教授Excel中各种强大功能的使用以及数据的可视化。 这不仅实用,而且能够有效培养学生处理和理解数据的能力,而程序的本质并不是把信息补全。 处理工作?

(2)使用存储和检索数据,使学生掌握数据库使用的基本知识,形成对数据库技术的感性认识。

(3)(VBA)编程:VBA是一种脚本式的编程语言,它具有“控制软件包中一切”的能力。 用它来编程最大的好处就是让学生体会到很多操作都可以一键“自动化”,并在实现这种“自动化”的过程中获得成就感。

编程语言:体验图形动画的魅力

国内很多人可能不知道这门编程语言(),其实它已经有10多年的历史了。 它是由美国教授Ben Fry设计的,可以用来构建丰富多彩的交互式应用软件。

与其他编程语言相比,最强大的特点在于其图形图像和动画编程功能。 在整个计算机技术领域中,这无疑是最具吸引力的技术领域之一。

虽然磨刀不误砍柴工,但很多编程语言需要太长的时间来“磨刀(学习语法、掌握开发工具、阅读API文档等)”,但不存在这样的问题,它的编程语法与Java一致,但比Java简洁得多。 另外,与诸如、等复杂的IDE相比,编程环境非常简单,具有一定的优势。 它帮助学习者将主要精力投入到创作中,鼓励他们大胆地进行开发实践。

图3 编程环境

提供一批直观、简洁、强大的图形图像功能,学习者只需花费少量时间学习即可立即投入创作,并提供大量操作实例,能有效激发学习者的想象力。

它具有很强的可扩展性(现在已经有100多个库可用),特别是内置了对 、程序可以在手机上运行的支持,这大大增加了它的吸引力。

也许国内很多高校还无法开设课程,但其实大学生是可以自学的。 网站上有足够的学习资源和示例。 唯一遗憾的是这些资源都是英文的。

HTML 5+:互联网时代的主流编程语言

在各种脚本编程语言中,我想介绍的最后一种是.

它长期以来一直是 Web 客户端事实上的主流编程语言。 它的运行环境是浏览器。 目前,所有计算机和大多数智能手机都至少安装了一种浏览器,并且该程序“随处运行”。

程序的编程非常简单,即使使用记事本,写几段也不算太麻烦。

早期存在的问题主要是各个浏览器厂商各自为政,标准不统一,缺乏必要的调试工具,但现在这些问题已经得到了很大的缓解。 在开发工具方面,主流IDE都增加了对程序开发和调试的支持。 例如,2010/2012 年就表现出色。 另外,随着我​​们进入移动互联网时代,HTML 5是唯一能够被各厂商接受的。 与此相对应的标准也在走向标准化。

与其他语言类似,它也可以归入动态脚本语言的范畴。 它语法简单,也支持面向对象的编程方法,但其用途远比其他语言广泛。 各种图书馆如雨后春笋般涌现。 它包罗万象,甚至在服务器端,比如事件驱动的服务器端运行环境——Node.js()就相当引人注目。

它在 HTML 5 规范中具有中心地位,可以用来完成很多工作:

为了抓住机遇,各大浏览器厂商不断改进产品,努力支持更多的 HTML 5 功能,而智能手机的两大操作系统 iOS 和 iOS 都可以运行用户编写的 Web 应用程序。 微软也紧跟潮流,在其最新的 8 中,可以编写 Metro 风格 8 应用程序。

从这一点来看,可以说是风景无限。

我强烈建议在学院和大学推广课程。 事实上,国内高校在这方面已经具备了一定的基础。 例如,很多高校都开设了“网页设计基础”课程。 您只需更新课程的教学内容并添加HTML 5和内容,并改革教学方法(例如不要使用闭卷考试要求学生记住各种HTML标签的含义......),学生能够跟上时代的步伐,相信一定会比C更能吸引学生,激发他们对软件开发的兴趣。

4.使用编译语言作为入门级编程语言

虽然我倾向于使用脚本语言来完成初学者的编程启蒙任务,但是我们也可以使用编译型编程语言来完成这个任务。

关于C就不用我多说了,我相信很多有才华的人都是从C出来的。

另外两种非常重要的编译语言是Java和C#。 我的看法是,即使不被视为计算机专业的第一门编程语言,至少这两种编程语言也应该作为计算机专业一二年级的选修课。 课程。

我们先来说说Java。

Java:“人多力量大”的主流面向对象编程语言

据说,在全世界的软件开发人员中,Java程序员的总数是名列前茅的。 人数多说明市场需求大,Java技术应用广泛。

以Java作为第一门编程语言更适合计算机专业的学生,​​让他们从一开始就受到面向对象编程风格和思想的影响,然后可以反向学习C。 不再像现在这样先学C,再学Java,而是顺便学C,再学C++,现在很多院校都开设了C++课程。 事实上,多年来C++应用领域不断被压缩,C++语法过于复杂。 效率低下,除了一些有需求和兴趣的学生外,不适合大多数学生学习。

Java入门主要分为两个阶段:一是Java语法和OOP思想的理解,二是JDK中各种Java类和相关技术(如多线程、序列化等)的学习。

Java是主要的开发语言,学生入门后可以进一步基于Java开发手机应用,引导学生进入移动互联网时代。 它具有很强的实用性,这往往会引发学生学习Java的强烈动机。

Java 本质上与“开源”这个词联系在一起。 掌握Java后,学生可以步入开源世界,探索各种丰富的开源应用和技术思想,这对于拓宽学生的视野非常有利,可以直接帮助他们就业。

事实上,许多学院和大学都开设了Java课程。 我的建议是大学一年级就开始教他们,然后立即跟进J2EE和Java的后续课程。

C#:面向对象编程语言大师

作为面向对象编程语言家族的后来者,C#有足够的机会向前辈学习,这使得C#成为面向对象编程语言的集大成者。

与Java类似,C#更适合作为计算机专业的入门级编程语言。 C#开发通常是微软自己开发的。 与其他IDE相比,我认为它是一个非常好的集成开发环境。 即使是免费版本也具有很高的智能化程度和良好的用户体验。

笔者曾经做过一个实验,直接带领计算机专业一年级学生不用学C就学C#,还为全校开设了通选课,针对非计算机专业教授C#编程语言和.NET编程技术学生。 得到了很好的反馈。

以下是我在C#编程中总结的一些能够引起学生兴趣的内容:

表单:让学生快速开发可视化桌面应用,很有成就感。

GDI+:通过简单的循环和递归编程技巧,可以绘制出漂亮的图案,并且可以移植到Web上,这对学生来说非常有吸引力。

ADO.NET:掌握了它,学生就可以开发简单的数据库应用程序,并真正编写出一些有用的程序。

编程:让学生轻松地在两台计算机之间交换信息,这个过程充满了探索的乐趣。

经过上述招数后,实践证明,能够成功激发很多学生对编程的兴趣,甚至“引诱”很多学生决定跨专业报考计算机专业的研究生。

与Java相比,C#的问题在于它与微软的捆绑太紧,很容易将学生限制在微软构建的生态系统中,影响他们视野的广阔度。

从我个人的角度来看,计算机专业的学生应该掌握一门主流的通用编程语言和开发工具(Java和C#是我目前推荐的两种编程语言),并在以后的专业学习中,用它们来应用将后续计算机专业课程中学到的理论知识运用到实践中。 这样,编程语言的学习将为计算机理论课程的学习提供强大的推动力,学生的开发能力也会随着开发实践的深入而不断增强,为他们进入行业或进入行业铺平道路。未来的学术领域。

五、结论:计算机教学与时俱进

计算机是发展最快的科技领域之一,这就要求我们的计算机教学要与时俱进,不断调整。

“云计算”时代的到来将对计算机教学方式产生巨大的影响。 21世纪是人类信息技术突飞猛进、全面渗透到人类社会各个领域的时代。 在这样一个信息化程度越来越高的时代,

你准备好了吗? 我们走吧!

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON