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 有零星的包含物。

來源: www.habr.com

添加評論