主要内容 #
这节课主要讲述计算机程序的主要发展历程,计算机语言的发展主要分为三个阶段:
机器语言—>汇编语言–>高级计算机语言
主要内容:
- 机器语言
- 汇编语言
- 高级语言
- NOI以及相关活动的历史
1.机器语言 #
最早出生的语言是机器语言。
它非常简单。有多简单呢?简单到只用“0”和“1”就能进行编程。
它是计算机能够直接识别的语言,而且运行速度很快。
但是它并不是十全十美的,有一个非常让人恼火的缺点。有多恼火呢?
就像把盐粒和味精混合到一起,让你挑出来混进去的一粒白砂糖。
也就是说要检查出来程序中的错误非常困难。
对人类而言,0.00001秒和0.00000000001秒并没有什么差别。所以,哪怕你机器语言跑得再快,也不能俘获人类芳心。
于是汇编语言诞生了!
2.汇编语言 #
汇编语言用助记符代替了机器语言中的操作码,用地址符号或标号代替了指令或操作数地址。
但是汇编语言不能被计算机直接识别,必须使用某种特殊的软件将汇编语言转化成为二进制代码。
对于人类而言,助记符号显然比一堆“0”和“1”容易记忆,而且有专门的程序帮它们把这些莫名其妙的字符翻译成计算机每天打交道的“0”和“1”,速度上并不会受到什么限制。
所以直到现在,汇编语言仍能占有一席之地。
但是汇编语言仍属于低级语言,它与计算机的体系结构有关,因而在编写程序的时候,仍然需要花费大量的时间去熟悉计算机的体结构。
因而,汇编语言的这一席之地,被高级语言挤的越来越没有空间,也越来越没有尊严。
3.高级语言 #
大家都知道有哪些高级语言吗?
下面标颜色的语言除了“汇编”,都是高级语言。
当然,计算机并不能直接接受并执行高级语言的源代码,需要通过“翻译程序”将高级语言转化成机器语言形式的目标程序。
那么我们根据“翻译”过程的不同将高级语言分为两种:
- 编译性语言:C/C++、Pascal/Object、Pascal等;
- 解释性语言:ASP、PHP、Java、Python等;
编译性语言效率高,可靠性好,可移植性高,不过当源程序修改后,必须进行重新编译。
根据程序的面向对象的不同可以分为:
- 纯面向对象语言如Smarttalk、EIFFEL等;
- 混合面向对象语言如C++、Objective-C等,在其中加入类和继承等成分;
至于什么是“面向对象”、“类”、“继承”,现在我们还没有接触那么深,等我们学到后面就自然理解了。
4. NOI以及相关活动的历史 #
NOI和NOIP是什么? #
NOIP ,全国青少年信息学奥林匹克联赛,全国统一大纲、统一试卷。原先初、高中或其他中等专业学校的学生可报名参加联赛。联赛分初赛和复赛两个阶段,而今年只向高中生开放。信息学奥赛的体系是,NOIP是最低级别赛事,获奖选手晋级NOI(全国信息学奥赛),NOI通过选拔代表国家参加IOI(国际信息学奥赛)。
NOI ,全国青少年信息学奥林匹克竞赛,是国内包括港澳在内的省级代表队最高水平的大赛.旨在向那些在中学阶段学习的青少年普及计算机科学知识;给学校的信息技术教育课程提供动力和新的思路;给那些有才华的学生提供相互交流和学习的机会;通过竞赛和相关的活动培养和选拔优秀计算机人才。
NOIP是各省份开考,但考题一样,题目较简单。NOI程序较复杂,考题很难。各省要先各自举办省选,选出最优秀的(各省名额也不一样的),再到指定省份参加全国级别的竞赛,就是全国被选出的学生要在一起比赛。
IOI,全称是国际信息学奥林匹克竞赛(International Olympiad in Informatics)一般在每年的夏季举办。每个国家派出四名国家队选手参赛,采用的也是ACM赛制。
每位竞赛选手都是从NOIP出发,经过筛选,进入NOI(此时便可与名校签约),再经过筛选,进入IOI(为国争光)的。
CSP-J/S是什么? #
现CCF推出CSP非专业级别的能力认证。非专业级别较之专业级别更为简单,分两个级别进行,分别为CSP-J(入门级,Junior)和CSP-S(提高级,Senior),均涉及算法和编程。任何人都可以报名参加。
CSP-J和CSP-S均分别举办两轮,认证方式均为现场认证,非网络认证。参加CSP-J/S第二轮,必须先参加第一轮,达到一定的分数者方可参加第二轮。
CSP-J/S与NOI之间的关系 #
对于CSP-J/S认证与NOI系列活动之间有什么关系,CCF表示:CSP- J/S认证成绩优异者,可参加NOI省级选抜,省级选拔成绩优异者可参加N0I。
CSP-J/S认证初赛、复赛详细介绍 #
CSP-J/S认证每年10-11月份,分别举行第一轮认证、第二轮认证。CSP-J/S认证分入门级和提高级两个组别,难度不同。
第一轮认证考察重点:
第一轮认证为笔试或机试,主要测试选手有关计算机方面的基本知识,第一轮为资格测试。
在省内条件许可的情况下,鼓励和支持更多的认证者参加第二轮认证。CSP-J/S的J组入门级和S组提高级两组第一轮进入第二轮的比例分别不低于第一轮参加人数的20%(含)。
第二轮认证考察重点:
第二轮认证为上机编程,主要测试选手算法设计编程能力。不参加第一轮认证的选手不具有参加第二轮认证的资格。
▍第一轮认证试题组成
第一轮认证在10月份第三个星期六进行,时间为2小时,内容为笔试或机试,满分100分。
试题由三部分组成:
① 选择题(共15题,每题2分,共计30分)
提高组的前10道题为单选题,后10道题为不定项选择题(只有全部选对才得分,否则不得分);普及组的前15道题都是单选题。
② 程序阅读理解题(共3题,共计40分)
题目给出一段程序(不一定有关于程序功能的说明),考生通过阅读理解该段程序进行答题,分为选择题和判断题。
③ 程序完善题(共3题,共计30分)
题目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句或语句的一部分并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,选择对应答案 。三题皆为选择题。
注意 :
在2019年CSP-J/S认证中,部分省份以机试方式认证,其他为笔试。明年起全部采用机试,第二轮认证均为机试。
▍第二轮认证试题组成:
复赛在11月份第三个星期六和星期日进行,复赛的题型和考试形式全部为上机编程题。(以下为2019年题型)
① 普及组复赛:时间为3小时,共4道题,每题100分,共计400分。
② 提高组复赛:包括一试和二试,分两天进行。每次测试时间为3小时,有3道题,每题100分。选手的总分为两次测试的分数的总和,最高600分。
每一试题包括:题目、问题描述、输入输出要求、样例数据(部分题目有样例的说明)。测试时,测试程序为每道题提供了10-20组测试数据,考生程序每答对一组得5-10分,累计分即为该道题的得分。