Tanchiki in Pascal:90 年代如何教孩子们编程以及其中存在哪些问题

关于 90 年代学校“计算机科学”的一些情况,以及为什么当时所有程序员都是自学成才的。

Tanchiki in Pascal:90 年代如何教孩子们编程以及其中存在哪些问题

教孩子们编程什么

90年代初,莫斯科学校开始有选择地开设计算机课程。 房间的窗户上立即装上了铁栏和厚重的铁皮门。 不知从什么地方出现了一位计算机科学老师(他看起来像是除了主任之外最重要的同志),他的主要任务是确保没有人碰任何东西。 什么都没有。 甚至前门。
在教室里,人们最常见的是 BK-0010(各种型号)和 BK-0011M 系统。

Tanchiki in Pascal:90 年代如何教孩子们编程以及其中存在哪些问题
拍的照片

孩子们被告知一般结构,以及大约十几个基本命令,以便他们可以在屏幕上画线和圆圈。 对于初中生来说,这可能就足够了。

保存自己的创作(程序)存在一些问题。 大多数情况下,使用单通道控制器的计算机被组合成具有“公共总线”拓扑和传输速度为 57600 波特的网络。 通常,只有一个磁盘驱动器,并且经常出现问题。 有时可以,有时不行,有时网络冻结,有时软盘无法读取。

然后我随身携带了这个容量为 360 kB 的作品。

Tanchiki in Pascal:90 年代如何教孩子们编程以及其中存在哪些问题

我再次完成我的计划的可能性是 50-70%。

然而,所有这些关于 BC 计算机的故事的主要问题是无休止的冻结。

这可能随时发生,无论是键入代码还是执行程序。 系统冻结意味着你白白浪费了 45 分钟,因为…… 我必须把所有的事情都重新做一遍,但剩下的课时已经不够了。

接近1993年,一些学校和中学出现了拥有286辆汽车的普通班级,有的地方甚至有XNUMX卢布。 就编程语言而言,有两种选择:“BASIC”结束,“Turbo Pascal”开始。

使用“坦克”示例在“Turbo Pascal”中进行编程

使用 Pascal,孩子们被教导如何构建循环、绘制各种函数以及使用数组。 在我“生活”了一段时间的物理和数学学院,每周有一对夫妇被分配到计算机科学。 这个无聊的地方已经呆了两年了。 当然,我想做一些比在屏幕上显示数组或某种正弦曲线的值更严肃的事情。

坦克

《Battle City》是 NES 克隆游戏机(Dendy 等)上最受欢迎的游戏之一。

Tanchiki in Pascal:90 年代如何教孩子们编程以及其中存在哪些问题

1996年,8位机的流行已经过去,它们早已在壁橱里积满了灰尘,对我来说,为PC制作一个大型克隆《坦克》似乎很酷。 下面讲述的是当时如何在 Pascal 上用图形、鼠标和声音写东西时需要躲避。

Tanchiki in Pascal:90 年代如何教孩子们编程以及其中存在哪些问题

你只能画棍子和圆圈

让我们从图形开始。

Tanchiki in Pascal:90 年代如何教孩子们编程以及其中存在哪些问题

在其基本版本中,Pascal 允许您绘制一些形状、绘画并确定点的颜色。 Graph 模块中最先进的程序是 GetImage 和 PutImage,它们使我们更接近精灵。 在他们的帮助下,可以将屏幕的一部分捕获到先前保留的内存区域中,然后将这一部分用作位图图像。 换句话说,如果你想重用屏幕上的某些元素或图像,你首先绘制它们,将它们复制到内存中,擦除屏幕,绘制下一个,依此类推,直到在内存中创建所需的库。 由于一切都发生得很快,用户不会注意到这些技巧。

第一个使用精灵的模块是地图编辑器。

Tanchiki in Pascal:90 年代如何教孩子们编程以及其中存在哪些问题

它有一个明显的竞争环境。 单击鼠标会弹出一个菜单,您可以在其中选择四个障碍选项之一。 说到鼠标...

鼠标已经是90年代末了

当然,每个人都有鼠标,但直到 90 年代中期,它们仅在 Windows 3.11、图形包和少量游戏中使用。 《狼》和《毁灭战士》仅用键盘演奏。 而且在DOS环境下鼠标并不是特别需要。 因此,Borland甚至没有将鼠标模块包含在标准包中。 你得通过熟人去找他,他们都举手喊道:“你要他做什么?”

然而,找到一个轮询鼠标的模块只是成功的一半。 为了用鼠标单击屏幕上的按钮,必须绘制它们。 此外,有两个版本(按下和未按下)。 未按下的按钮顶部有浅色,下方有阴影。 当按下时,情况正好相反。 然后在屏幕上画三遍(不按下,按下,然后再不按下)。 另外,不要忘记设置显示延迟并隐藏光标。

Tanchiki in Pascal:90 年代如何教孩子们编程以及其中存在哪些问题

例如,在代码中处理主菜单如下所示:

Tanchiki in Pascal:90 年代如何教孩子们编程以及其中存在哪些问题

声音 – 仅 PC 扬声器

一个有声音的独立故事。 九十年代初,Sound Blaster 克隆版刚刚准备好凯旋,大多数应用程序只能与内置扬声器配合使用。 其最大功能是仅同时再现一种音调。 这正是 Turbo Pascal 允许您做的事情。 通过声音程序,可以发出不同频率的“吱吱声”,这对于枪声和爆炸声来说已经足够了,但对于当时流行的音乐屏保来说,这并不合适。 结果,找到了一个非常狡猾的解决方案:在软件自己的存档中,发现了一个“exe文件”,是从某个BBS上下载过的。 他可以创造奇迹 - 通过 PC 扬声器播放未压缩的 wavs,并且他是通过命令行完成的,并且没有实际的界面。 所需要的只是通过 Pascal exec 过程调用它并确保该构造不会崩溃。

结果,屏幕保护程序上出现了杀手音乐,但有趣的事情发生了。 1996 年,我在 Pentium 75 上安装了一个系统,最高可达 90。一切运行良好。 在帕斯卡第二学期为我们安置的大学里,教室里有陈旧的“三卢布”。 经老师同意,我把这些坦克带到了第二堂课,以便进行测试,不再去那里。 因此,发射后,扬声器中发出了夹杂着咕噜声的巨大轰鸣声。 一般来说,33兆赫兹DX“三卢布卡”被证明无法正确旋转相同的“可执行文件”。 但除此之外一切都很好。 当然,不包括缓慢的键盘轮询,它破坏了整个游戏玩法,无论 PC 性能如何。

但主要问题不在 Pascal

根据我的理解,“坦克”是在没有装配插入件的情况下可以从 Turbo Pascal 中挤出的最大量。 最终产品的明显缺点是键盘轮询速度慢和图形渲染速度慢。 极少数的第三方库和模块加剧了这种情况。 一只手的手指就能数过来。

但最让我不安的是学校的教育方式。 当时没有人告诉孩子们其他语言的优点和可能性。 在课堂上,他们几乎立即开始谈论 begin、println 和 if,这将学生锁定在 BASIC-Pascal 范例中。 这两种语言都可以被认为是专门的教育语言。 它们的“战斗”用途很少见。

为什么要教孩子假语言对我来说是个谜。 让它们更加直观。 让 BASIC 的变体到处使用。 但是,无论如何,如果一个人决定将自己的未来与编程联系起来,他就必须从头开始学习其他语言。 那么,为什么不应该给孩子们同样的教育任务,而只是在一个正常的平台(语言)上,让他们能够进一步独立发展呢?

说到任务。 在学校和大学里,它们总是抽象的:计算一些东西,构造一个函数,画一些东西。 我在三所不同的学校学习,而且我们在学院的第一年就有“Pascal”,老师们一次也没有提出任何真正的应用问题。 例如,制作一个笔记本或其他有用的东西。 一切都是牵强的。 当一个人花了几个月的时间解决空洞的问题,然后这些问题就被扔进了垃圾桶……一般来说,人们离开研究所时已经精疲力尽了。

顺便说一句,在同一所大学的第三年,我们在该项目中获得了“加分”。 这看起来是件好事,但人们很累,充满了假象和“训练”任务。 没有人像第一次那样热情。

PS 我在谷歌上搜索了学校计算机科学课程现在教授哪些语言。 一切都和 25 年前一样:Basic、Pascal。 Python 有零星的包含物。

来源: habr.com

添加评论