← Computers & Automation

The Role of the Digital Computer in the University

B
Bilinmeyen Yazar
1961 · Computers and Automation

Sayısal analiz, mühendisin ve bilim insanının eğitim programına doğal biçimde uyum sağlamışken, bilgisayar programlama kendi başına bunu başaramamıştır. Genellikle programlama, ya seyreltilmiş sayısal analiz, ya kod öğrenimi, ya da bilgisayarların mantıksal tasarımı anlamına gelmiş; bazen de bu üçünün fantastik karışımları ortaya çıkmıştır. Birçok okulda entelektüel içeriği üniversite düzeyine uygun olmaktan o denli yoksun kabul edilir ki, yalnızca zorunluluktan öğretilir; o da ders dışı saatlerde, kredisi, esini ve hatta perspektifi olmayan kısa kurslar halinde.

Bu tür dersler çoğu zaman, örneğin pi için yaklaşık değerler elde etmek amacıyla Simpson kuralının kodlanması gibi, zafer havasında bir kodlama alıştırmasıyla özetlenir. Bu dersler, bilgisayar sanki yalnızca başka bir atölye aracıymış gibi öğretilir.

Bununla birlikte, son üç-dört yılda bazı iktisat bölümleri bilgisayarı araştırma ve eğitim programlarının bir parçası olarak sistematik biçimde kullanmaya başlamıştır. Bu araştırma projelerinin bir kısmı öncelikle veri analizidir; diğerleri bilgisayarı örgütleri, eylemlerini ve politikalarını simüle etmek için kullanır; bazıları ise ekonomik uygulamanın matematiksel modellerini inceler. Modeller çoğu zaman kombinatoriktir. Kalkülüste büyük zorluk yaşayan öğrencilerin, grafiklerle temsil edilen çizelgeleme modellerini kullanabildiğini—ve grafik özelliklerinin değerlerini hesaplayan akıllı algoritmaları akıcı biçimde programladığını—görmek şaşırtıcıdır.

Yönetim Oyunları

Ekonomi eğitimine yönelik en önemli uygulamalardan biri, eğitim aracı olarak yönetim oyununun geliştirilmesidir. Oyunun eğitim sürecine katılması, öğrencinin yönetimdeki karar verme problemlerini takdir etmesini canlandırmıştır.

Elbette pek çok türde yönetim oyunu ve eğitimdeki rolü hakkında farklı görüşler vardır. Programlamada akıcı olan—çünkü öğrenmeleri ve uygulamaları onlar için basitleştirilmiştir—bir öğretim kadrosu, karmaşık bir oyunun ekonomi eğitimi üzerindeki yansımalarını daha açık ve daha temel biçimde görecektir. Bilgisayar öğrenciler için doğal bir araç olarak erişilebilir olduğunda, onu gerçekten güçlü bir eğitim aracı olarak göreceklerdir.

Carnegie yönetim oyunu, marjinal bir laboratuvar alıştırması olmaktan çıkıp yönetim eğitiminin ekseni haline gelmektedir. Oyunun yazarları, uygulama yoluyla aşağıdaki becerileri geliştireceğine inanmaktadır:

  1. Karmaşık ve dağınık bir ortamdan bilgiyi soyutlama, düzenleme ve kullanma yeteneği.
  2. Öngörüde bulunma ve planlama yeteneği.
  3. Genelci ve uzman rollerini birleştirme yeteneği.
  4. Başkalarıyla etkili biçimde çalışma yeteneği.

Oyun önemli ölçüde bilgi aktarımı içerir ve oyuncunun bilgiyi analiz etme yeteneğini keskinleştirir. Zamanla, oyunun egemen olduğu durumdan topladığı verileri besleyebileceği matematiksel modelleri programlayabilir hale gelecektir.

İşleyen bir “oyuncak ev” mevcut olduğunda, öğretim kadrosu, pratik örnekleri atlama korkusu olmaksızın, önemli kuram ve ilişkilerle ilgili bilgeliklerini aktarabilir; bunlar, öğrenci alıştırmalarıyla birleştiğinde, eğitime uygun dengeyi sağlar.

Yukarıdaki kullanım kataloğunun birkaç ortak özelliği vardır. Ekonomi uygulamalarının birçoğu dışında, bu kullanımlar daha önce kullanılan yöntemlerin bilgisayarlara genişletilmesiyle karakterize edilir; ve bunlar, kendi uzmanlık alanlarında eğitimlerinin hayli ilerisine gelmiş ve bu eğitimin büyük bölümünü bilgisayarla temas olmadan almış kişiler tarafından gerçekleştirilir.

Bilgisayarın Kullanımına İlişkin Mevcut Eğitim

Ancak bu yazının tezi şudur: Bilgisayarların programlanması ve kullanılması, eğitimli insanın üniversite müfredatında erken bir yer almayı hak etmektedir. Dahası, böyle bir eğitimin yalnızca erken değil, üniversite süresi boyunca da sıkça yer alması gerekir.

Bugün kullanıcılar bilgisayarı kullanmak üzere nasıl eğitilmektedir? Yöntemler şunları içerir:

(i) Uygulama noktasında öğretim. Bir uygulama ortaya çıktığında, örnek üzerinden öğrenciyi bilgisayar uygulamasını tanımaya ve bilgisayarı bunun için kullanmaya eğitmek. Yöntemlerin genişletilmesi öğrenciye açıkça görünecektir; ancak bilgisayar bakış açısıyla güdülenen kuram ve malzemenin büyük tematik yeniden örgütlenmelerinin öğrenciden kaynaklanması olası değildir.

(ii) Matematiksel olgunluk zamanında öğretim. Bu, bilgisayar uygulamalarında genel yararı olan sayısal teknikler kataloğunu özümsemesine olanak tanır. Bu, sayısal analiz dersinin standart yaklaşımıdır.

(iii) Kendi kendine öğrenme. Öğrenci, ödevlerini bilgisayar olmadan yapamayacağını düşündüğünde öz-eğitim gerçekleşir.

Şunu belirtirim ki:

Yöntem (i), büyük ölçüde—bugün bile—bilgisayarlar konusunda acemi olan öğretim elemanlarına ve herhangi bir makinenin kullanımına ilişkin parça parça eğitimin eksikliklerine bağımlılıktan muzdariptir.

Ford Foundation’ın mühendislerin bilgisayar eğitimine verdiği önem, Michigan ve M.I.T.’de destekledikleri sağlıklı programlarla kanıtlanmaktadır. Bu desteğin büyük bölümü, hâlâ bilgisayar eğitimi açısından büyük ölçüde yetersiz olan mühendislik öğretim kadrolarının bilgisayar eğitimine yöneliktir.

Yöntem (ii), bilgisayar uygulamasının alanını standart sayısal analiz teknikleriyle fazla yakından özdeşleştirmekten muzdariptir.

Yöntem (iii), üniversitelerin ve özenle beslenen derece programlarının toplumumuz için her hâlükârda gerekli olmadığını ima etme tehlikesini taşır.

Bazı üniversiteler dördüncü bir yöntem kullanmıştır. Otomatik bir programlama dilinin kullanımını içeren kredili bir ders sunulur. Böyle bir dersin amacı, bu dille “konuşma”da akıcılık ve dilin dilbilgisinin açıkça anlaşılmasıdır. Burada da yaklaşım sınırlı pedagojik hedeflerden muzdariptir; ve çıktısı, örneğin ALGOL 60’a son derece hâkim, ancak hesaplamanın neyle ilgili olduğu konusunda oldukça eğitimsiz bir öğrencidir.

Bilgisayarın Kullanımında Arzu Edilen Eğitim

Bu yaklaşımların tümü, acilen ihtiyaç duyulanın çok gerisinde kalmaktadır; çünkü bilgisayarlara dair uyandırdıkları her türlü takdir, eğitim programında çok geç ortaya çıkar ve fazla yereldir. Bu nedenle, bilgisayar ile öğrencinin ilk ne zaman karşılaşması gerektiğini ve bu tanışıklığın niteliğinin ne olması gerektiğini açıkça ifade etmek önemlidir.

Bir üniversite eğitiminin ürünü, duyarlılığın, rasyonelliğin ve akıllı bir tabloya bakarak arama yordamının geliştirilmesine yönelik eğitim almış olmalıdır.

Birincisi, şair MacLeish’in son derece yerinde ifade ettiği gibi, olguların anlamına ya da ilgililiğine dair bir duygu geliştirmek içindir. İkincisi, uygun yapıların tanımlanması ve işlenmesinde akıcılığın; modellerin incelenmesi için temsiller seçme deneyimi ve yeteneğinin; ve büyük sistemlerle çalışma becerisine yönelik özgüvenin geliştirilmesi içindir. Üçüncüsü ise, elbette, her insanın toplumdaki rolüne anlam ve fiziksel referans kazandıran olgular ve problemler kataloğudur.

Bilgisayar, insan duyarlılığının gelişiminde belki küçük bir rol oynayabilir; ancak diğer gelişimler için son derece kritiktir. Nitekim başka hiçbir mekanik araç, bu gelişimler için gerekli kuramsal ve pratik dengeyi bu denli iyi birleştirmez.

Bu nedenle, bir öğrencinin bilgisayarla ilk temasının birinci sınıf yılında olması gerektiğini düşünüyorum. Bu temas teknik olmalı ve salt betimleyici olmamalıdır. Bu ilk ders boyunca her öğrenci, bilgisayarda çok sayıda problemi programlamalı ve çalıştırmalı ya da kendisi için çalıştırılmalıdır. En azından mühendislik ve fen bilimleri birinci sınıf öğrencileri için bu ders, okuryazarlığı geliştirme sorumluluğunu Matematik ve İngilizce ile paylaşmalı; Fizik ve Kimya ise bu okuryazarlığın uygulanacağı arka planı geliştirmelidir.

Beşerî bilimler programında ders ikinci sınıfa ertelenebilir. Bununla birlikte, bilgisayarın çağımızın problemlerine evrensel ilgisi nedeniyle, beşerî bilimler programlarında ikinci sınıflar için de kesinlikle dahil edilmeyi hak eder.

Bilgisayarlara Giriş Dersi

Bu ilk ders için en iyi içeriğin henüz bilinmediğini kabul etmek gerekir. Bu tür derslerin çok azı verilmiştir. Dolayısıyla burada söylenenler, Carnegie Institute of Technology’deki kabul edilebilir ölçüde sınırlı deneyime dayanmaktadır.

Ders geçen dönem 46 öğrenciye sunuldu ve ikinci bir dönem boyunca devam ediyorlar. Buna ek olarak, bu bahar 200 birinci sınıf öğrencisi dersi almaktadır. Her öğrencinin bir dönem boyunca bilgisayarda yaklaşık 20 problem yapmasının gerekli olduğu düşünülmüştür. Elbette, 16 haftalık bir dönemde 5.000 programın notlandırılması, çoğu öğretim elemanının dayanıklılık sınırlarının çok ötesinde bir görevdir. Bu nedenle, notlandırmayı gerçekleştirmek ve doğal olarak öğrencilerin notlarını tutmak üzere bilgisayar programlandı.

İlk dönemde öğrenciler sembolik bir makine kodu olan Carnegie TASS sistemiyle programlar yazdılar; mevcut dönemde ise kodlarını Carnegie Cebirsel Dil sistemi olan GATE’de yazmaktadırlar.

Makine dilinde kodlama yaparken, GATE çeviricisinin otomatik olarak yaptığını elle yapmalarını sağlayan, kod analizine yönelik mekanik algoritmalar öğretildi. Özellikle, dallanmalı kodlar üretmek için karmaşık mantıksal ilişkileri çözümlemede ve karmaşık formül değerlendirmelerinin mekanik süreçlerle elle çözülmesinde ustalaştılar. Amaç, sezgisel olarak gerçekleştirilen bazı insan görevlerinin analizinin, bir makine tarafından yerine getirilebilecek mekanik algoritmalara nasıl yol açtığını bu örnekler aracılığıyla ortaya koymaktır.

Süreçler iki düzeyde verilmektedir: ilki, "gayriresmî" kayıt tutma yöntemlerini kullanan bir ilk betimleme; diğeri ise biçimsel bir programlama dilinde tanımlanmış, tamamen biçimsel kurallar ve gösterimler kullanan oldukça kesin bir betimlemedir.

Bu karmaşık formüllerin çözümlenmesi sırasında öğrencilere, akış şemalarıyla temsil edilen süreçler, fonksiyon tanımları olarak verilir. İçerilen fonksiyonlar şunlardır: karekök (Newton yöntemi), logaritma ve üstel fonksiyon. Son iki durumda kullanılan hesaplamalar, makinelerde alt yordam olarak yaygın biçimde kullanılanlar değildir; ancak tanımlarının yalnızca aritmetik işlemler ve karekök kullanması gibi bir avantaja sahiptirler. Bu süreçlerin her birinin gerçekten iddia edilen fonksiyon olduğu analitik olarak kanıtlanır. Bunu yapmak için öğrenciye dizilerin limitlerine ilişkin bazı temel teoremler ve azalan aralıkların iç içe kümelerinden gerçek sayıların Weierstrass açılımı verilir. Bu kavramlar, hesaplama alıştırmaları yoluyla somutlaştırılır.

Amaç, programlamanın önemli ilkelerinden birini ortaya koymaktır: karmaşık süreçlerin, daha önce verilmiş süreçlerden rasyonel bir yapılandırma ile tanımlanması.

Programlama Öğretimi

Öğrenciye programlama hakkında ne öğretilmelidir? Aşağıdaki liste, kuşkusuz eksik olmakla birlikte, öğrencinin edinmesi gereken bazı temel unsurları temsil etmektedir.

  1. Parametrizasyon. Her program en az bir parametre içerir ve programın bir makinede çalıştırılabilmesi için bu parametrenin bağlanması gerekir. Ayrıca, belirli sınırlar içinde, mevcut parametre sayısı arttıkça programın gücü de artar; yani birkaç parametrenin bağlanmasıyla gerçekleştirebileceği görevlerin sayısı çoğalır. Kullanılabilecek çok sayıda örnek vardır: karekök yerine n. dereceden kök; 100 sayıyı sıralamak yerine n sayıyı sıralamak; belirli kupürlerdeki paralarla belirli bir para miktarını elde etmenin yollarının sayısı. Bununla birlikte, boş bilgisayar mümkün olan en esnek programdır; ancak her çalıştırmadan önce yeni programlar elde edebilmek için çok sayıda parametrenin bağlanmasını gerektirir.

  2. Yineleme. Programların çoğu, aynı komutların değişen veriler üzerinde kullanılabilmesi için işlem döngüleri içerir. Öğrencinin döngüler veya yinelenen süreçler açısından düşünmeyi öğrenmesi son derece önemlidir.

  3. Özyineleme. Komut dizileri, kendi işlemlerinin alt fonksiyonları olarak kendilerini kullanabilirler. Özyineleme, birçok sürecin dıştan içe doğru programlanmasına olanak tanır. Pek çok süreç bu şekilde düşünülmeye son derece uygundur; örneğin türev alma, ifade tarama, oyun oynama vb. Bu örnekler, bir işlem zincirinin yürütülmesinde ortaya çıkabilecek belirsiz gecikmeyi göstermektedir.

  4. Tanımlar. Son derece yararlı kod dizilerinin geliştirilmesi ve kataloglanması. Daha sonra bunlar, kod içinde adlarının geçtiği yerlere yerleştirilebilir. Yerleştirme örnekleri arasındaki farklılıklar, parametrelerin denetlenmesiyle sağlanabilir. Bu kod dizileri elbette başka kod dizilerinin tanımlarını da içerebilir; böylece karmaşık şemalar meydana getirilebilir.

  5. Olasılıktan bağımsız olarak olasılıkların önceden dikkate alınması. Mekanik işlemeye yönelik mekanik bir tutumun geliştirilmesi, çok düşük olasılıklı durumlar için bile işlem yapılmasının öngörülmesini gerektirir. Bir ikinci dereceden denklemin çözümünün programlanması ya da iki değişkenli genel ikinci derece denklemin konik kesitlerin türünü belirlemek üzere analiz edilmesi, birçok öğrencinin tüm olasılıkları hesaba katmakta başarısız olduğu iyi örneklerdir. Özel durumlar için sıkıcı bir testler dizisi boyunca programlama yapma isteği desteklenmelidir.

  6. Temsil. Her problemde veri düzeninin, hesaplamanın bir aşaması için "doğal" bir temsili, başka bir aşaması için ise farklı bir "doğal" temsili olabilir. Temsiller arasındaki dönüşümler, her zaman işlem kolaylığı ile dönüşüm için gereken emek arasında bir denge kurmalıdır.

  7. Mekanik dil. Her süreç, bir makinede çalıştırılmadan önce, belirli bir bilgisayar diliyle tanımlanmalıdır. Bu tür dillerin doğası, belirli türden problemlerin kodlanmasını kolaylaştıran özelliklerinin kataloglanmasıyla en iyi biçimde açıklanır. Burada öğrenci, mekanik sözdiziminin içsel sınırlılıklarıyla tanışır.

Öğrenci, çoğu zaman bir süreci tanımlamak için içgüdüsel olarak seçtiği yolun tatmin edici olmadığını öğrenir. Ancak aynı zamanda, bir bilgisayar tarafından kabul edilebilir, aslında hiç de yabancı olmayan tanımlamalar üretebileceği yolların bulunduğunu da öğrenir.

  1. Simülasyon. Oldukça önemli bir kavrayış olarak, bir sürecin — hatta bir bilgisayarla ilişkili olmayan ve bilgisayarın dışında işleyen bir sürecin bile — değişen yaklaşıklık derecelerinde bir bilgisayarda taklit edilebileceğinin anlaşılması; örneğin bazı basit oyun oynama biçimleri, bazı basit öğrenme süreçleri.

  2. Kanıt. Öğrenci, örnekler aracılığıyla, geliştirdiği belirli algoritmaların gerçekten tasarlandıkları işi yaptığını gösteren kanıtlar oluşturmalıdır. Ne yazık ki, bu konuda yalnızca örneklerle ve yararlı kanıt araçlarının bir kataloğuna başvurularak yönlendirilebilir; evrensel bir kanıt yöntemi yoktur.

Burada betimlenen türden bir derste, öğrencinin ilerlemesinin hızlı bir şekilde değerlendirilmesi ve hatalarının ötesine yönlendirilmesi önemlidir. Bilgisayar, öğrencinin ilerlemesini genel olarak tatmin edici bir biçimde değerlendirebilir. Ancak programlamadaki hataların belirlenmesi ve öğrencinin ders materyalindeki yanlış anlamasının kaynağının yalıtılması son derece karmaşık bir görevdir ve buna yönelik iyi bir otomatik çözüm mevcut değildir.

Şu anda, Carnegie’deki öğrencilere ve öğretim üyelerine, ALGOL 60, makine montaj kodu ve liste işleme bileşenlerinden oluşan bir programlama dilinin sözdizimini öğretmek üzere, bir öğretim makinesi gibi davranan bir program tasarlanmaktadır.

Bu ilk derste bilgisayar programlamasının kavramları yeni olduğundan, öğretilmesi gerekenler de bunlardır; kullanılan programlama dillerine verilen ağırlık ikinci planda kalmalıdır. Nitekim dil, bu süreçleri tanımlamak için uygun bir işaretler kümesi olarak öğrenilir. Teknikler öğrenilirken öğrenciye, öğretim makinesinin son derece mekanik rutini aracılığıyla sözdizimi öğretilir; ancak makineyle olan akıcılığını asıl belirleyen, programladığı problemdir.

Üniversitede bilgisayarın rolünün ilk ve en kritik aşamasının açık olduğu görülmektedir. Bu rol, programa giren öğrencileri, programlama kavramlarının geliştirilmesi yoluyla hesaplama kuramı konusunda eğitmektir. Bunu gerçekleştirmek için bilgisayar, öğretmenle birlikte, öğrenciyi hesaplama ilkelerini temsil eden bir dizi problem ve dil tanımı boyunca sıralı biçimde yönlendiren bir ortak rolü üstlenir.

Bilgisayar Dersi Sonuçları

Bu ilk dersin tamamlanmasının ardından, öğrenci örneğin analiz öğrenimini, temel ifadelerin türevini almak üzere bir bilgisayar için mekanik yöntemler geliştirebilecek şekilde yeniden düzenleyebilmelidir. Ayrıca analizde tanımların sunuluşu ile sonuçları arasındaki ayrımı ve mekanik manipülasyonu doğal biçimde ayırt edebilmelidir. Analiz için öğretim programı fikri yalnızca doğal görünmekle kalmamalı, bunu gerçekleştirmeye yönelik planlama süreci de öyle olmalıdır.

Ayrıca, bu tür öğrencilerin, eğitimlerinin ilerleyen aşamalarında, karmaşık değişkenler dersinde, kalıntılar hesabını kullanarak kontur integrasyonu yoluyla belirli kesin integrallerin biçimsel değerlendirmesini bir bilgisayarda gerçekleştirecek bir algoritmanın özellikleri üzerinde ciddi biçimde düşünmelerini beklerim.

Öğrencinin algoritması, zorunlu olarak, yalnızca kısmi bir algoritma olacaktır. Parametreli hâliyle, belirli integral sınıflarının bu şekilde ele alınabileceğine dair bir kanıt niteliği taşıyacaktır. Algoritmayla elde ettiği sınırlı başarı, bilgisayarın bu tür kullanımına olan ilgisini azaltmayacak; aksine, onu makinenin nihai rolüne hazırlayacaktır.

Mekanik Analiz İçin Teknisyen

Dolayısıyla, bu tür öğrencilerin, bilgisayar içinde mekanik analiz yapacak bir teknisyen geliştirme problemine ilgiyle yaklaşmalarını kesinlikle beklerim. Teknisyenin rolü, matematiksel manipülasyonda ve kanıt elde etmede yardımcı olmak üzere bir asistanın rolüne karşılık gelir. Teknisyen olarak eğitilmiş bir bilgisayar, örneğin Whittaker ve Watson’daki birçok problemin gerektirdiği yorucu manipülasyonları gerçekleştirmede öğrenciye yardımcı olmak için son derece değerli olacaktır.

Programlama Dillerinin Geliştirilmesi

Böyle bir teknisyenin programlanabileceği programlama dillerini geliştirmeyi, üniversite hesaplama merkezinin temel görevlerinden biri olarak görüyorum. Böyle bir programlama dili, bugün mevcut olanların herhangi birinden daha esnek gösterim yetenekleri gerektirecektir. Ancak bunu geliştirmesi gereken yer üniversite laboratuvarıdır.

Bir Üniversite Bilgisayarının Belirgin Özellikleri

Bu eğitim programının gerçekleştirileceği üniversite bilgisayarının ya da bilgisayarlarının belirli bazı ayırt edici özelliklere sahip olması gerektiği açıktır: yüksek hız; çoklu programlama yeteneği; düşük maliyetli ve sayıca bol çoklu giriş-çıkış olanakları; yüksek hızlı yazıcılar; ve büyük rastgele erişimli depolama birimleri.

Bilgisayarın ayrıca edinme ve işletme açısından ekonomik olması gerekir; böylece bakım yükü, onun yalnızca sözleşmeli araştırma hesaplamaları için değil, bir eğitim aracı olarak kullanımını da engellemez.

Uzaktan giriş konsolları, bu programın başarısı için kritik öneme sahiptir. Geçmişteki kullanım, otomatik hesaplamayı — yani hesaplama sürecinin önceden yönlendirilmiş makine denetimini — vurgulamıştır. Doğal olarak, hesaplama gücü arttıkça, belirli bir durumda problem çözmenin hem kapsam hem de derinlik açısından otomasyonunun artırılmasına yönelik bir eğilim ortaya çıkar; örneğin, adi diferansiyel denklemlerin çözümünde otomatik hata analizi. Bunun bir nedeni, bilgisayar işletme maliyetinin genellikle problem çözücünün “bilgisayar döngüsü içinde” olmasını uygulanabilir kılmamasıdır.

Ancak eğitim programında, öğrencinin aynı zamanda bilgisayar maliyetinde fahiş bir artışa yol açmadan bilgisayar döngüsü içinde işlev görebilmesi zorunludur. Nitekim bunu, burada tanımlanan eğitim bilgisayar sisteminin temel amaçlarından biri olarak görebiliriz. Bununla birlikte, öğrenci döngü içinde olsa da, döngüyü denetlememesi gerektiğini belirtiriz; yani izin verildiğinde girer ve söylendiğinde çıkar. Dolayısıyla, hesaplama yükünün, bazıları bir konsol dizisinden izlenen çalışan kodlar örüntüsünden oluştuğunu düşünmek makuldür.

Konsoldan giren karakterlerin hızı son derece düşüktür; saniyede yaklaşık iki karakterdir. Bu nedenle, konsoldan giriş, karakter başına iletilen bilgiyi en üst düzeye çıkaracak biçimde düzenlenmiş bir kod aracılığıyla yapılacaktır. Bilgisayar, iletim anında karakter başına yaklaşık 150 mikrosaniye gerektirecektir. Böylece, bir iletide, her saniyenin yaklaşık 300 mikrosaniyesi giriş verileriyle ilgili kayıtların tutulmasına ayrılacaktır. Giriş bilgileri, doğal olarak, ancak bir sonlandırma sinyali alındıktan sonra toplu olarak işlenecektir.

Nihai üniversite bilgisayarı, birçok öğrencinin bilgisayara eşzamanlı erişimine olanak tanıyacak bu uydu olanağına sahip olmalıdır.

Dolayısıyla, uygun bir bilgisayar, programlama sistemlerini geliştirme yeteneği, doğru bir birinci sınıf dersi ve olası devam dersleri sağlandığında, bilgisayar üniversitedeki akademik etkinliklerin hizmetkârı olarak nihai rolüne ulaşacaktır.

Kaynakça

  1. Üniversite Hesaplama Merkezi Yöneticileri Konferansı Raporu, Communications of the ACM, Ekim 1960.
  2. The Carnegie Tech Management Game, Endüstri Yönetimi Yüksekokulu, Carnegie Institute of Technology, 1960.
  3. Mühendislik Sınıf Öğretiminde Bilgisayarların Kullanımı Konferans Raporu, Communications of the ACM, Ekim 1960.

İnsan Düşüncesi ve Problem Çözmenin Bilgisayar Simülasyonu

Herbert A. Simon
Carnegie Institute of Technology, Pittsburgh, Pa.

Allen Newell
The Rand Corporation, Santa Monica, Calif.

(22 Mart 1961 tarihinde Massachusetts Institute of Technology, Cambridge, Mass.’te yapılan bir konuşmanın bir bölümüne dayanmaktadır)

Bilgisayarların insan düşüncesini simüle etmek için kullanılabileceğini ya da böyle bir simülasyonun genel olarak nasıl gerçekleştirilebileceğini tartışmak artık gerekli değildir. İnsanların gerçekleştirebildiği bazı ilginç sembol işleme ve problem çözme görevlerini yerine getiren ve bunu, en azından bazı genel açılardan, insanların bu görevleri yerine getirme biçimini taklit edecek şekilde yapan bir düzineden fazla bilgisayar programı yazılmış ve denenmiştir. Bilgisayar programları artık satranç ve dama oynamakta, geometri ve mantıkta teoremler için kanıtlar bulmakta, müzik bestelemekte, montaj hatlarını dengelemekte, elektrik motorları ve jeneratörler tasarlamakta, anlamsız heceleri ezberlemekte, kavramlar oluşturmakta ve okumayı öğrenmektedir.

Olanaklılığın kanıtlanması tamamlandığına göre, daha özlü sorulara yönelebiliriz. Bilgisayar simülasyonu yoluyla insan düşüncesi ve problem çözme hakkında neler öğrendiğimizi sorabiliriz: bu olgular için artık ne ölçüde kuramlara sahibiz ve bu kuramların içeriği nedir. Bu özlü konular hakkında konuşmak istediğimden, mevcut bilgisayar programlarıyla doğrulanan aşağıdaki savları basitçe dile getireceğim:

  1. Bilgisayarlar, sayısal olmayan sembol işlemenin yanı sıra sayısal sembol işlemeyi de gerçekleştirecek şekilde programlanabilen, oldukça genel sembol işleme aygıtlarıdır.
  2. İnsanlarda düşünme ve öğrenme gerektiren görevleri yerine getirmek için sayısal olmayan sembol işleme süreçlerini kullanan bilgisayar programları yazılabilir.
  3. Bu programlar, karşılık gelen insan süreçlerinin, tamamen kelimesi kelimesine bir anlamda, kuramları olarak görülebilir. Bu kuramlar çeşitli yollarla sınanabilir; bunlardan biri, bu şekilde programlanmış bir bilgisayarın sembolik davranışını, aynı problem çözme veya düşünme görevlerini yerine getirirken bir insan deneğin sembolik davranışıyla karşılaştırmaktır.

Genel Problem Çözücü

Hakkında en çok söz edeceğim kuram, Genel Problem Çözücü adı verilen bir bilgisayar programıdır. Bu program, tüm problemleri çözeceği ya da hatta çözmeye çalışacağı anlamında “genel” değildir — açıkça değildir. “Genel” olarak adlandırılmasının nedeni, belirli fakat oldukça genel bir biçime sokulabilen tüm problemleri görev olarak kabul etmesi ve kullandığı yöntemlerin, çözmekte olduğu belirli problemin konu alanına özgü herhangi bir gönderme içermemesidir.

Genel Problem Çözücü, özel saldırı yöntemlerine sahip olmadığı problemlerle karşılaşan bir kişinin bulunduğu birçok durumda yararlı olduğu düşünülen — ve zeki üniversite öğrencilerinde yaygın olarak bulunduğuna inanılan — bir yöntemler sistemidir.

Elbette, genel yöntemler herhangi bir belirli problem sınıfına uygulanabilmeden önce, problem çözücünün o belirli problem alanına uygulanan kuralları da öğrenmesi ya da kendisine öğretilmesi gerekir. General Problem Solver, ait oldukları matematik dalındaki ispat kuralları kendisine öğretilmedikçe teoremleri ispatlamayacaktır. Dolayısıyla, herhangi bir belirli problem alanında, General Problem Solver için mevcut olan kaynaklar, görev ortamına ilişkin bilgilerin yanı sıra kendi yöntem repertuarını da içerir.

Misyonerler ve Yamyamlar

General Problem Solver’ı (bundan sonra GPS olarak adlandıracağım) basit bir örnek aracılığıyla tanıtayım. Birçoğunuz Misyonerler ve Yamyamlar bulmacasına aşinasınızdır ve bazılarınız, MIT’nin yüzüncü yılını kutlayan yakın tarihli bir CBS televizyon programında genç bir hanımın bu bulmacayı çözdüğünü görmüş olabilir.

Geniş bir nehrin kıyısında, karşıya geçmek isteyen üç misyoner ve üç yamyam vardır. Kıyıda, en fazla iki kişiyi alabilen bir tekne bulunmaktadır ve grubun altı üyesinin tamamı da tekneyi kürekle kullanmayı bilmektedir. Asıl güçlük, yamyamların misyonerlerden oluşan bir diyete düşkün olmalarıdır. Eğer, bir an bile olsa, bir ya da daha fazla misyoner daha fazla sayıda yamyamla baş başa bırakılırsa, misyonerler yenilecektir. Problem, herhangi bir misyonerin kaybı olmadan, tüm grubun güvenli biçimde nehrin karşısına geçmesini sağlayacak bir tekne yolculukları dizisi bulmaktır.

Şimdi, bu bulmacayla ilk kez karşılaştığımızı varsayalım. Doğa ve yetiştirilme yoluyla, problemi ele almamızı sağlayan belirli yeteneklerle donatılmışızdır. Çözebiliriz ya da çözemeyiz, ancak en azından üzerinde düşünebiliriz. Bu düşünme nelerden oluşacaktır? Özellikle, misyonerler ve yamyamlarla hiçbir göndermede bulunmayan genel problem çözme becerilerimizi bu özel duruma nasıl uygulayabiliriz?

Açıkça, genel yöntemlerimizin soyutluk düzeyiyle uyuşacak türden bir problem soyutlaması oluşturmamız gerekir. Nehrin bu tarafında bazı insanlar ve bir tekne vardır ve biz onları nehrin öbür tarafında istiyoruz. Soyut olarak ifade edersek, belirli bir durumumuz vardır ve farklı bir durum istiyoruz. Dahası, her iki durumu da tanımlayabiliriz ve aralarındaki farkların neler olduğunu da betimleyebiliriz—sahip olduklarımız ile istediklerimiz arasındaki farkları.

the desired are differences in physical location. Adamlarımız nehrin bir tarafındadır; onları öbür tarafta istiyoruz. Ancak konum farklılıkları konusunda çok geniş bir deneyime sahibiz ve bu deneyim (bir biçimde bellekte depolanmış olarak) bize teknelerin, su üzerindeki konum farklılıklarını azaltmak için yararlı araçlar olduğunu söyler. Böylece, grubumuzu kayıp vermeden nehrin karşısına geçirecek olası tekne yükleri dizilerini düşünmeye başlarız.