- 1 -
2021年03月14日。
周日。
这是奶爸进击之旅——CS自修室的第四期更新。
今天可是个好日子啊,<爱你爱一生一世(2021314)>。
不知道各位表白了没有?
反正我是给老婆发了个小小的红包,表示了自己对她爱意。
可老婆不解,发问:为什么有红包?
我只道一句“这是你的睡后收入”,便扬长而去。
留下一团熊熊烈火在空气中独自燃烧、蔓延。
如果不出意外,这很可能是奶爸的最后一条推文了吧。
善哉善哉!
- 2 -
上期学习了什么是算法,并总结了如何将算法翻译为可阅读的伪代码。
本期,则要进一步深入,学习将伪代码转化为实际代码。
在CS50中,David在教授如何将伪代码转化为实际代码时,中间还介绍了一个非常有趣的代码学习工具——那就是Scratch。
Scratch是什么呢?
它是麻省理工学院面对儿童或青少年所开发的图形、视觉化编程工具。
通过涂鸦、录音、图片等多种形式学习如何建立程序,画面非常生动有趣,几乎所有孩子都会一眼喜欢上这个软件,从而建立起学习编程的欲望。
更重要的是,它是完全免费的,任何人都可以通过使用它学习编程最基础的概念。
如果大家想要学习编程,又毫无编程经验,也不想一开始面对枯燥的代码,大可好好利用这款儿童教育工具。
From Scratch,就像它的名字一样——从头开始,把自己设想成一个学龄的儿童,怀揣着好奇心,去好好操作一下这一个工具,说不定会更加热爱编程、更有学习动力呢。
只要你动动鼠标,拖拽你想设定的指令,就会呈现出非常惊奇的程序运行过程,非常适合初学者学习和使用。
然后再通过进一步的学习,将动态的图形操作转化为实际代码,会更加容易理解和上手。
这里,我就不多说Scratch的操作了,大家自己去试一试、玩一玩也就能够深有体会了,我则直接跳到转化实际代码的步骤了。
附上网址:scratch.mit.edu
- 3 -
根据CS50,最先学的是C语言。
如果你从未学过任何编程语言,突然看到上图上一连串的字母,一定会惊呼,这是什么跟什么呀?
但其实这是C语言中非常简单的一段代码,表示的是几乎学习任何编程语言都会做的同样的一件事情,那就是打印这句话:hello, world。
也就是说,将来学习任何一种编程语言的第一堂课,都会是打印“hello, world”,这是一条非常简单又非常经典的程序。
至于为什么?
那得追溯到1972年,由贝尔实验室在最初的B语言中初次使用,而后编写C语言时延续了这一句式,从此“hello, world”成为了惯例,每一个编程语言学习的第一个范例,都是它。
它不仅是计算机程序界的一个传统,同时也可以帮我们检测编译器是否能够正常编译。
介绍这一串代码的时候,得先引入一个编译工具——CS50 IDE(ide.cs50.io)。
IDE指集成开发环境,是用于提供程序开发环境的应用程序。
而CS50 IDE则是CS50自己开发的基于Web的编程环境,也是任何人都可以使用的一款工具,让你可以直接打开网站就可以进行编程的操作,接下来的学习和总结,都会用到它,以下就是它的基本用户界面。
上半部分为编写器——即写代码的地方,下半部分为执行终端——即程序执行的地方。
将上述代码写入CS50 IDE中:
任何一个代码编辑器都会有这么一个功能,就是语法高亮,它会将编程语言中各种不一样的函数、方法等,以不同颜色显示出来,让程序员能更加直观地阅读自己或他人写的代码。
当然,目前我们暂时不用去管这些不同颜色的语法究竟是什么,我们只要知道这一串代码的作用是打印一句话,就是——hello,world。
但事实上,代码也是人类阅读的语言,而不是计算机阅读的语言,计算机阅读的语言始终不变,永远都是零和一的组合。
那么,如何让计算机能够理解代码语言呢?
那就是编译器的作用了。
编译器将语言代码进行编译转化为计算机可理解的机器代码(零和一),从而使得计算机可以执行代码上的命令。
执行编译的指令,在不同的编译器中是不同的,在CS50 IDE中,执行编译指令为make,如上图所示,hello.c是该C语言代码的文件名,在终端输入make hello则意味着对hello.c文件执行编译命令,从而使计算机可以调用该程序。
通俗点可以用保存来表示,然后才可以执行文件,编译成功后所出现的一连串乱七八糟的字母,可以暂时忽略,只要理解为程序编译很成功,没有出现任何红色警告来提示你某种错误就可以了。
而接下来的指令 ./hello 则是表示执行hello.c这个代码文件。
最后,程序成功运行,打印出了‘hello,world’字样。
是不是非常简单?
这也是为什么会将Hello world程序作为每个语言学习的第一范例了,它的迷人之处就在于它非常简单,即便没有任何编程基础,也能够轻易地理解,而且它又带有一个程序语言鲜明的特色,使你可以很快地了解这种语言。
当它被操作执行成功的时候,又会让学习者体会到第一份成功的喜悦,推动学习者持续前进。
好了,如果你也亲手操作执行了这一个程序,请保持这份成功的喜悦,等待下一期的总结介绍。
下期将会总结更多关于C语言的语法知识。
以上,就是本期CS自修室。
01010100 01101000 01100001 01101110 01101011 01111001 01101111 01110101 00100001
——我就是可可奶爸,一个平平无奇的全职奶爸。
我只是一个平平无奇的全职奶爸,不敢指导你什么,只想和你一起共同成长。
关注公号:Irene_Daddy 【进击的可可奶爸】
本号的更新内容:
周一,马拉松幻视:以马拉松为目标,每周跑步总结。
周三,英语屋:总结学习时收获的英语口语表达,以及一些英文的学习方法。
周五:向往的N2:以考取日语N2为目标,每周学习总结。
周日:CS自修室:自学CS的每周总结。
还有不定时的更新奶爸的日常:读书、观影的一些碎碎念,偶尔的秀恩爱撒狗粮,不时的亲子活动等……