软件编程教学:
基于Scratch、Python、C++等编程语言给学生搭建可视化图形编程平台和代码编程学习平台等,通过编程游戏、 网页、动画、音乐等来学习编程语言。目前市面上还是以Scratch作为编程语言基础的课程和产品居多,Scratch是由美国麻省理工 学院设计开发,能够将复杂的Python和C++等代码转化成简单的图形化的模块,通过积木式的拼搭来完成操作。而Python和C++ 则是要了解编程的代码和算法等基础理论知识,为学习人工智能知识建立坚实的基础。
建议学习路线如下:
1.Scratch
scratch介绍:
Scratch是麻省理工学院的“终身幼儿园团队”(Lifelong Kindergarten Group)开发的图形化编程工具,主要面对青少年开放。
学习方法:
孩子不用记住命令不代表不需要知道命令。积木模块包括8个大类,100多个功能。包括了过程一个完整程序的每个环节,甚至数组和函数。这些图形化的积木使用需要老师或者家长正确引导。孩子从模仿的过程中,能感悟到条件语句,循环语句,判断。能理解参数和命令的区别。让孩子理性的总结出来是很困难的,引导是必须的。
在学习的过程中,每一种语言都提供了图形化的编程环境,不仅是用于教会孩子们一些编程的概念,而且是包含物理和数学知识的模拟及讲述故事的一些练习。
2.App Inventor
App Inventor介绍
App Inventor 原是Google实验室(Google Lab)的一个子计划,由一群Google工程师和勇于挑战的Google使用者共同参与设计完成。Google App Inventor是一个完全在线开发的Android编程环境,抛弃复杂的程式代码而使用积木式的堆叠法来完成您的Android程式。App Inventor 2012年1月1日移交给麻省理工学院行动学习中心,并已于3月4日公布使用。开发一个App Inventor 程式就从您的浏览器开始,您首先要设计程序的外观。接着是设定程序的行为,这部分就像玩乐高积木一样简单有趣。最后只要将手机与电脑联接,刚出炉的程序就会出现在您的手机上了。
3.JavaScript
简介:
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。但是作为一种脚本语言,JavaScript可以说是非常成功的,它在相当多的领域中得到了广泛应用。它不但可以用于编写Web浏览器端(或者称为客户端)脚本,实现在Web页面上下文中执行的程序,而且可以在服务器端用于编写可处理浏览器提交的信息并相应地更新浏览器显示的Web服务器程序。
应用:
1.客户端应用
JavaScript最典型的应用就是开放客户端Web应用程序,也就是开发所谓客户端脚本。与高级语言不同,客户端脚本程序通常都是解释执行的。也就是说,在执行JavaScript脚本之前,无须进行编译等预处理。
在最典型的客户端应用中,JavaScript脚本程序被嵌入到HTML文件中,随着HTML文件一同下载到浏览器端。浏览器读HTML文件,然后解释执行并显示其中的元素。读取HTML文件并分辨其中的元素的过程称为语法分析或解析(parsing)。如果解析到JavaScript脚本,则浏览器执行其脚本语句。
2.服务器端应用
JavaScript脚本不但可以运行于客户端,而且可以运行于服务器端,用于实现服务器的某些特定功能(例如,取代传统CGI程序的表单处理功能)。在Microsoft的服务器上,典型的一种应用就是作为ASP(Active Server Pages,活动服务器页)的实现脚本。
服务器端脚本的工作过程如下:浏览器输入URL请求,服务器调用脚本;生成从浏览器传递数据的对象,并向脚本提供这些对象;脚本进行处理(对于数据库应用则需要进行特定的数据库操作),并将数据以HTML文件的方式通过服务器返回发出请求的浏览器。
4.Python
Python介绍
Python是一种计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
Python语言在人工智能中的优势
1、更加人性化的设计
Python的设计更加人性化,具有快速、坚固、可移植性、可扩展性的特点,十分适合人工智能;开源免费,而且学习简单,很容易实现普及;内置强大的库,可以轻松实现更大强大的功能。
2、总体的AI库
AIMA:Python实现了从Russell到Norvigs的“人工智能:一种现代的方法”的算法;
pyDatalog:Python中的逻辑编程引擎;
SimpleAI:Python实现在“人工智能:一种现代的方法”这本书中描述过的人工智能的算法,它专注于提供一个易于使用,有良好文档和测试的库;
EasyAI:一个双人AI游戏的python引擎。
3、机器学习库
PyBrain 一个灵活,简单而有效的针对机器学习任务的算法,它是模块化的Python机器学习库,它也提供了多种预定义好的环境来测试和比较你的算法;
PyML 一个用Python写的双边框架,重点研究SVM和其他内核方法,它支持Linux和Mac OS X;
scikit-learn旨在提供简单而强大的解决方案,可以在不同的上下文中重用:机器学习作为科学和工程的一个多功能工具,它是python的一个模块,集成了经典的机器学习的算法,这些算法是和python科学包紧密联系在一起的;
MDP-Toolkit这是一个Python数据处理的框架,可以很容易的进行扩展。它海收集了有监管和没有监管的学习算饭和其他数据处理单元,可以组合成数据处理序列或者更复杂的前馈网络结构。新算法的实现是简单和直观的。可用的算法是在不断的稳定增加的,包括信号处理方法,流型学习方法,集中分类,概率方法,数据预处理方法等等。
4、自然语言和文本处理库
NLTK开源的Python模块,语言学数据和文档,用来研究和开发自然语言处理和文本分析,有windows、Mac OSX和Linux版本。
Python具有丰富而强大的库,能够将其他语言制作的各种模块很轻松的联结在一起,因此,Python编程对人工智能是一门非常有用的语言。可以说人工智能和Python是紧密相连的。如果你想要抓住人工智能的风口,Python是必不可少的助力。
5.C++
C++介绍
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
技术应用
科学计算:
在科学计算领域,FORTRAN是使用最多的语言之一。但是C++凭借先进的数值计算库、泛型编程等优势在这一领域也应用颇多。
网络软件:
C++拥有很多成熟的用于网络通信的库,其中最具有代表性的是跨平台的、重量级的ACE库,该库可以说是C++语言最重要的成果之一,在许多重要的企业、部门甚至是军方都有应用。
操作系统:
在该领域,C语言是主要使用的编程语言。但是C++凭借其对C的兼容性,面向对象性质也开始在该领域有一席之地。
6.Go
Go介绍
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行模型是以东尼·霍尔的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括Occam和Limbo,但它也具有Pi运算的特征,比如通道传输。在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。
与C++相比,Go并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。Go 2.0版本将支持泛型,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。
不同于Java,Go内嵌了关联数组(也称为哈希表(Hashes)或字典(Dictionaries)),就像字符串类型一样。
Go应用
1、Google
这个不用多做介绍,作为开发Go语言的公司,当仁不让。Google基于Go有很多优秀的项目,比如:https://github.com/kubernetes/kubernetes ,大家也可以在Github上 https://github.com/google/ 查看更多Google的Go开源项目。
2、Facebook
Facebook也在用,为此他们还专门在Github上建立了一个开源组织facebookgo,大家可以通过https://github.com/facebookgo访问查看facebook开源的项目,比如著名的是平滑升级的grace。
3、腾讯
腾讯作为国内的大公司,还是敢于尝试的,尤其是Docker容器化这一块,他们在15年已经做了docker万台规模的实践,具体可以参考http://www.infoq.com/cn/articles/tencent-millions-scale-docker-application-practice 。
主要职责是:负责腾讯游戏蓝鲸平台后台开发工作,负责容器相关的开发工作。和蓝鲸平台,容器开发有关。腾讯作为主要使用C/C++的公司,使用Go会方便很多,也有很多优势,不过日积月累的C/C++代码很难改造,也不敢动,所以新业务会在Go方面尝试。
4、百度
目前所知的百度的使用是在运维这边,是百度运维的一个BFE项目,负责前端流量的接入。他们的负责人在2016年有分享,大家可以看下这http://www.infoq.com/cn/presentations/application-of-golang-in-baidu-frontend .
其次就是百度的消息系统,从其最近的Golang招聘介绍就可以看出来.负责公司手百消息通讯系统服务器端开发及维护
5、京东
京东云消息推送系统、云存储,以及京东商城等都有使用Go做开发。
6、小米
小米对Golang的支持,莫过于运维监控系统的开源,也就是 http://open-falcon.com/ 。此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用Golang。
中国人工智能产业发展联盟人才发展中心西安分中心主要针对小学、初中、大学及毕业生开展人工智能技术、产业、政策等方面的人才培养,青少年人工智能主要从我国青少年的年龄特点和认知心理出发,以教育机器人及开源硬件为载体,从生活中常见问题的算法化、基本算法的理解和掌握,以及对人工智能知识的了解、理解、实践运用等三个方面加强学员对“计算思维”的认知和理解,培养学生的动手实践技能,使之能够提升自身的科学技术素养并逐步形成独立的科学人格。为联盟旗下近千家企业的输送专业人才,促进当地人工智能产业的蓬勃发展。
关注微信公众号:“AIIA人才发展中心西安分中心”了解更多内容。