Bilgisayar kullanmadan bilgisayar bilimini nasıl öğretebilirim?


21

Dünyanın bazı yerlerinde, insanlar genellikle bilgisayarlara erişemezler (ve dolayısıyla çok az bilgi sahibi olurlar) ve sahip olsalar bile, donanım ve yazılımlar modası geçmiş ve elektrik kesintileri ve bu gibi kullanımlara zarar vermiştir. (İyi) kitaplara erişim de eksiktir. Bu koşullar altında bilgisayar bilimini nasıl öğretebilirim?

Deneyler yapmadan ve öğrendiklerini uygulayamadan, inanılmaz derecede motive olmuş ve zamanlarının çoğunu bu hobiye adamış olsalar bile hiç (iyi) öğrenmeyeceklerinden endişeliyim. CS'yi sadece teorik olarak öğretmek mümkün mü?


13
İnsanlar binlerce yıldır matematik tarafından büyülendi. O zamanlar hiç kimse dijital bir bilgisayara erişemedi. Aslında, genellikle teorik derslerde bilgisayarlara hiç ihtiyacınız yoktur.
Juho

3
İlk bilgisayar programının, ilk bilgisayar inşa edilmeden yaklaşık 100 yıl önce yazıldığını belirtmek isterim.
Gabe

2
Cstheory'ye bir göz atın . Büyük olasılıkla bu adamların sadece kalem ve kağıda ihtiyacı vardır ve bu bilgisayar bilimi en yüksek olabilir (çoğu zaman ne hakkında konuştukları hakkında hiçbir fikrim yok).
Trylks

1
CompSci'nin kapsamayı planladığınız alanlarını vurgulamanız muhtemelen yardımcı olacaktır. Ayrık matematik ve hatta veri yapıları veya algoritmalar gibi şeyler yalnızca kalem ve kağıt üzerinde kaplanabilir. Yazılım Mühendisliği ise sorunlu olabilir.
NotMe

1
@abhimanyu Harika, ben cevap gönderemeden önce soru "korumalı" var; Şimdi buraya koydum: pastebin.com/6tbMtVM8 (Bu uzun bir cevap, olasılıklar açık olmalı ama öyle görünmüyor. Orada birçok fikir var ve umarım faydalı bir şey bulursunuz…)
kimse

Yanıtlar:


24

Bilgisayar bilimini bilgisayarsız nasıl çalışabileceğinizi sormak, teleskop olmadan kozmolojiyi nasıl çalışabileceğinizi sormak gibidir. Elbette, çalıştığın şeylere bakabilmek güzel ve şeylerle oynamak için genellikle çok yararlı. Ancak bir bilgisayara erişmeden yapabileceğiniz çok şey var: aşırı uçlarda , muhtemelen neredeyse hiç bilgisayar olmadan bir lisans dersi yapabilirsiniz.

Pratik olarak, bilgisayarlara erişim, bir bilgisayar bilimi dersinde öğrendiklerinizi pekiştirmeye yardımcı olur. Programlama kursları, bir bilgisayara erişim ile çok daha doğaldır. Öte yandan, kağıda kod yazmaya zorlanmak, insanları derleyene kadar tekrar tekrar bir derleyiciden çalıştırmak ve daha sonra önemsiz test vakalarını tekrar tekrar çalıştırmak yerine kodları hakkında düşünmeye ve gerçekten çalıştığından emin olmaya teşvik eder. belli hatalar gidene kadar.

Bilgisayarsız en doğal konular daha matematiksel olacaktır. Kombinatorik ve olasılık gibi tüm arka plan matematiği. Hesaplanabilirlik, biçimsel diller, mantık, karmaşıklık teorisi, algoritma tasarımı ve analizi, bilgi ve kodlama teorisi. Kuantum hesaplama ile ilgili her şey!


11
CS ve programlama arasındaki bu ayrımı + 1'leyin ! Lisans CS dersimin bilgisayar kullanımı için minimum gereksinimleri vardı, çevrimiçi okuma materyallerine erişmenin ötesinde bir kütüphanede kolayca ölü ağaç formuna bakabilirdim.
Kozmik Ossifrage

4
@CosmicOssifrage Katılıyorum, ancak CS programlama yapmıyorken, programlama bilgisayar bilimcileri için çok yararlı bir araçtır. İşte bu yüzden öğretiyoruz.
David Richerby

2
@Abhimanyu Bu, kendi kalifikasyonunuza bağlı olacaktır. Eğer bilgi ve beceriye sahipseniz, bunlar sadece öğrencilerinizin zihninden uzakta bir kara tahtadır.
Raphael

2
@vzn Hayır, programlamanın büyük bir kısmı hata ayıklama sanatını öğreniyor. Bu çok önemli. Ama bu bilgisayar bilimi değil .
David Richerby

2
@vzn Adamı teklif edersen, doğru yap. Hata ayıklama değil (bilimsel) hipotezleri doğrulamak / çürütmek için çalışma zamanı deneylerinden bahsediyor . Sedgewick'in deneysel uygulamalarınızı test etmenin / hata ayıklamanın bilim olduğunu iddia ettiğini sanmıyorum .
Raphael

10

Kağıt ve kalem kullanımı açıktır. Sinyal işleme öğretildiğinde, özel sinyal işlemcisi bizim için doğrudan mevcut değildi ve sadece kağıt raporlar verdik.

Büyük bilgisayar bilimcisi Dijkstra'nın görünüşe göre bilgisayarları çok fazla kullanmadığını unutmayın:

Bu dizideki 1972'den sonra çıkan makalelerin neredeyse tamamı el yazısıyla yazılmıştır. Yazılım teknolojisinin çoğunu icat eden Dijkstra, yıllarca kendi çalışmalarında bilgisayar kullanımını önledi. UT meslektaşlarının cesaretini kaybettikten ve bir Macintosh bilgisayar edindikten sonra bile, sadece e-posta ve World Wide Web'de gezinmek için kullandı.

Alıntı: Disjkstra's Memorial

Bu, bilgisayar olmadan harika bir bilgisayar bilimi yapabileceğinizi gösteriyor!

Kağıt ve kalem bilgisayar bilimi problemlerinin yanı sıra, “gerçek dünyada” da çözülebilir, örneğin, Sapientia Üniversitesi tarafından yapılan kartlarla veya daha sıra dışı bir şekilde dans algoritmalarının gösterilmesi .


Bunu nasıl etkili bir şekilde yapacağınız konusunda herhangi bir tavsiye var mı? Öğretmen büyük bir üniversitede bir kara tahta dersinin faydalarından yararlanmamış olabilir.
Raphael

3
Çok matematik tebeşir yazı tahtası öğretilir. Sanırım bilgisayar bilimi ile benzerlik gösteriyorsunuz.
Finn Årup Nielsen

Örnek olarak, splay ağaçları hakkında güzel bir yazı tahtası dersi: youtube.com/watch?v=So8szqIvIFs
Finn Årup Nielsen

2
Şahsen, veri yapıları ve algoritma bilgimi bir yaz işindeki ofis çalışmasına uyguladım . Çek saplama kutularında bir radyus sıralaması kullandım ve bu işi yapan herkesten daha inançsızlık noktasına kadar bir ila 2 büyüklük arasında daha hızlı girdim. Dosyalanması gereken basılı kartlarda doğal birleştirme türü kullandım. veri yapıları ve hesaplama gerçek dünyada mevcuttur .
JDługosz

8

Birçok bilgisayar bilimi teorisi tamamen teoriktir ve kalem (cil) ve kağıt kullanılarak çözülebilir. Onlar hakkında bilgi edinmek ve onları dış dünyaya iletmek için bir bilgisayar gerekir.


5
Bu beni daha çok yorum yapmaya itiyor.
Raphael

7

Bazı harika fikirler için http://csunplugged.org/ adresine bakın . Google sponsorlardan biridir.

Siteden:

CS Unplugged, bilgisayar bilimlerini kartlar, ip, boya kalemi ve etrafta dolaşan çok sayıda oyun ve bulmaca kullanarak öğreten ücretsiz öğrenme etkinliklerinin bir koleksiyonudur.

Etkinlikler öğrencileri ikili sayılar, algoritmalar ve veri sıkıştırma gibi temel kavramlarla tanıştırır ve dikkat dağıtıcılardan ve genellikle bilgisayarlarda gördüğümüz teknik detaylardan ayrılır.

CS Unplugged, ilkokuldan yaşlılara, birçok ülke ve geçmişten gelen her yaştan insan için uygundur. Unplugged, yirmi yılı aşkın bir süredir, sınıflarda, bilim merkezlerinde, evlerde ve hatta bir parkta tatil etkinlikleri için kullanılmaktadır!


Koşullar karmaşık, ancak kaynaklar izin verdiğinde denemeye değer.
Abhimanyu

Bunun iyi göründüğüne katılıyorum, ancak bunun doğru bir cevap verebilmesi için şu soruda ortaya konan belirli sorunları ele almanız gerekiyor: hangi kaynaklara ihtiyaç var? Bunların örneğin (kırsal?) Afrika'da olmasını bekleyebilir miyiz?
Raphael

3

Bunu nasıl yapabileceğiniz çok açık. İnsanlara ne kadar yararlı olacağından emin değilim, ama yapabilirsiniz.

Ama bilgisayar bilimi öğretmeninin nasıl olacağını bile bilmiyorum, bilgisayar bilimini bilgisayar olmadan nasıl öğretebileceğinizi sorabilirim.

Çünkü bilgisayar bilimini öğretebilirseniz, nasıl yapılacağını bilirsiniz.

Eğer biliyorsan-

-Algorithms can be written on pen and paper, and traced on pen and paper.
-Flow charts are written on paper.

Normalizasyonun incelenmesi, veritabanları için veri tablolarının yapısı, kalem ve kağıt üzerinde yapılabilir. (Bunu sadece ilişkisel veritabanları üzerinde çalışırken kalem ve kağıt üzerinde yaptım)

Bilgisayar bilimi ders kitapları bilgisayar gerektirmez.

Eğer bir bilgisayar bilimi ders kitabı seçtiyseniz ve bir kütüphanede okuduysanız, anlamak için bir bilgisayara ihtiyacınız olmadığını bilirsiniz.

Ancak, bir bilgisayar bilimi dersinde oturan herkesin çoğu insanın programlayamayacağını görebileceğinin farkında olmalısınız, bu sadece onların ötesindedir. İnsanlar için çok soyut. Bu Üniversite düzeyinde bile doğrudur.

http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf

Öğrencilerin önemli bir azınlığı her Birleşik Krallık üniversitesindeki her giriş programlama dersinde başarısız olmaktadır. Kahramanca akademik çabaya rağmen, oran yıllar içinde azalmak yerine arttı. Öğretim yöntemleri ve öğrenci yanıtları üzerine yapılan çok sayıda araştırmaya rağmen, neden hakkında hiçbir fikrimiz yok.

Bunu önemli bir azınlık olarak nitelendirmek için bir eksiklik olduğunu ekleyebilirim. Bu - programlayabilen küçük bir azınlık.

Yine de, tanık olduğu düşüşün sebebini not ediyorum. Bilgisayarlar örneğin 2000-2010 yılları arasında daha popüler hale geldikçe (o on yılın ortasında yazdı), daha fazla kurt 'bilgisayar bilimi' okumakla ilgileniyordu. O zamandan önce sadece daha fanatik insanlar ilgileniyordu. Ve daha önce, bilgisayar kullanmak daha teknikti, ancak bilgisayarlar ortalama bir insanın kullanımı daha kolay ve çalışabilecekleri uygulamalarda daha güçlü hale geldikçe, daha fazla kurt onları ve yalnızca yapabilecekleriyle ilgilenen daha fazla insanı kullanıyordu. nasıl yaptıklarından ve nasıl yaptıklarından ziyade.


2
"Kurtlar" ne halt eder?
Nate Eldredge

1
@NateEldredge Urban sözlüğü : «Aptalca bir şey söyleyen veya yapan biri için neşeli terim / 2 ve 2 ekleyen ve 5 alan birisi." Ne kadar kötü "»
Paul A. Clayton

@NateEldredge Normalde "wally" olarak yazılır.
David Richerby

2
OP'yi başlatmak bir cevap değildir.
Raphael

2

Bilgisayar Bilimleri kavramlarını bilgisayar olmadan öğretmek mümkün olabilir. Elbette bir bilgisayara erişim olmadan, Bilgisayar Bilimi öğrenmek gerçekten ne işe yarar?

Lisede Bilgisayar Bilimi öğrenirken, ilk birkaç dersimizde bilgisayar hiç yoktu. Bunun yerine, nesne yönelimli kavramları öğreten Karel ++ adlı bir kitaptan çalıştık . Oluşturulan dil bir beyaz tahta veya tahtada kolayca çalıştırılabilir, çünkü kodun tamamı bir grafik üzerinde işlem yapar. İlk birkaç ödevimiz el yazısıyla yazıldı ve profesör bir sonraki dersin başında tahtada doğru çözümü gösterecekti.

Algoritmaları tartışmaya başladığımızda, profesör bizi odanın önüne çağırdı ve bir sırada durmamızı söyledi. Birkaç farklı sıralama algoritması göstermeye devam etti - aptalca bir şeyden başlayarak "maymun sıralama" olarak adlandırdığı ve ikimizi rastgele değiştirip sonra her yinelemenin sıralanıp sıralanmadığını kontrol edip kabarcık sıralaması ve kabuk sıralaması yapıp yapmadığını kontrol etti . onları "bizden çalıştırıyoruz".

Tahtaya diyagramlar çizerek bilgisayar belleği ve yığının nasıl çalıştığının temellerini açıkladı. Değişkenleri ve işaretçileri (bir C ++ sınıfıydı) ve oradan bağlantılı listelere ve ağaçlara gösterdi ...

O sınıftan tuttuğum notların üzerinden geçersem muhtemelen buna ekleyebilirdim, ama şimdi hatırladığım tek şey bu. Bu öneriler ilginçse, bu cevabı genişletebilirim.


1
Programlamayı (zanaat) bilgisayar bilimi ile karıştırıyorsunuz .
Raphael

@Raphael Belirli bir dilde programlama mekaniğinin bilim bölümü için önemli olmayabileceğini anlıyorum , ancak bilgisayar bilimini programlamadan gerçekte aşina olmayan öğrenciler için anlaşılmaz olacak kadar teorik hale gelmeden önce ne kadar boşanabilirsiniz? bir bilgisayar nasıl çalıştırılır? İkisini ayırmak için cevabımı değiştirebilirim, ancak OP'nin sorularına göre aklıma gelen görüntü, karmaşıklık teorisinin matematiksel temeli hakkında bilgi edinmek isteyen yetişkinler değil, CS uygulamalarına giriş ihtiyacı duyan sınıf öğrencileri.
Blackhawk

@DavidRicherby OP'den hedef öğrenci grubunun kim olacağını (bilgisayarlarda yaş / deneyim) ve hangi materyalleri öğretmeyi planladığını açıklamalarını istedim. Cevabımı buna göre ayarlayacağım. Eğer yapabilirsem, daha doğrudan bir benzetmenin alfabe ve kelime dağarcığının nasıl kullanılacağını bilmeye karşı yaratıcı yazma olacağını öneririm. Bunun dışında analoji bile yetersiz kalıyor çünkü programlama dillerinin çalışması aslında bilgisayar bilimi tarafından kapsanıyor.
Blackhawk

@Blackhawk Elbette, hiçbir benzetme mükemmel değildir (neredeyse tanım gereği). Ancak, programlama dillerinin tasarımı CS iken , sadece bunları kullanmak değildir.
David Richerby

1
@DavidRicherby Ben sadece CS için tur sayfasını okudum ve özellikle "hakkında sor ..." ve "hakkında sorma ..." ve ben çok fazla insan bu sitede soru sormak / cevaplamak izlenimi alıyorum SO üzerinde çok daha iyi olurdu ... bu yüzden katkıda bulunduğum için özür dilerim. Bana bu cevabın sitenin hedefleri ile aynı doğrultuda olması için değiştirebileceğim belirli şeyleri gösterebilir misiniz? En azından "noktalı virgül" ve "C ++" referanslarını kaldırmam gerektiğinden şüpheleniyorum, fakat Karel ++ 'ın Nesneye Dayalı diller kavramı için bir öğretim aracı olarak kullanılmasına ne dersiniz? Veya bilgisayar hafızası?
Blackhawk

2

Bir bilgisayar bilimi derecesi yaptım ve çok sayıda programlama öğretildiğimizi düşündüm (çeşitli dillerde), ayrıca birçok matematik yönü (ve bazı donanımlar da) öğretildi.

Matematik bölümleri ilk yıl için daha önemliydi - 3d grafikler için gerekli olan matris matematiğini düşünün ( bir tepe noktasını aydınlatmak için normal bir yüzeyi nasıl hesaplarsınız? ). Çok fazla istatistik yaptık - iş verim analizini düşünün, bir sisteme tıkanmadan önce ne kadar iş verebilirsiniz? Bu, birçok merkezi sistem ve ağ için oldukça önemlidir.

Birçok algoritmayı öğretebilirsiniz, burada bahsedilen bir poster, öğrencilere her biri bir numara vererek ve daha sonra çeşitli algoritmalar (kendilerini aktif ve bilgilendirici) kullanarak kendilerini sıralamalarını sağlamaktır. Aslında, internetteki animasyonlu bir görüntüde tanımlanabilecek herhangi bir algoritma bu şekilde öğretilebilir. Benzer şekilde hesaplamanın temelleri - program sayacı, akümülatör ve kayıtlaraynı şekilde veya kağıt üzerinde öğretilebilir. Öğrenci tabanlı çoklu iş parçacığına ne dersiniz - bir grup öğrenciye klasik bir çoklu iş parçacığı alıştırmasında (veya 1 paylaşılan kaşık probleminde) her biri arasında bir deste olan bir kart oyunu ayarlayın. Ya da tasarım kalıpları, karatahta mimarisinin öğrencilerin çok işlemli iletişimin nasıl uygulanabileceğini öğrenmeleri için mükemmel olduğunu veya bir tür çince fısıltı oyunu veya sonlu durum makineleri olarak tanımlanan n-katmanlı bir mimarinin, 'yaşayan bilgisayarda' modüller. İkili matematik veya yığın tabanlı (yani ters cila) yürütmeyi öğretebilirsiniz.

Elbette elektroniğe erişiminiz varsa, op-amperlerden analog bir bilgisayar oluşturabilirsiniz. Onlar havalılar.

Ne yazık ki tüm bunlar matematikten çok matematik gibi görünecek, ama çoğu yapışacak ve bir gün neden öğretildiklerini anlayacaklar (bilgisayar endüstrisine girdiklerini varsayarak). Bir bilgisayarın yapabileceği her şeyin, bir kişinin yapabileceğini unutmayın - aynı sonucu elde etmek için çok daha fazla zaman ve can sıkıntısı alacaktır . Bilgisayarın ne yapacağını göstermek için basit örnekler almanız ve bilgisayarla ilgili temel bilgileri öğretildiğim gibi daha az kuru bir şekilde tanımlamak için hayal gücünüz var :)


1

Bilgisayar bilimini bilgisayarsız nasıl çalışabileceğinizi sormak, teleskop olmadan kozmolojiyi nasıl çalışabileceğinizi sormak gibidir.

Çoğunlukla sadece bu ifadeye tepki vermek için yanıt veriyorum ve diğer cevaplara kesinlikle katılmıyorum. Bence doğru karşılaştırma

Bilgisayar bilimini bilgisayarsız nasıl çalışabileceğinizi sormak, kozmolojiyi bir kozmos olmadan nasıl çalışabileceğinizi sormak gibidir .

Bilgisayar Bilimi olduğu hakkında sadece onları kullanmıyor, bilgisayarların. Doğru, bir çok Bilgisayar Bilimi matematiğe dayanmaktadır, bu nedenle matematiksel bölümler bilgisayar olmadan incelenebilir (böylece matematik öğretirsiniz) tıpkı kozmoloji yerine bir kozmos (veya teleskoplara erişebilir), ancak sonunda çalıştığınız şey hala fiziktir.

Şimdi, buradaki cevaplarda herkesin yaptığı şey, lisans düzeyindeki bilgisayar biliminin nasıl teorik olduğunu ve bilgisayar gerektirmediğini, insanların IMHO'nun unutduğu şey, aynı insanların o noktaya kadar bilgisayarları yaygın olarak kullandıklarıdır. Doğal bir anlayış olmadan, doğrudan teorik konulara girmek, birçok öğrencinin bilgisayar biliminden vazgeçmesine ya da çok uyuşmayan bir görüşe sahip olmasına neden olacaktır. Bu yüzden, bilgisayarların ilk olarak ne olduğunu ve daha sonra teorik şeylere girmesini anlamak için bazı programlama, öğretme öğretin.

Afrika'da genel düzey know-how dışında bir bilgisayar bilgisi olmayan öğrencilere ders veriyorum ama ileri düzey bilgisayar bilimlerini öğrenmeye ve zamanlarının çoğunu bu hobiye adamaya kim hevesli?

Bütçeye bağlıdır:

  • Neredeyse bütçe yok Afrika'ya seyahat etmek için paranız varsa bir grup arduino klonu (13 $ için fonksiyonel arduino klonları var, örneğin bu listeyi kontrol edin ), bazı çıkış bileşenleri (LED'ler gibi) ve bir dizüstü bilgisayar. Bazı temel programlama ile başlayın, kağıt üzerinde onlara öğretin ve dizüstü bilgisayara girmek zorunda. Bu en etkili yol değildir, ancak onlara en azından bilgisayarların pratikte ne olduğuna dair temel bir temel anlayışı öğretecektir.
  • Düşük bütçeli Satın $ 750 dolar değerinde $ 50 android akıllı telefonlar ve klavyeler (microUSB klavyeler veya bluetooth klavyeler, kontrol ebay.com veya aliexpress.com akıllı telefonlar ve klavyeler her ikisi için). Evet milyonlarca boktan, bana bundan bahsetme bile. Yine de, bunlara veri girebilirsiniz (ancak ekran klavyelerini kullanmayı düşünmeyin) ve android için basit kodlama uygulamaları vardır. Her akıllı telefon için birden fazla öğrenciniz olsun ve bu oldukça iyi sonuç verebilir.

Öyleyse açık konuşalım, Bilgisayar Bilimi'nin bilgisayar olmadan öğretilemeyeceğini söylemiyorum, sadece böyle bir şeyi düşünmeye başlamadan önce bilgisayarlara alışmanız ve onları oldukça iyi tanımanız gerekir.


Ya cevabımla olan anlaşmazlığınızı yanlış anladım ya da katılmıyorum. Kozmos olmadığını bilseydik, kozmoloji tam bir uydurma olurdu. Kozmosun varlığına gerçekten inanırsak, kozmoloji en iyi ihtimalle iyi niyetli bir kaynak israfı olurdu. Ama aslında, var olduğunu biliyoruz. Teleskopsuz kozmoloji "Hey, bu hafta kozmosu gözlemleyemiyorum ama kesinlikle orada. Şimdi öğrenebilir ve gelecek hafta bakabilirim." Bilgisayarsız CS, "Hey, bilgisayarlar kesinlikle var, böylece onları şimdi inceleyebilir ve daha sonra fiziksel olarak deneyimleyebilirim" diyor.
David Richerby

Ve bir bilgisayara bilgisayar bilimi, bir bilgisayarın ne olduğunu hiç kullanmadan ya da pratik olarak anlamış olmadan öğretmek, böyle bir uydurma kadar. Evrenle bir teleskop aracılığıyla doğrudan etkileşime girmezsiniz, gözlemlemek için birçok yoldan sadece biridir. Geceleri hala görülebilir ve temel düzeyde kolayca anlaşılabilir. Aynı şey bilgisayarlar için geçerli değildir.
David Mulder

Birine gerçekte var olan ama yaşamadıkları bir şeyi öğretmenin uydurma olduğunu tamamen kabul etmiyorum.
David Richerby

2
@DavidRicherby: Siz ve buradaki diğerleri, bilgisayarlara alışmakla o kadar iç içe ki, en başta bilgisayarlara dayanmadan birisine bilgisayar bilimi denemenin ve öğretmenin gerçekten ne anlama geldiğini anlamak zor ... Gerçekten ders veren birini tanıyorum gerçek bilgisayarlarla hiç bilgisayar kullanmayan gençlere ... programlama veya bilgisayar bilimi öğretmeye bile çalışmadı ve büyümediyseniz bilgisayarın ne olduğunu anlama seviyesine ulaştı. bilgisayarlarla. (devam)
David Mulder

2
Günümüzde, daha fazla gençliğin en azından biraz deneyimi olduğu için nispeten daha kolaydır, ancak soru, hiç deneyimlerinin olmadığı vakalarla ilgiliydi. Aynı kişi bana öğrettiği ülkede, ortaokul öğrencilerinin daha önce bir bilgisayara dokunmadan üniversitedeki bilişim derslerine nasıl geleceğini ... ortaokulda sadece bir teori öğrendiklerini ve kötü sonuçlanan çoğu (açıkçası değil) vakalar. Sorun / fikir, bilgisayar işleri iyi ödüyor, bu yüzden sadece ne olursa olsun bunları almak istiyorlar ...
David Mulder

1

Bilgisayar Bilimi algoritmalar ile ilgilidir ve (kesinlikle) bilgisayarlar (ve elektronik) ile ilgili değildir.

Bu nedenle, algoritmaların (ilkel aritmetik bile) incelenmesi, bilgisayar bilimi ve programlamanın anlaşılmasını sağlayabilir. "Algoritma" teriminin bile aritmetik bir kitabın ( 9. Harezmi , 9. yüzyıl civarında CE) yazarının bir ifadesi olduğunu unutmayın .

Algoritmaların çalışması temel araçlar kullanılarak yapılabilir, ancak algoritmanın neden çalıştığını, nasıl ortaya çıktığını ve gerçekten doğru çalıştığını nasıl gösterebileceğini kapsamalıdır.

Bilgisayar bilimi ve algoritmalarının ve programlamanın evriminin arkasındaki tarih göz ardı edilmemelidir. Örneğin, Babbage / Ada'nın hesap makinesi, Enigma makinesi, Konrad Zuse'un plankalkul , ENIAC vb.

Sonra algoritmaları resmileştirmenin bir yolu olarak programlama (ve programlama dilleri) tanıtılabilir. Bu aynı zamanda (büyük ölçüde) temel araçlar kullanılarak da yapılabilir.

Not bazı çalışmalarda programlama öğrenme Peole (örneğin eşitlik testi vs asignment ve bir RAM makinesinin çalışması için sembollerin aşırı yüklenme ile ilgili) anlamakta iki ana zorluklar olduğunu göstermiştir.

  1. Döngü yapıları (örneğin, vs. için) zor görünüyor
  2. Eşitlik testine karşı görevlendirme de zor görünüyor.

Böylece insanlar açıkça anlaşılır ve insanlar tarafından anlaşılır.

Ayrıca, herhangi bir bilgisayara erişilebiliyorsa (programlanabilen bir hesap makinesi bile), bu uygulama örnekleri ve uygulamalı deneyim sağlamak için kullanılabilir. Başka biri benzetilmiş bir bilgisayar kullanabilir. Bu çeşitli şekillerde yapılabilir, örneğin bir grup insan bir bilgisayarın parçalarını simüle edebilir ve sınıf bu simüle edilmiş bilgisayar için çeşitli sorunları çözmek ve nasıl gittiğini görmek için algoritmalar tasarlayabilir. Bu bir oyun olarak da görülebilir, yaratıcı olun ve yapın.

Daha sonra bazı (soyut) hesaplama modelleri (örneğin Turing Makineleri ) tanıtılabilir ve algoritmalar ve formalisatinn ile ilgili önceki materyalle (programlama) bir dil olarak ilişkilendirilebilir.

Eğer bir kişi gerçek bir bilgisayarın elektroniğini tanıtmak istiyorsa, bu iki kısımda da yapılabilir.

Üniversitelerde bile bazı elektronik ve bilgisayar mimarisi derslerinin teorik olduğunu unutmayın (aslında bir CPU veya tasarım dersi ile temasa geçmez).

Böylece, bilgisayar mimarisiyle ilgili elektroniklerin (ve altta yatan fiziğin) bazı çalışma prensipleri ortaya konabilir ( yarı iletkenler , katı hal enerji bölgeleri, p-np kapıları, vb.).

Daha sonra programlama ve algoritmalar hakkında önceki materyalden yararlanılabilir ve endüstride kullanılan CPU tasarımının (ve tanımının) (modern) tekniklerini ( Mantık kapıları , Parmak arası Terlik , FPGA , VHDL , CMOS devreleri vb.) Tanıtabilir .

Bu, paralellik, ardışık düzen, önbellek, vektör adresleme, mikro programlama, DMA, vb.

Tamam, belki bu çok fazla olabilir, ancak cevabı kendi kendine yettirmek için eklendi.


-1

Programlamayı öğretmek mi istiyorsunuz?

Çocukken kamp tatiline çıktık ve bilgisayar kılavuzunu yanımda götürdüm. Kalem ve kağıt kullanarak basit bir oyun yazabildim.

Bu benim ilk gerçek programımdı, bu yüzden çok fazla öğrenme içeriyordu. Ne yapmak istediğimi biliyordum, ama çözerken çok fazla yanlış başlangıç ​​vardı. Ama sonunda tüm kodu yazmayı başardım.

Söylediklerimi projeyi planlamak ve sonra koda çevirmek için sahte kod ve \ veya akış şemaları ile başlamak olduğunu tahmin ediyorum. Kodumun çoğunu sadece okuyarak hata ayıklamayı başardım. Burada akran değerlendirmelerini de kullanabilirsiniz.


Kesinlikle akış şemaları yerine sözde kodla giderdim.
David Richerby

Bu soru, cevap başına birden fazla deneyim veri noktasını hak etmektedir.
Raphael

-2

Önceki cevaplara yankı vermek için: Sadece kalem ve kağıt alıştırmaları okumak ve yapmaktan öğrenilecek çok şey var. Sorunu kağıt üzerinde çalıştırabiliyorsanız, sert kısmı aşağıya patlarsınız. Bununla birlikte, öğrencileri CS'ye maruz bırakmanın oldukça ucuz yollarının varlığından da bahsetmek istiyorum. Eğer aşina mısınız Ahududu Pi Projesi ? Birkaç kişi paylaşmak zorunda olsa bile veya sadece 1 veya 2 birim alabiliyor olsanız bile, öğrencilerinizi teknolojiye maruz bırakmanın bir yolu olarak düşünmeye değer olabilir.


Bu, mevcut cevapların üzerine hiçbir şey eklemez.
Raphael

1
@Raphael True, ancak ucuz bilgi işlem cihazlarından bahseden diğer cevapların bundan sonra yayınlandığını unutmayın.
David Richerby

-3

Bu biraz kıpırdatmak deneyiyorum & "kutunun dışında düşünmek". tam gelişmiş bilgisayarlar gerçekten pahalıdır, bazen kaynak gerektirir ve bakımı zordur. ancak LCD ekranlı vb. tam gelişmiş bilgisayarları taklit eden ve birçok temel programlama ilkesinin uygulanabildiği birçok pille çalışan birçok ucuz elektronik sistem vardır. Enerji Verimliliği ilkelerinin ikili mantık devreleri inşa etmek gibi hesaplama ile de yakın bir bağlantısı vardır .; ayrıca günümüzde bazı oyuncaklar programlanabilirlik özelliklerine sahiptir.

  • programlanabilir hesap makineleri . bazıları tüm programlama dillerine (çok yüksek seviyede değil, daha çok montaj dilleri gibi) sahiptir. bazıları gelişmiş programları destekleyebilir.

  • Raspberry pi minibilgisayar / mikrodenetleyici bu amaçla geliştirilmiştir ve linux çalışır. çoğu durumda 40 dolardan az.

  • paralaks STAMP kiti mikrodenetleyici bir USB bağlantısı gerektirir, ancak bir Raspberry pi yeterli olabilir. ayrıca bkz. PIC mikrodenetleyici

  • robot sistemleri. programlanabilir mantığı olan birçok ucuz olanlar var. Lego robotics mindstorms / nxt en iyilerinden biridir ve daha az pahalı modeller vardır.

  • bazı konsol oyunlarında yerleşik programlama ilkeleri vardır. Örneğin, Little Big Planet'ın içinde inanılmaz programlama özellikleri vardır. programlanabilir oyunların bazı taşınabilir versiyonları vardır. ilham için karmaşık yapıların birçok youtube video var.

  • akıllı telefonlar yeni programlama dünyasıdır. javascript çalıştıran tarayıcıları var ve birçok programlama ile ilgili uygulama var ve hatta bir internet bağlantısı (wifi dahil) ile programlama sitelerinde sörf yapabilir.

yorumlarda olduğu gibi TM programları oluşturmak, örn. toplama vb. için ve bunları elle takip etmeye çalışmak gibi.


2
Bilgisayarlara erişimi olmayan kişilerin de Lego Mindstorms'a, konsol oyun sistemlerine, akıllı telefonlara veya wifi'ye erişemediğinden şüpheleniyorum.
David Richerby

adil / açık / beklenen bir nokta, ancak bahsedilen hiçbir şey soru kriterlerinde açıkça göz ardı edilmemiştir. Öğrencilerin bir şeyleri olup olmadığı sorusundan bilinmemektedir, çünkü örneğin pahalı ve yukarıda listelenen her şey bir kıyaslama olarak masaüstü bilgisayarlardan daha ucuzdur. ders kitaplarını ödeyebilecek öğrenciler veya okullar yukarıdakileri karşılayabilir (belki de paylaşabilir). ve ders kitapları uygun değilse, başka ne kalır?
vzn

(fyi soru kapsamı bu cevap yazıldığından beri mod tarafından önemli ölçüde değiştirildi, bana göre bu soru düzenleme orijinal yazar tarafından tasarlanmayan büyük varsayımları yapıyor ve orijinal belirsizliği hata değil bir özellik olarak tercih ediyor)
vzn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.