趣学python编程 (一、计算机发展历史)

未来是高度科技化和智能化的时代。过去不识字的叫“文盲”,如今不懂点计算机知识,则可能是新时代的“文盲”。不论从事什么行业,了解下计算机和编程都是有益的。Python 连续多年占据最受欢迎的编程语言榜首,未来Python有机会成为像英语一样的通用语言。

前言

未来是高度科技化和智能化的时代。不论从事什么行业,了解下计算机和编程都是有益的。Python 连续多年占据最受欢迎的编程语言榜首,随着 Python 语言在全世界的广泛学习和应用,未来Python有机会成为像英语一样的通用语言。

回想起在大学时的一次课,老师给我们讲傅里叶变换,听的我们云里雾里的很是枯燥乏味。我举手问老师为什么要傅里叶变换?它有什么用?老师说我的问题很好,很少有学生问,所以就没有多讲。于是给我们讲了下傅里叶变换的意义和用途,我们听的都很认真。再比如你问下现在毕业的大学生,有多少人知道线性代数是做什么用的?矩阵变换有什么意义?

由此想到我的教育,一味的灌输知识,少了对知识背景的介绍和激发学生对知识的热爱和好奇心。我们应当更多地介绍知识的背景,让学生了解知识的起源、发展历程以及应用价值,这样不仅能帮助学生更好地理解知识,还能激发他们的学习兴趣和主动性。学生需要了解知识的实际应用,并学会如何将所学知识应用到现实生活中,这样才能更好地巩固知识并提高解决问题的能力。

我们的教育还缺乏对批判性思维的引导和培养。学生需要学会独立思考、分析问题,对所学知识进行批判性思考,这样才能更好地掌握知识并解决实际问题。教育者应该注重培养学生的批判性思维,引导他们学会质疑、分析、论证和评估,从而更好地应对复杂多变的世界。

目前市面上的一些python教程也大都要么是纯粹的知识点罗列,要么是面向小孩子的很琐碎。于是相到自己根据对这一方面的理解,输出一些文章,并选用 Python作为对自家娃计算机和编程方面的入门。选择python,因为它具有三个特点,是其它语言无法比拟的。

  1. 语法简单,最接近自然语言,学习成本最低,可以让最多的人群了解和掌握。
  2. 功能库安装简单,别人写的功能库快速即插即用,可以让大量的价值被方便的交换。
  3. 一次编写,到处运行,不受平台的限制,使得价值可以体现在更主流的应用场景。

使用python来进行编程之前,首先需要先让孩子们了解下什么是计算机,什么是编程。先从整体上去了解下计算机相关的基础知识,考虑到孩子们的认知,先脑补下背景,不能一上来就是敲代码。

什么是计算机?

计算机俗称电脑。它是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。它由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。计算机可以用来进行数值计算、逻辑计算、存储记忆、自动化控制等功能。它是现代信息社会的基础之一,已经渗透到人类生产、科研、教育、娱乐等各个领域,成为人们生活、工作中不可缺少的工具。

今天我们将一起探索计算机的基础知识和常识,通常涵盖以下几方面的内容:

一、计算机的基本组成部分

计算机是由许多部分组成的,每个部分都有自己的功能。存储器是计算机的记忆系统,它能够存储数据和程序。运算器是计算机的核心部分,它可以进行各种数学运算。控制器是计算机的指挥中心,它控制着计算机的所有操作。输入设备让你可以向计算机输入数据,比如键盘、鼠标和触摸屏等。而输出设备则显示或输出计算机处理的结果,比如显示器和打印机。

二、计算机如何工作

计算机的工作过程可以概括为输入、处理和输出三个步骤。首先,你通过输入设备向计算机输入指令和数据。然后,计算机的运算器会进行各种计算,处理这些数据。最后,计算结果会通过输出设备显示出来。这个过程非常快速,每秒钟计算机可以进行数百万次计算。

三、什么是程序?

程序是一系列计算机指令的集合,它告诉计算机应该做什么。你可以把程序想象成一本书,每一行都是一个指令,告诉计算机应该做什么。编写程序的过程就是设计一系列指令,让计算机能够按照这些指令完成任务。

四、什么是互联网?

互联网是一个连接全球数亿台计算机的网络。它可以让人们在不同地方共享信息、交流想法。你可以通过互联网访问各种各样的网站、观看视频、与朋友聊天、甚至在虚拟世界里玩游戏。互联网让我们的生活变得更加丰富多彩。

五、未来的计算机是什么样的?

未来的计算机将会更加智能、更加人性化。它们可能会拥有更强大的处理能力、更丰富的功能和更友好的用户界面。同时,它们也可能会更加环保和可持续。未来计算机的发展将会改变我们的生活和工作方式,让我们更加便捷地获取信息、完成任务。

计算机是我们生活中不可或缺的一部分。它为我们提供了无尽的可能性和机会。通过了解计算机的基础知识和常识,我们可以更好地利用它来提高我们的学习效率和生活质量。

关于计算机历史的电影

兴趣是最好的老师。学习一样新东西,兴趣是最好的老师,兴趣能最大激发人内在的自驱力和学习力。以下分享些计算机相关的电影,可以推荐给孩子们观看,增加对计算机历史的了解和兴趣。里面的一些伟人的事迹,是我们学习的榜样。

《乔布斯》

这是一部关于苹果公司联合创始人史蒂夫·乔布斯的传记电影。影片从乔布斯的大学退学开始,描述了他专注于自我挖掘与探索,以及与志同道合的好友沃兹尼亚克共同创建苹果电脑公司的经历。影片还展示了乔布斯在经营苹果公司期间的高潮与低谷,以及他离开苹果公司后创立NeXT公司和回归苹果公司的经历。

除了电影《乔布斯》外,还有一些与计算机相关历史的影片。例如:

《硅谷传奇》

这部电影讲述了苹果公司和微软公司的发展史,其中涉及到乔布斯和盖茨等科技大佬的故事.

《书呆子的胜利:意外帝国崛起》

这部纪录片讲述了程序员先驱们和计算机的传奇故事,包括比尔·盖茨、保罗·艾伦、史蒂夫·乔布斯、沃兹尼亚克等科技大佬的出镜。

《模仿游戏》:这部电影讲述了阿兰-图灵的一生,阿兰-图灵是英国的一位数学家和密码学家,他在二战期间破解了德国的密码机“英格玛”,为盟军的胜利做出了贡献。

《Track Down》 以及 《Freedom Downtime》

如果你对黑客感兴趣,《Takedown》和《Freedom Downtime》一定要看。这两部电影讲述了计算机黑客Kevin Mitnick的所作所为,而Kevin Mitnick曾被美国司法部称为“美国历史上被通缉的头号计算机罪犯”,他的名字一度被认为是“黑客”的同义词。

《操作系统革命》

在微软垄断下,不少先锋人物站出来反抗,努力建立新的操作系统——Linux,任何人都可以自由地使用。为了记录这些人的艰苦历程,这才有了这部纪录片。

《欢迎使用Macintosh》

这部电影讲述了苹果如何通过自己的电脑产品改变世界的故事。有趣的是,电影的名字来源于Mac早期机型开机问候语-Welcome to Macintosh。

《社交网络》

《社交网络》以社交网络Facebook及其创始人马克-扎克伯格为原型,好评如潮,获得多项大奖。有人说这是一部关于天才如何走向成功的传记,有人说影片的剪辑和节奏把握的好,一点也不沉闷,没有累赘。

通过这些影片可以帮助观众了解计算机的历史和科技大佬们的传奇故事,同时也可以激发孩子们对计算机的兴趣和热情。

计算机发展史

计算机的发展史

我们所使用的计算工具是随着生产的发展和社会的进步,从简单到复杂、从低级到高级的发展过程,计算工具相继出现了算盘、计算尺、手摇机械计算机、电动机械计算机等。

1946年2月,在美国宾西法尼亚大学世界上第一台电子数字计算机ENIAC(Electronic Numerical Integrator And Calculator——电子数值积分和计算机)诞生了,它标志着计算机时代的到来。这台计算机共用了18000多个电子管组成,占地170m2,总重量为30t,耗电150kw/h,运算速度达5000次/s,是计算机发展史上的第一个里程碑。

1942年在宾夕法尼亚大学任教的莫克利提出了用电子管组成计算机的设想,这一方案得到了美国陆军弹道研究所高尔斯特丹(Goldstine)的关注。当时正值第二次世界大战之际,新武器研制中的弹道问题涉及许多复杂的计算,单靠手工计算已远远满足不了要求,急需自动计算的机器。于是在美国陆军部的资助下,1943年开始了ENIAC的研制,并于1946年完成。当时它的功能确实出类拔萃,例如它可以在一秒钟内进行5000次加法运算,3毫秒便可进行一次乘法运算,与手工计算相比速度要大大加快,60秒钟射程的弹道计算时间由原来的20分钟缩短到30秒。但它也明显存在着缺点。它体积庞大,机器中约有18800只电子管,1500个继电器,70000只电阻及其他各类电气元件,运行时耗电量很大。另外,它的存储容量很小,只能存20个字长为10位的十进位数,而且是用线路连接的方法来编排程序,因此每次解题都要靠人工改接连线,准备时间大大超过实际计算时间。

尽管如此,ENIAC的研制成功还是为以后计算机科学的发展提供了契机,而每克服它的一个缺点,都对计算机的发展带来很大影响,其中影响最大的要算是“程序存储”方式的采用。将程序存储方式的设想确立为体系的是美国数学家冯·诺依曼(Von Neumann),其思想是:计算机中设置存储器,将符号化的计算步骤存放在存储器中,然后依次取出存储的内容进行译码,并按照译码结果进行计算,从而实现计算机工作的自动化。

电子计算机在短短50年里经过了电子管、晶体管、集成电路(IC)和超大规模集成电路(VLSI)四个阶段的发展。计算机体积越来越小,功能越来越强,价格越来越低,应用越来越广泛,目前正朝着第五代(智能化)发展。

世界上第一位给计算机写程序的是Ada Lovelace。在那个时代,计算机还没有被广泛使用也不够先进,哪有什么高级编程语言啊,程序是通过打孔的方式输入计算机的。程序员会使用特殊的打孔机来将程序转换为计算机可以识别的二进制代码。这些孔会被打在一张纸上,然后这张纸会被放入计算机中进行处理。

虽然用纸袋写程序听起来不太方便,但在那个时代,这也是没有办法,高级语言都还没有诞生,只能写0101这种机器能理解的原始语了。程序员需要将程序写在纸上,然后将它们提交给计算机操作员进行输入和处理。那时候的程序通常需要经过多次修改和测试才能正确运行。

二、计算机发展经过的四个时代

年代

元件

第一代

1946-1958

电子管

第二代

1959-1964

晶体管

第三代

1965-1970

集成电路

第四代

1971-至今

大规模集成电路

第一代:电子管计算机时代(1946--1956) 

介绍:这代计算机因选用整流管而体积大,耗电量多,计算效率低,存储量小,可靠性差;

主要特点:采用电子管作为计算机的主要逻辑部件体积大,耗电量大,寿命短,成本高。电子管如图所示。 这一时期的典型机器:

国外的:ENIAC 、UNIVAC。

国内的:103、104等。

第二代:晶体管计算机时代(1956--1964) 

介绍:这代计算机比第一代计算机的特性增强了数10倍,手机软件配备逐渐发生,一些高級程序设计语言相继问世,外部设备也由几类提升到数十种。除计算机的应用到外,开始了数据处理方法和工业控制系统等运用。

主要特点:

采用晶体管作为计算机的主要逻辑部件,体积减小,重量减轻,成本下降,能耗降低。晶体管如图所示。这一时期的典型机器:

国外的:IBM7090等,如图所示。

国内的:441B等。

第三代:集成电路计算机时代(1964--1972)

介绍:关键由中、小规模纳税人集成电路构成。其电源电路元器件是在一块几平方电线的处理芯片上集成化了几十个到几十个电子元器件,使计算机的体积和耗电量显着降低,处理速度、存储量、可靠性有很大的提升,拥有电脑操作系统,机型多元化、通用化并和通信技术融合,使计算机运用进到很多科技进步行业。

主要特点: 采用中、小规模集成电路做主要逻辑部件,从而使计算机体积更小,重量更轻,耗电更省,寿命更长,成本更低,运算运算速度有了更大的提高。集成电路如图所示。

这一时期的典型机器:

国外的:IBM-360等。

国内的:709等。

如图,你能想象到初代的苹果电脑长这样吗?

第四代:大规模与超大规模集成电路计算机时代(1972--今)

介绍:规模性集成电路是在一块几平方电线的半导体芯片上可以集成化上一定到十万个电子元器件,促使计算机体积更小,耗电量更少,计算速率提升到每秒钟上百万次,计算机可靠性也进一步提高。

主要特点: 采用大规模、超大规模集成电路作基本逻辑部件,使计算机体积、重量和成本大幅度的降低,运算速度和可靠性大幅度的提高。大规模集成电路如图所示。

这一时期典型机器:

国外:IBM-370等。

国内:银河等。

80年代末期,IBM-PC开始异军突起,面对PC机超高速的处理器、超大的内存、丰富的接口、高分辨率的画质以及各种实用的软件。

现在的PC电脑,有台式机电脑和笔记本电脑两种常见的类型。

什么是编程语言

正式学习编程之前,我们有必要先搞清楚编程语言这个概念。

在我们很小的时候,父母就教我们开口说话,也教我们如何理解别人讲话的意思。经过长时间的熏陶和自我学习,我们在不知不觉中学会了说话,也能听懂其他小朋友说话的意思,于是我们开始用语言与他人交流。

世界上存在许多种语言,包括汉语、英语、日语、俄语等等,每种语言都有固定的格式,比如汉语(中国话),每个汉字代表着不同的意思,我们必须正确的表达,才能让对方理解。例如让父母给你10元零花钱,你会说“爸爸给我10元钱,我要买零食”,如果说“10元爸爸给钱我零食买我要”,父母就会觉得很奇怪,听不懂我们的意思,甚至引来他们的责备。

通过有固定格式和固定词汇的“语言”来与父母沟通,让父母满足你的心愿,从而达到“控制”父母的目的,这就是语言的作用。同样,我们也可以通过“语言”来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言(Programming Language)。

和人类的语言一样,编程语言也有很多种,据不完全统计,全世界大概有 600 多种编程语言,其中比较流行的语言有 20 多种,比如 C语言、C++Java、Python、PHPC#JavaScript 等,这些语言各有千秋,都有自己擅长的方面:

表1:编程语言
编程语言 主要用途
C/C++ C++ 是在C语言的基础上发展起来的,C++ 包含了C语言的所有内容,C语言是C++的一个部分,它们往往混合在一起使用,所以统称为 C/C++。C/C++主要用于 PC软件开发、Linux 开发、游戏开发、单片机和嵌入式系统。
Python Python 主要用于自动化运维、网站开发、数据分析、人工智能、云计算等技术领域,近年来势头强劲,备受开发者青睐。
Java Java 可以用于网站后台开发、Android 开发、PC软件开发,近年来又涉足了大数据领域(这主要归功于 Hadoop 框架的流行)。
PHP PHP 主要用来开发网站后台程序。
C# C# 的实现机制和 Java 类似,目前主要用于 Windows 平台的软件开发,以及少量的网站后台开发。
JavaScript JavaScript 最初只能用于网站前端开发,是前端开发的唯一语言。近年来由于 Node.js 的流行,JavaScript 在网站后台开发中也占有了一席之地,并且在迅速增长。

可以将不同的编程语言比喻成各国语言,为了表达同一个意思,可能使用不同的语句。例如,表达“世界你好”:

  • 汉语:世界你好
  • 英语:Hello World
  • 日语:世界こんにちは

对于编程语言来说,执行同一个操作,也需要使用不同的语句。举个简单的例子,在屏幕上显示 "Hello,world":

  • C语言:printf("Hello,world");
  • PHP:echo "Hello,world";
  • Python:print("Hello,world")

通过例子可以看出,编程语言和人类语言类似,都由直观的词汇组成,我们很容易理解它的意思。比如在 Python 中,我们使用print()让计算机在屏幕上显示文字,print 英文原意为打印、输出的意思,我们能够轻易地理解它;同时,我们还要注意语句格式,把待显示的内容Hello, C语言中文网加上英文状态的引号""放在括号内,这是 Python 语言规定的格式,我们必须这样写。

每一种编程语言都有固定的词汇和格式,学习一门编程语言,本质上就是学习如何使用这些词汇和格式。

总结:编程语言是用来控制计算机的一系列指令(Instruction),它有固定的格式和词汇(不同编程语言的格式和词汇不一样),必须遵守,否则就会出错,达不到我们的目的。习惯上,我们将这一条条指令称为代码,这些代码共同组成一个计算机程序,而用编程语言来编写程序的过程称为编码
表1中提到的编程语言,都是高级计算机语言,设计它们的目的是为了方便程序员理解和使用。但严格意义上来说,计算机只能理解一种非常低级的编程语言,也就是机器语言

举个简单的例子,计算 2 个数的和,机器语言需要控制计算机依次完成以下操作:

  • 将位于内存空间位置在 0x0001 的数加载到 CPU 中;
  • 再把位于内存空间位置在 0x0010 的数也加载到 CPU中;
  • 在 CPU 中,对这 2 个数做求和操作;
  • 将结果存储在位置为 0x0011 的内存空间。

CPU(Central Processing Unit,简称 CPU) 即中央处理器,是计算机的运算和控制核心,相当于计算机的大脑,所有的机器指令都是由 CPU 负责执行的。

可以看到,对 2 个数执行求和操作需要做这么多工作,这还只是笼统地描述,实际上会更加复杂。而使用 Python 这样的高级语言,对 2 个数求和可以直接用 a + b  的形式表示。下面使用 Python 进行演示:

>>> 2+3
5

这种方式虽然轻便快捷,但同时也带来了问题,我们需要设计一种方法,将高级语言翻译成计算机可以执行的机器语言。目前,有两种方法可以实现,分别是编译器解释器

使用编译器将自身转换成机器语言的高级语言,通常称为编译型语言;而使用解释器将自身转换成机器语言的高级语言,称为解释型语言,Python 就是一种解释型编程语言。

Python语言简介

Python 的诞生是极具戏曲性的,据 Guido 自述记载,Python 语言是在圣诞节期间为了打发无聊的时间而开发的,之所以会选择 Python 作为该编程语言的名字,是因为 Guido 是 Monty Python 戏剧团的忠实粉丝。

Python是一种高级编程语言,具有简单易学、代码可读性高、应用广泛等优点。它是由Guido van Rossum于1989年创造,并遵循“优雅明确”的设计哲学。Python的语法清晰、简洁,并且支持面向对象编程、函数式编程等多种编程范式。

以下是Python语言的一些主要特点:

  1. 易于学习:Python的语法清晰简洁,使得它易于理解和编写。对于初学者来说,Python是一个很好的开始学习编程的语言。
  2. 强大的标准库:Python有一个庞大的标准库,提供了许多用于各种任务的模块和函数,例如文件处理、网络编程、数据分析等。
  3. 动态类型:Python是动态类型的语言,这意味着你不需要预先声明变量的类型。这可以使代码更简洁,但也要注意可能的类型相关错误。
  4. 解释型语言:Python是一种解释型语言,这意味着你可以逐行运行代码,而不需要先将其编译为机器语言。这为Python带来了很大的灵活性和可操作性。
  5. 面向对象编程:Python支持面向对象编程,这使得你可以使用类和对象来组织和封装数据和操作。
  6. 函数式编程:Python也支持函数式编程,包括高阶函数和lambda表达式等。
  7. 丰富的第三方库:Python有一个庞大的第三方库生态系统,称为PyPI(Python Package Index)。这些库为Python提供了无尽的可能性,从数据处理、机器学习到Web开发等。
  8. 跨平台:Python可以在多种操作系统中运行,包括Windows、Linux和Mac OS。
  9. 强大的社区支持:Python有一个活跃的开发者和用户社区,提供了大量的资源、教程和学习材料。
  10. 可扩展性:如果需要,你可以使用C或C++等语言编写Python扩展模块,以提高程序的运行效率。

Python被广泛用于网页开发、数据分析、人工智能、科学计算、脚本编写等领域。而且,由于Python的开源性质和广泛的应用,它已经成为当今最受欢迎的编程语言之一。

网络上一直流传着“人生苦短,我用 Python”的说法,此言非虚!

2017 年,浙江省信息技术课程改革方案出台,Python 被纳入浙江省信息技术高考;同年 12 月,山东省在其最新的出版的小学信息技术六年级教材中,也加入了 Python 相关内容。可以看出,Python 逐渐地在中小学生群体中得到普及。

本教程计划面向中小学生,始终贯彻的思想就是零基础学 Python,从零基础开始学起。

其他资源

计算机发展史简介(详细)-CSDN博客

【那些年学过的计算机基础】--计算机发展史(图片版)_电脑的演变过程图片-CSDN博客

Python 3 教程 | 菜鸟教程

电脑学习机简史--第四章 国产电脑学习机崛起 (10) - 哔哩哔哩

猜你喜欢

转载自blog.csdn.net/qq8864/article/details/134443573