Python课程简介

什么是Python?

Python是一门易读,易学,易维护的计算机程序设计语言。1991年由Guido van Rossum设计。2017年成为年度程序语言。是目前软件开发,科学计算,人工智能和教育领域最流行的一门面呈语言。

为什么学Python?

  • 参加青少年信息学奥林匹克比赛(NOI)或者(USACO)
  • 学习各类游戏开发。小到“贪吃蛇“和”俄罗斯方块“大到“超级马里奥”和各种RPG游戏。
  • 学习网页开发,学会从零开始制作自己的博客
  • 科学计算及大数据分析。通过Python可以分析大量数据并分类处理。
  • 自动化日常生活及工作中重复性极高的操作
  • 提前入门学习人工智能。本课程最后提供课程福利,人工智能的典型案例“聊天机器人”的初步实现。

Python实例演示

游戏

Turtle画布和游戏

Turtle是初入python的一个很好好玩的库,并且十分适合用来教导孩子如何编程,基于TK,所以运行该库时保证python已内置tk。

PyGame游戏引擎

包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚。基于这样一个设想,所有需要的游戏功能和理念都(主要是图像方面)都完全简化为游戏逻辑本身,所有的资源结构都可以由高级语言提供,如Python。

星球大战

愤怒的小鸟

吃豆人

网页

网页是构成网站的基本元素,是承载各种网站应用的平台。通俗地说,您的网站就是由网页组成的,如果您只有域名和虚拟主机而没有制作任何网页的话,您的客户仍旧无法访问您的网站。

网页是一个包含HTML标签的纯文本文件,它可以存放在世界某个角落的某一台计算机中,是万维网中的一“页”,是超文本标记语言格式(标准通用标记语言的一个应用,文件扩展名为.html或.htm)。网页通常用图像档来提供图画。网页要通过网页浏览器来阅读。

数据分析

数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。这一过程也是质量管理体系的支持过程。在实用中,数据分析可帮助人们作出判断,以便采取适当行动。

数据分析的数学基础在20世纪早期就已确立,但直到计算机的出现才使得实际操作成为可能,并使得数据分析得以推广。数据分析是数学与计算机科学相结合的产物。

人工智能

人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。

人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。

人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。2017年12月,人工智能入选“2017年度中国媒体十大流行语”

聊天机器人

聊天机器人(Chatterbot)是经由对话或文字进行交谈的计算机程序。能够模拟人类对话,通过图灵测试。聊天机器人可用于实用的目的,如客户服务或资讯获取。有些聊天机器人会搭载自然语言处理系统,但大多简单的系统只会撷取输入的关键字,再从数据库中找寻最合适的应答句。目前,聊天机器人是虚拟助理(如Google智能助理)的一部分,可以与许多组织的应用程序,网站以及即时消息平台(Facebook Messenger)连接。非助理应用程序包括娱乐目的的聊天室,研究和特定产品促销,社交机器人。

网络爬虫

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

青少年信息奥赛

USACO美国信息学奥林匹克竞赛

竞赛简介

美国信息学奥林匹克竞赛,英文简称“USACO”,全称“USA Computing Olympiad”,初次举办于1992年,其官网是美国一个著名在线题库,更是美国中学生官方竞赛网站,开设的目的是为每年夏季举办的国际信息学奥林匹克竞赛(IOI)选拔美国队队员。

在2016——2017赛季中,总计有2003名参赛选手入围公开赛,其中中国籍选手共计132人,仅次于美国926人,成为参加USACO公开赛的第二大国。

含金量

随着STEM教育的理念及编程低龄化普及化的发展,USACO的热度越来越高。因为编程学习的门槛相比较于数理化较高,USACO的含金量实际会高于同类型的USAMO(美国数学奥赛),UANCO(美国化学奥赛)等等。

此外,因为大量学生参加热门的USAMO,USNCO等竞赛,所以USACO相对来说并不是过分红海,在中国高中生中的普及度并不高,换言之,参赛的选手少了,获得荣誉的人少了,含金量自然就更高。

对于未来美本留学申请理工科专业的高中生来说,USACO能够获得金或者白金级别的奖项,绝对是提高竞争力的大杀器。

参赛对象

国内高一高二在读学生,高三学生也可以参加12月的第一场比赛,如果实力突出,可以在12月中RD常规申请前获得白银级奖项,可以说是申请前后最后一波强势的背景提升机会。

当然,编程基础较好,有算法能力的初中生也可以尝试参赛,提前挑战USACO竞赛,证明自己的编程能力。

比赛规则

每年的12月、1月、2月和3月都分别有USACO比赛开放日,在比赛窗口开放的三天内,选手可以选择在任意时间登陆USACO账号开始比赛。

每场比赛4——5个小时,比赛从在线打开试题后开始计时,可以使用C++,Java,Python,Pascal和C中的任意一种语言进行做题,在时间结束前通过网络将写好的程序提交即可。

程序提交后官网会给出用test case检测程序的结果,并根据结果给出这一题的得分,每次比赛,实力强的选手可以连续升级。

开始比赛4小时内,如果拿到了高分(接近满分或者满分),系统会提示直接晋级,可以在这三天内继续挑战下一级,只要实力足够,一场考试可以提升到满级白金级。

没拿到满分的选手,需要等到三天的赛程结束后,等待晋级分数线,才能决定是否晋级,如果成功晋级,可以在一个月后的第二场继续参赛晋级。

竞赛等级

1. 青铜级

参赛资格:注册USACO账号即为铜级

难度等级:铜级考试相对简单,参赛学生需会至少一种程序语言,只要经过一定的训练,大部分初次参赛的选手都能在限制时间内做完题,在第一次考试中晋级白银级。

2. 白银级

参赛资格:通过铜级比赛的选手

难度等级:需要基本的问题解决能力和简单的算法能力(例如:贪心算法,递归搜索算法等),除此之外,学生还要对基础数据结构有一定的了解。

3. 黄金级

参赛资格:通过银级比赛的选手

难度等级:需要有一定的算法基础,理解一些抽象的方法(例:最短路径,动态规划),并且学生要对数据结构有比较深的了解。

4. 白金级

参赛资格:通过黄金级比赛的选手

难度等级:需要有很高的编程基础和很强的算法能力。部分比赛问题最后的优化方案,可能不止一个,得出的答案也不止一个。

如何备战?

建议从Python或者Java入手,上手较快。可以选择先自学,学习主要内容为数据结构,编程语法,配合一定强度的练习和老师讲解,可以初步通过第一轮铜级的选拔。