Alan Kay: Bilgisayar Bilimi 101 dersini nasıl öğretirdim

"Üniversiteye gitmenin nedenlerinden biri, basit mesleki eğitimin ötesine geçmek ve bunun yerine daha derin fikirleri kavramaktır."

Alan Kay: Bilgisayar Bilimi 101 dersini nasıl öğretirdim

Bu soru üzerinde biraz düşünelim. Birkaç yıl önce Bilgisayar Bilimleri bölümleri beni birçok üniversitede ders vermem için davet etti. Neredeyse şans eseri, lisans öğrencileri, yüksek lisans öğrencileri ve profesörlerden oluşan ilk dinleyicilerime "Bilgisayar Bilimi" tanımlarını sordum. Herkes ancak bir mühendislik tanımı verebilirdi. Bunu her yeni yerde yaptım ve her yerde benzer sonuçlar elde edildi.

Bir diğer soru ise şuydu: “Douglas Engelbart kimdir?” Birkaç kişi "Bilgisayar faresiyle ilgili bir şey değil miydi?" diye sordu. (ve bu benim için çok hayal kırıklığı yarattı, çünkü bilimsel topluluğum bu sorunun cevabının iki veya üç fare tıklamasıyla mümkün olmasını sağlamak için çok çaba harcadı ve Engelbart'ın gerçekten bilgisayar faresiyle bir ilgisi olduğuna ikna oldu) .

Sorunun bir kısmı merak eksikliğinden, kısmen öğrenmeyle ilgili olmayan kişisel hedeflerin darlığından, kısmen de bu bilimin ne olduğunun anlaşılmamasından vb. kaynaklanıyordu.

Birkaç yıldır California Üniversitesi'nin bilgisayar bilimleri bölümünde yarı zamanlı çalışıyorum (Aslında profesörüm ama bölüm toplantılarına gitmek zorunda değilim). Zaman zaman ders veriyorum, bazen de birinci sınıf öğrencilerine. Yıllar geçtikçe, Bilgisayar Bilimlerine olan ilgi zaten düşük düzeydeydi, önemli ölçüde azaldı (ancak popülerlik düzeyi de arttı; çünkü bilgisayar, kod yazabilir ve üst düzey birinden sertifika alabilirseniz, iyi maaşlı bir işe giden bir yol olarak görülüyor.) 10 okul). Buna göre, şimdiye kadar tek bir öğrenci Kaliforniya Üniversitesi'ndeki birinci dilin C++ olduğundan şikayet etmedi!

Bana öyle geliyor ki, "Bilgisayar" ve "Bilim" kelimelerinin her ikisinin de anlamları, kulağa hoş gelse de modası geçmiş yeni bir terimin (kot pantolonun üzerindeki bir tür etiket) yaratılması için zayıf, devasa kavramlar tarafından yok edildiği bir durumla karşı karşıyayız. oldukça boş. Benzer şekilde yok edilen ilgili bir terim de "programlama" ve "mühendislik" gibi en dahiyane fikirleri kullanmayan, ancak bunları basitçe birleştiren "yazılım mühendisliği"dir (bu, altmışlı yıllarda kasıtlı olarak yapılmıştır. türetilen terim).

Aslında üniversiteye gitmenin nedenlerinden biri, basit mesleki eğitimin ötesine geçmek ve bunun yerine daha derin fikirleri kavramaktır. Bir uzmanlığa girişte, mümkünse örnekler aracılığıyla öğrencilerin gerçek hayattaki problemlerle ilgilenmesini ve alan için gerçekten neyin ilginç, önemli ve merkezi olduğunu anlamaya çalışmasının denenmesi bana oldukça mantıklı geliyor.

Birinci sınıf öğrencileri, başka bir cetvelin üstündeki cetvelin nasıl bir toplama makinesine dönüştüğünü ve bu sayede 5. sınıftaki çocukları kesirlerde toplama konusunda yenebileceklerini gördüklerinde sevinirler. Daha sonra gelişmiş toplama makinelerinin geliştirilmesinde yer almaktan mutluluk duyacaklardır. Düşünmemize yardımcı olan fiziksel ve zihinsel bir araç olan gerçek bir bilgisayara dokundular. Sayıları temsil etmenin gerçekten etkili bir yolunu öğrendiler; okullarda öğretilenlerden daha etkili!

"Ekleme"nin "biriktirme" anlamına geldiği sağduyulu fikirlerini, güçlü yeni özelliklerle benzer bir şeyle birleştirmeyi başardılar. Bunu çeşitli problemleri çözebilecek şekilde programladılar.

Onu da genişlettiler. Ve benzeri. Bu dijital bir bilgisayar değil. Ve bu hafızaya alınmış bir programa sahip bir bilgisayar değil. Ama bu bir bilgisayarın özüdür. aynen antikythera mekanizması - Bu genellikle bilgisayarın ve bilgi işlemin özüdür.

Alan Kay: Bilgisayar Bilimi 101 dersini nasıl öğretirdim

Antikythera mekanizması

İşler kontrolden çıkmadan ve soyutlamalar içinde kaybolmadan önce ne kadar ileri gidebiliriz ve ne kadar yapabiliriz? Her zaman karakterizasyona taraf oldum Alan Perlis - "Bilgisayar Bilimi" terimini icat etmiş olabilecek ilk Turing Ödülü sahibi - 60'larda şunu söyleyen kişi: "Bilgisayar Bilimi süreçlerin bilimidir." Tüm süreçler.

Quora'nın iyiliği için, bunu daha da ileri götürmeye ya da dini dogmaya dönüştürmeye çalışmayalım. Bu fikri mutlu bir şekilde kullanalım Ala Perlisaalanımız hakkında daha iyi düşünmek. Ve özellikle bunun nasıl öğretileceği konusunda. Şimdi "bilim"in modern anlamına bakmamız gerekiyor ve Perlis bunun eski anlamlarla ("bilgi toplanması" gibi) ve kullanımlarla ("kütüphane bilimi" ve hatta "sosyal bilim" gibi) seyreltilmemesi gerektiğinden oldukça emindi. bilimler")")). "Bilim" yoluyla, bir olguyu göstermeye, "takip etmeye" ve tahmin etmeye çalışan modeller/haritalar yaratarak bir olguyu anlamaya çalıştı.

Alan Kay: Bilgisayar Bilimi 101 dersini nasıl öğretirdim

Maxwell denklemleri ve diğerlerinin yaptığı gibi, en iyi haritaların ve modellerin genellikle bir tişörte nasıl sığabileceği hakkında birkaç röportaj verdim. Benzetme şu ki, çoğu köprü insan yapımı olmasına rağmen bir "köprü bilimi" var. Ancak bir köprü bir kez inşa edildiğinde, bilim adamlarının inceleyebileceği olguları temsil eder, köprüler birçok türde model oluşturmak için kullanılabilir ve kapsamlı ve kullanışlı "köprü teorileri" oluşturulabilir. Eğlenceli olan, daha sonra yeni köprüler tasarlayıp inşa edebilmenizdir (büyük ve önemli sorunları çözmek için bilim adamlarının ve mühendislerin birlikte çalışmasından daha eğlenceli bir şey olmadığını daha önce belirtmiştim!)

Alan Kay: Bilgisayar Bilimi 101 dersini nasıl öğretirdim

Turing Ödülü ve Nobel Ödülü sahibi Herbert Simon, bunların hepsini "yapay olanın bilimi" olarak adlandırdı (ve aynı başlıkta mükemmel bir kitap yazdı).

Alan Kay: Bilgisayar Bilimi 101 dersini nasıl öğretirdim

Sana bir örnek vereyim. 50'li yıllarda şirketler ve üniversiteler hafıza bilgisayarları ürettiler ve onları programlamaya başladılar - ve Fortran'ın 1956'da ortaya çıktığı özel bir an vardı - bu ilk yüksek seviyeli dil değildi ama belki de o kadar iyi yapılmış ilk dildi ki daha önce yalnızca makine dilinde yapılanlar da dahil olmak üzere birçok farklı alanda kullanıldı.

Bütün bunlar “olgulara” yol açtı.

Alan Kay: Bilgisayar Bilimi 101 dersini nasıl öğretirdim

John McCarthy

Lisp'in geçmişi daha karmaşıktır, ancak John McCarthy "matematiksel hesaplama teorisi" bulmaya ilgi duymaya başladı ve her şeyin mükemmel çalışmasını sağlamaya kararlıydı. Lisp'i yorumlayan değerlendirme fonksiyonu bir tişörte rahatlıkla sığabilir! Bir “programlama sistemi” ile karşılaştırıldığında bu önemsizdir. Daha da önemlisi, bu "hesaplama teorisi" Fortran'dan daha güçlü bir kavramdı! Bu en iyi köprü fikriydi!

Lisp'in minyatür doğası, tüm programlama fikrinin birkaç tıklamayla daha derin bir düzeyde yakalanmasına ve devasa eserlere baktığınızda imkansız görünen bir düzeyde düşünülmesine olanak tanır (bunun nedenlerinden biri de budur) bilim adamları neden matematiğin kompakt ve güçlü olmasını seviyorlar). Burada kullanılan matematik yeni matematiktir çünkü "önce" ve "sonra" gibi kavramlara izin verir ve bu da hem işlevsel bağımlılığın hem de mantıksal düşünce akışının korunmasına, aynı zamanda konum ve geçişe izin veren "değişken mantık"a yol açar. zamanın. (Durumsal programlamanın acımasız dünyasında bu hala anlaşılamamıştır).

Kendi teorisini temsil edebilen güçlü bir programlama dili ve üst dil olarak Lisp, gerçek bilgisayar biliminin bir örneğidir. Bunu ve benzeri şeyleri öğrenirseniz, Fortran'da veya onun modern eşdeğerlerinde programlamayı öğrenmiş olmanıza kıyasla daha derin düşünebilecek ve kendi kaderinizden daha fazla sorumlu olabileceksiniz (... böylece programcılara daha yakın olabilirsiniz! ).

Bilgi işlemde ihtiyaç duyulan özel tasarım türleri hakkında çok daha fazlasını öğreneceksiniz (örneğin, bilgi işlemin çoğu zaman bilgi işlem ortamının dışına çıkmayı gerektirdiği durumlarda bu genellikle takdir edilmez: depolanan yazılımsal bilgi işlemin özel özelliklerinden biri, bunun yalnızca programın materyali değil, tamamen yeni bir bilgisayarın materyali).

Perlis'in tanımını seçmenin bir başka nedeni de, genel olarak bilişimin, algoritmalardan, "veri yapılarından" ve hatta programlamanın kendisinden çok, çok çeşitli sistemlerin yaratılmasıyla ilgilenmesidir. Örneğin, bilgisayar bir sistemdir, bilgi işlem bir sistemdir, yerel bir ağ ve İnternet bir sistemdir ve çoğu program olduğundan daha iyi sistemler olmalıdır (50'li yıllardan kalma eski programlama tarzı, programlamanın yeni olması gerektiği görünene kadar sürdü) bunun gibi - hiçbir şey gerçeklerden bu kadar uzak olamaz).

İnternet iyi bir örnektir; günümüzün çoğu yazılımının aksine, İnternet'in herhangi bir şeyi düzeltmek veya iyileştirmek için durdurulmasına gerek yoktur; bizim amacımız gereği, çoğu insanın bir bilgisayar sistemi olarak düşündüğünden çok, biyolojik bir sisteme benzer. Ve bugün mevcut olan neredeyse tüm yazılım sistemlerinden çok daha ölçeklenebilir ve güvenilirdir. Acemi programcılara daha az güçlü kavramları öğretmeden önce bu gerçekten düşünmeye değer!

Dolayısıyla, birinci yıl Bilgisayar Bilimleri dersinde yapmamız gereken şey, öğrencilerin başlangıçta tam olarak ne yapıyor olabileceğini hesaba katmak ve daha sonra gerçekten önemli olana ulaşmalarına yardımcı olmak için onların "bilişsel yükü" dahilinde kalmaya çalışmaktır. "Gerçek kalmak" ve entelektüel açıdan dürüst ve yeni başlayanlar için uygun yollar bulmak önemlidir. (Lütfen kötü fikirleri sırf biraz daha basit göründükleri için öğretmeyin; birçok kötü fikir aslında daha basittir!).

Öğrenciler burada tartıştığım önemli özelliklerin çoğuna sahip bir şey yaratarak başlamalıdır. Dinamik olarak etkileşime giren birçok parçadan oluşan bir sistem olmalıdır. Hangi programlama dilini kullanacağınıza karar vermenin iyi bir yolu, birbiriyle etkileşim halinde olan binlerce parçadan oluşan bir şey yapmaktır! Değilse, o zaman bir tane bulmalısınız. Yapabileceğiniz en kötü şey, öğrencileri çok az akıcılığa sahip bir yola sürüklemektir, bu da büyük fikirleri ciddi şekilde sınırlayacaktır. Bu sadece onları öldürüyor ve biz onları öldürmek değil, büyütmek istiyoruz.

GoTo School Hakkında

Alan Kay: Bilgisayar Bilimi 101 dersini nasıl öğretirdim

Kaynak: habr.com

Yorum ekle