Onları bilgisayar bilimleriyle ilgilenmeleri için 16-17 yaş grubuyla ne yapmalıyım?


40

Birkaç hafta içinde üniversitemde bir tür 'açık gün' ile ilgileneceğim. Bu sürenin bir parçası olarak (bir iş arkadaşıyla birlikte) iki saat boyunca bir sürü lise öğrencisi yanı sıra hepsini içerecek kadar büyük bir bilgisayar laboratuarı veriliyor ve bir çeşit yapmam gerekiyor. Onları bilgisayar bilimleri yapmaya teşvik etmek için onlarla yapılan etkinlikler veya etkinlikler dizisi (üniversitemde, ideal olarak, fakat genel olarak). Burada ne yapılacağı konusunda mutlak bir zararım var ve her türlü öneriyi memnuniyetle karşılıyorum.


Ben bir öğretmen ya da uzman değilim, ancak onlara küçük bir bulmaca oyununu nasıl programlayacağınızı (genelleme NP tamamlanmış bir tane seçmeyi) nasıl programlayacağınızı öğretmenizi öneririm: seviye oluşturma, çözüm kontrolü, otomatik çözüm bulma: - )
Vor

1
2008 Kraliyet Kurumu Noel Derslerini beğendim . Benzer etkinlikleri / demoları denemek isteyebilirsiniz.
melhosseiny

Yanıtlar:


21
  • Bağlamsız dilbilgisi kullanarak resim çizmelerini sağlayabilirsiniz. Bağlamsız sanat Bu, daha önce hiç programlanmayan ve deneyimli programcılara ölçeklenen insanlar için de geçerlidir. Temel dil belki yarım saat içinde açıklamak için yeterince kolaydır.
  • Kaplumbağa grafiklerini kullanarak geometri hakkında bir şeyler öğrenmek de güzel olmalı. Logo çocuklar için tasarlandı, bu nedenle lise öğrencilerinin problemi olmamalı. Youtube üzerinde Logo kullanan çocuklar hakkında güzel videolar var
  • Ellerinizi bazı MindStorms robotlarına sokabilirseniz, onları programlamak çok eğlencelidir.
  • Birbiriyle savaşmak için robotları programladığınız çeşitli programlama oyunları veya sanal bir makinede birbirlerinin üzerine yazmaya çalışan montaj programları vardır. Konuyla ilgili Wikipedia , ilgili stackoverflow sorusu
  • Ayrıca bir tür donanım projesi hakkında düşünebilirsiniz. Bir mikrodenetleyici yapmak, örneğin gelen kutunuzdaki okunmamış e-postaların sayısına bağlı olarak bir LED'i yanıp söner.
  • Farklı labirent oluşturma algoritmaları uygulamalarını isteyin , labirentleri “insanlar için zor” yapan kriterler ortaya koymaya çalışın. Zaman izin verirse, algoritmaları sadece koridorları değil odaları da kapsayacak şekilde genişletin.
  • Birkaç Arduinos ve LED al. Yanıp sönen ışıkları programlamasına izin verin.

1
Bağlantıları Khan Academy'nin bilgisayar programlama ders kitaplarına listeye eklemek isteyebilirsiniz: Yukarıya gerçekten harika / etkileşimli bir ektir. Örneğin: khanacademy.org/cs/intro-to-animation/830742281
Doktora

CFG'ler için +1 de - denemek ve uygulamak için iyi olan aynı kavramın bir başka versiyonu Yinelenen Fonksiyon Sistemi ile çalı çizimi yapmaktır; Onlara bir dikdörtgen ile başlamalarını, birkaç tane daha dikdörtgen yerleştirmelerini ve sonra da ilk dikdörtgenin 'içeriğini' (tüm alt dikdörtgenler dahil) alt dikdörtgenlerin her birine tekrar etmelerini sağlayın. Karşılaştırma amacıyla kurulmuş bir dijital versiyonunuz olabilir.
Steven Stadnicki

13

Bilgisayar Bilimleri Unplugged göz atın . Sitelerinden:

CS Unplugged, bilgisayar bilimlerini kartlar, ipler, boya kalemleri ve etrafta dolaşan çok sayıda oyun ve bulmaca kullanarak birleştiren ücretsiz öğrenme etkinlikleri topluluğudur.

Bu faaliyetler, öğrencilere genellikle bilgisayarlarla gördüğümüz dikkat dağıtıcı ve teknik detaylardan ayrılmış , ikili sayılar , algoritmalar ve veri sıkıştırması gibi temel kavramları tanıtmaktadır .

Unplugged CS , ilkokuldan yaşlılara , birçok ülkeden ve arka plandan her yaştan insan için uygundur . Priz, dünyanın her yerinde onbeş yıldan fazla bir süredir, sınıflarda, bilim merkezlerinde, evlerde ve hatta bir parkta tatil etkinliklerinde kullanılıyor!


1
Bu güzel bir öneri, ancak OP'nin bir kenara bırakılan bilgisayar laboratuvarını kullanan bir şey istediğinden şüpheleniyorum.
András Salamon

Geçerli nokta Programlamayı bilmeyen insanlar için bir robocode projesi olmalı.
Pål GD

11

Bilgisayar Biliminin çoğu, eğitimlerinin en acı verici ve moral bozucu bir parçası olarak programlamayı öğrenmeyi bildiğimi bilmektedir. Bu nedenle , programlamanın kendisi ile ilgisi olan herhangi bir şeyden uzak dururdum. Scphantm'ın daha önce belirttiği gibi , muhtemelen bunun için de zamanınız olmaz.

Aradığın şey, iki hedefi yerine getiren iki saatlik bir egzersiz:

  • Lise mezunlarını iki saatliğine yeterince ilgilendirmek yeterince heyecan verici.
  • Onlara Bilgisayar Bilimi'nin ne olduğu hakkında bir fikir verecektir ve umarım onları ilgilendirecektir.

İlk hedef, gerçekte göstereceğiniz şeyden oldukça bağımsız ve iyi bir öğretmen / sunum yapan kişi ile daha çok ilgisi var. İyi didaktik pratik, yani izleyicilerinizi ayak parmaklarında tutup, gruplar halinde küçük şeyler denemelerine izin vererek, her 15 dakikada bir soluk alıp verme vb.

İkinci hedef, biraz zor bir konu ve burada en iyi çalıştığını düşündüğüm şey şu anki bilgileriyle açıklanabilecek bir problemi ele almak, çözümü algoritmik olarak nasıl tanımlayabileceğinizi göstermek ve ardından çözümün nasıl analiz edilebileceğini göstermek. ve geliştirilmiş.

Bunun iyi bir örneği, aksi halde GPS navigasyon sistemi olarak bilinen grafiklerdeki en kısa yol problemidir. Açıklamaya gerek yok. Algoritmayı tanımladığınız gibi uygulamak için onlara kenar kalınlıkları / çizilen küçük bir harita ve bir dizi boya kalemi verebilirsiniz.

Daha sonra, en kısa yolu nasıl bulacağınız üzerine bir tartışma başlatabilirsiniz, ve böylece, onu bir algoritma, vb. Olarak formüle etmelerine izin verin… Sonra Dijkstra'nın algoritmasını tanımlayın , düğümleri ziyaret edilen , geçici ve renklendirilmiş olarak renklendirmelerini sağlayın. ziyaretsiz kümeler. Bam. Bir algoritmanız var!

Ö

PN-P


9

Sadece 2 saatin varsa, çok fazla kodlama yapamazsın. Sadece sözdizimini öğrenmek o zaman zor olacak, ama bunun yerine yapılabilecek çok şey var.

Bir öneri olarak, onlara kontrol akışını ve özel olmanın önemini öğretmeyi deneyin:

  1. Sınıfı 2 "robot" ve diğerlerine "programcılara" bölün.
  2. Bazı basit mantık, döngü vb. Gerektiren uygun bir zorluk ile gelip - aşağıda bir örnek var.
  3. “Programcılara” “robotlara” verilen bir liste talimatı yazmasını sağlayın.
  4. "Robotların" talimatları yerine getirmesini sağlayın, ancak "robotların" talimatların karışması durumunda "programlayıcı" durup hata ayıklama yapana kadar durmalarına, hata yapmalarına veya başka türlü işlem yapmalarına izin verildiğini bildirin. Garantili, eğer oynama şansı verilirse, bir lise öğrencisi olacak.

Örnek bir görev olarak, başka bir yerde karşılık gelen renkli kağıt şeritleriyle ve her robot / programcı çifti için yeterli küçük kovalarla, farklı renkli toplardan bazı tüpler kurun. Görevi robotun kovayı topları ile doldurmasını sağlamak, ancak bunu yapmak için yalnızca belirli bir kağıt şeridiyle eşleşen topları alabilmeleridir. Bir küvette bu renkte daha fazla top yoksa, robot kendi kağıt şeridini iade etmeli ve yenisini toplamalıdır.

Bu görev şartlı dallanma, döngü, hata yönetimi ve ilerici düşünmeyi gerektirir. Dil veya faaliyet ne olursa olsun, bir programcının iyi olması gereken her şey.

"Robotlar" ve "programcılar" takas edebilmek için iki kez böyle bir şey çalıştırın. Arada, yukarıdaki düşünme kalıpları hakkında küçük bir ders verin ve ikincisinde çok daha iyi performans gösterecekler, programlamadaki büyük olaylar üzerine küçük bir konuşma yaparak, Nazileri yenerek, aya, internete ve Potansiyel ve meşgul programcılar için bir odanız olacak!


1
Bunu neden +10 veremiyorum? Bu harika bir fikir.
Xynariz

@ Xynariz teşekkürler! Bunu birkaç kez gerçekten küçük gruplarla yaptım ve genellikle eşit parçaların eğlenceli ve sinir bozucu olmasına yol açıyor - ancak hayal kırıklığı, çocukların henüz anlamadığı bilgisayarları değil, yaramaz "robotlarda".

Bazen insanlar bilgisayarların tam olarak söylediklerini yapmakta çok, çok iyi olduklarını anlamış gibi görünmezler. Bu konuda bir CyberChase bölümü bile var ... (gizler)
Xynariz

7

Birçok programcı yetiştirdim. Sahip olduğun tek şey 2 saatse, nasıl kodlayacaklarını öğretmekten zahmet etme. Bilgisayar laboratuarı da gereksiz. Sıfırdan merhaba dünyaya gitmek için, sınıfın yarısını kaybedecek ve 2 saatinizin 45'ini aksaklıklarla başa çıkmak ve hiçbir şey yapmamak için harcayacaksınız.

Onlara bir programcı gibi düşünmenin nasıl bir şey olduğunu göstermede daha fazla şansınız olabilir. Her birine birer kağıt ve kalem verin ve masalarından cep telefonlarını nasıl alabilecekleri ve bir telefon görüşmesi yapmaları için kendi dillerinde bir program yazmalarını söyleyin. Cevaplarıyla yürü. Eğer herhangi bir tuza kodlu bir kodunuz varsa, programlarına girebilir ve onları nasıl daha iyi hale getirebileceklerini ve sahip olmanız gereken ayrıntıyı nasıl sağlayabileceklerini söyleyebilirsiniz. Ardından, sıradan bir şey yapmak için kendi sözcükleriyle bir program yazmalarını isteyin. Pantolonunu giy, dişlerini fırçala, kapıyı aç, her neyse. Aynı şeyi o programla yapın.

Onlara bir programcı gibi düşünmenin nasıl bir şey olduğunu bir tat verin. Bundan 2 saat içinde onlara Python öğretmeye çalıştığınızdan kesinlikle daha fazlasını alacaklar.


6

Alice'i deneyebilirsin . 3D animasyon için bir IDE ve API. Bu nesnelerin inşa her türlü sahiptir (tavşan, uzaylılar, ağaçlar, binalar, ...) çok üst düzey yöntemlerle, bir ilk sahnede koyabilmesi: gibi walk(north)(hangi karakter hamle yaparken kollarını ve bacaklarını canlandıran) ve say("my name is Winky")bir çizgi film balonunun karakter ağzından çıkmasına neden olabilir.

Klavye ve fare olaylarını bağlamanıza izin verir, böylece etkileşimli olanları yapabilirsiniz.

Temel programlama dili Java'dır, ancak IDE size ifadelerin parçalarını bir editör penceresine sürükleyip bıraktığınız grafiksel bir değişken verir. (Sözdizimi hatası oluşturmanıza izin vermez.)

Her şeyi bir sahneyle önceden ayarlayabileceğinizi ve böylece programlama tecrübesi olmayan birinin birkaç saat içinde ilginç bir şeyler yapabileceğini düşünüyorum.


1
Bu yaklaşımı kullanmakta tereddüt duyarım; daha genç öğrenciler için işe yarayabilir, ancak lise öğrencilerinin onu çocukça olarak görme olasılıkları daha yüksektir. Bu , 2 saatlik bir zaman diliminde bir şeyi tamamlamanın hızlı bir yolu olduğunu
söylüyor

6

Kodlama, bir oyuncak veya grafik dilinde bile, bir saat içinde çok zor görünüyor. Kahretsin, Alice'i tekrar alıp 2 saat içinde değerli bir şey yapabileceğimden emin değilim. Belki bir hafta sonu, ama 2 saat değil.

CS'yi temel şartlara indirmeyi öneriyorum: problem çözme ve analiz. Grubu takımlara ayırın. Birkaç üst düzey hesaplama problemini tanımlamak için 10 dakikanızı ayırın. Bunlar matematik veya CS geçmişi az olan insanlara kolayca açıklanabilecek kolay problemler olmalıdır. Örnekler şunları içerir:

  1. Listeleri sıralama
  2. Minimal yayılan ağaçları bulma
  3. Tamsayılı hesaplama (yaklaşık) kök
  4. vb.

Daha fazla tartışma ve görevi açıklamak için 10 dakika daha bekleyin. Her gruba, beyin fırtınası yapacakları bir problem atanır. Takımın kendilerine verdikleri problem için bir çözüm veya çözüm (ler) bulması için işbirliği içinde yarım saat sürecek. Ardından, grubun tamamındaki çözümleri gözden geçirmek için bir saat ayırın ve çocukların çalışıp çalışmadıklarını, sorunu çözmenin daha hızlı / daha iyi bir yolu olup olmadığını öğrenmelerini sağlayın.

Çocuklar doğru / optimal bir çözüme uyamazsa, sorun değil. Sadece cevapları vermeyin - bu kesinlikle çok önemlidir. Çocukların artık STEM yapmamasının nedeni, eğitimcilerin çocuklara her şeyin zaten çözülmüş olduğu izlenimini vermesidir. Çocukların bu sorunları çözmeye çalışmasına ve kendi başlarına başarılı ya da başarısız olmasına izin vermek çok olgun danışmanlar alacaktır. Doğru cevabı elde etmek mesele değil. Mesele, çocuklara ilginç problemler vermek ve çocuklara bilgisayar biliminin ne anlama geldiğini göstermek: problemleri çözmek ve doğruluk ve verimlilik için çözümleri değerlendirmektir. Çocukların kendi cevaplarını bulmalarına izin vermek, onlara sahip olma duygusu verir ve kendilerini meşgul hissetmelerine yardımcı olur.

Elbette, çocuklar doğru / iyi / en iyi bilinen cevapları alıp almadıklarını sorarsa, onlara gerçeği söyleyin. Ancak, öğrencilerin çözümlerini tartışmanın bir sonucu olarak, organik olarak ortaya çıkmadıkça, sadece cevapları vermeyin. Özetlemek:

  1. Çocuklara kolay anlaşılır fakat keşfedilecek zengin problemler verin.
  2. Çocukların kendi çözümleriyle gelmelerine izin verin, ancak çocukların eldeki sorunu anlamalarını sağlamak için yeterli yardım sağlayın.
  3. Bir grup ortamında doğruluğu / verimliliği tartışın ve gruplara çözümlerini açıklama şansı verin. Danışmanlar olarak, doğruluk / verimlilik tartışmasını karlı bir şekilde yapabileceğinizi düşündüğünüz kadar uzatabilirsiniz.
  4. Hiçbir koşul altında, temelde öğrenciler tarafından sağlananlar ile özdeş olmadıkça, problemin kendinize veya bilinen herhangi bir çözümünü sunmamalısınız. Görünüşe göre CS, insanların zaten tüm cevapları çözdüğü bir alan.
  5. Mümkünse, çocukları bir şeyler öğrenmiş gibi hissetmelerini sağlayın, ancak yine de soruları olsun: En iyi yanıtları buldular mı? Diğer soruları da benzer şekilde çözebiliyor mu? Onlara daha sonra üzerinde çalışacakları bir şey vermek için onlara sindirimi kolay bir biçimde bazı çözülemeyen bir problem bile sunabilirsiniz.

Dostça bir yarışmada, çukurlaşma ekiplerini birbirlerine karşı bile düşünebilirsiniz. Ekip çiftlerine aynı problemi verin ve kimin daha iyi bir çözüm bulacağını görün.
Patrick87

1
Bu tür yarışmalar, utangaç insanları şiddetle caydırır ve sadece zaten haberi bilenlerin egolarını destekler. Bu sadece CS imajını "sadece inekler için" olarak güçlendirir.
adrianN

6

Şimdi 17 yaşındayım ve 16 yaşımdayken programlamaya başladım. Hikayemi anlatacağım ve bazı önerilerde bulunacağım. BSOD'lerimi düzeltmek için 500 $ istedi ve ben de ödemedim, ben kendi başıma düzelttim. . O zaman c ++ 'ın ne olduğu hakkında hiçbir fikrim yoktu, hiç duymadığımı bile sanmıyorum. Bu yüzden cpp.com'a gittim (çok kötü öğreticiler, kötü ve modası geçmiş uygulamaları öğreneceksiniz) ve temelleri öğrenmeye başladım. Aklım çıldırdı ve gerçekten sorunuma neden olan virüsün c ++ ile yazıldığını ve bu da beni ilgilendirdiğini öğrendim. Daha sonra okumaya, derleme ve diğer yüksek seviye dilleri öğrenmeye başladım. Önce kötü amaçlı yazılım ve Grafik programlama hakkında bilgi edinmek istemeye başladım ve yaptım.

  1. Bu kulağa kötü gelebilir, ancak benim yaşımdaki birçok insan aslında programlamanın yıkıcı tarafı ile ilgileniyor. Arkadaşlarımdan c ++ ile oldukça iyi olduğumu söylediğim ilk soru “Virüs yapabilir, notları değiştirebilir ya da oyunları hackleyebilirim” demiştim. O seviyede değilim. Son zamanlarda dll enjeksiyonu üzerinde çalışıyorum. Orada. Belki de kötü niyetli ya da tehlikeli olmayan ama yine de ilginç olan kötü amaçlı yazılımlar boyunca bir şeyler bulabilirsin. (Belki bir öğrencinin giriş bilgilerini okul sunucusundan alabilirsiniz) Onlara virüslerin ve kötü amaçlı yazılımların nasıl çalıştığı hakkında da konuşabilirsiniz.
  2. Pokemon çizgileri boyunca küçük bir oyun geliştirin ve oyunların ve oyun motorlarının nasıl çalıştığını onlara anlatın. Birçok insan bunun gibi bir çok 2d oyunda karakterin aslında hareket etmediğini, arka planın ve karakterin sadece bir animasyon kullandığını, rastgele sayılardan bahsettiğini bilmekten şaşırır. Bazı 3D gösteriler ile gelip.
  3. Kodun ne yaptığını açıklamaktan uzak durmaya çalışın, programın ne yaptığını anlatmaya çalışınkod hakkında çok fazla konuşmadan kendisi yapar. Tecrübelerime göre bu, özellikle dilin temellerini anlamadıkları takdirde insanların dikkatini kaybetmenin kolay bir yoludur. Aslında, kaynak kodu gerçekten oraya koymamayı denerdim, çünkü birinin 500 satırlık kod satırına bakması ve hiçbirini anlamadığı için oldukça cesaret kırıcı olabilirdi. Ayrıca, ona kanıtladığın biri bana benziyorsa, meraklı bir akılları olduğu için muhtemelen bir zincir soru soracaklardır. Yani: Rastgele sayılar hakkında konuşuyorsunuz, elektronik gürültü hakkında onlara açıklamak zorunda olduğunuzdan, rastgele sayıların ne için ve nereden geldiklerini soruyorsunuz, muhtemelen kendinizi nerede olduğunuzu gösteren bir durumda bulacaksınız. Tıpkı "Bilmiyorum" gibi.
  4. Lego Mindstorms harika bir fikir. Uzun rotayı takip etmek ve ana dili kullanmak istemiyorsanız, kullanabileceğiniz blok tarzı bir programlama dili vardır. Dili yaklaşık 30-40 dakikada buldum, düşündüğünüzde her şey sıraya giriyor

  5. Hızlı bir şekilde bir uygulama geliştirebilir ve gösterebilir, uygulama geliştirmeden gelebilecek $$ hakkında onlarla konuşabilirsiniz.


4

favorilerimden bazıları

  • fraktallar üretiliyor . derin matematik ve bilgisayar grafikleri ile güçlü bir bağları vardır ve ayrıca paralellik için doğal olarak uygundurlar. karmaşık ölçekleri ve ortaya çıkan davranışları gösterir , özellikle de keyfi ölçekleri yakınlaştırdığınızda ve fen ve doğa olaylarına güçlü bağlar vardır. Birden fazla makinede çalışan bazı paralel fraktal kodlar yazmak zor değil. bir deney, her makineye işlediği rasgele çizgileri (örneğin, bir kuyruktan çizgileri işleyen makineler "köle") göstermesini sağlamak ve ardından merkezi bir makine birleştirilmiş sonuçları gösterir.

  • lego robotiği (veya diğer robotik kitler, örneğin damga ). beyin fırtınası bir oyuncaktır, ancak soyut kavramların somut bir göstergesi olarak hizmet veren çok gelişmiş bir araç olabilir. üzerlerinde çalıştırılabilecek yazılımlar çok karmaşık olabilir ve karmaşık bir düşünce-düşünce hareketi döngülerine / algoritmalarına sahip olabilirler. çok güzel inşaat kitapları var. Son zamanlarda dünya rekorunu kıran Rubik küpü çözücüler de etkileyici .

  • ahududu pi çok ilgi ve kullanım gören yeni ve ucuz bir platformdur. linux programlama, robotik vb. gösterimi için kullanılabilir ve HD çıktısı vardır, vb. bakınız. örneğin Lego raflı Southhampton ahududu pi süper bilgisayarı .

  • Diğer cevapta belirtildiği gibi Logo eski bir klasik. daha yeni bir açı ise oyun programlamasıdır, örneğin Scratch ( MIT'de icat edilmiştir ) adlı yeni ortaya çıkan popüler bir dil . birçok doğal / gelişmiş CS konusu öğretebilir.


2

başka bir açı var. Bilgisayar bilimlerinde, bilimsel anlayışın sınırlarında merak / merak uyandırabilecek, yani yakındaki terra bilinmeyenliğinin araştırılması gibi pek çok ilginç açık sorun ya da yeni ortaya çıkan teknolojiler vardır . Sorunları ortaya çıkarırsanız ve sonra sınıfın çözümlerin sonuçları hakkında bir tartışmaya katılmasını sağlarsanız, bu önemli bir ilgi / ilham kaynağı olabilir. [Bilgisayar laboratuvarının kullanılabilirliğinden bahsettiğinizden beri, bu alanlarla ilgili uygulamalı bilgisayar alıştırmaları ile yaratıcı bir şekilde ortaya çıkmanız da mümkün olacaktır.]

bu bir bilim-kurgu hissine kapılabilir, ancak CS'de diğer alanların olmadığı gibi, kısa sürede bir zamanlar gerçeğe dönüşen şeyi dönüştürür. aynı zamanda günümüzün manşetlerine bağlı olarak tartışmalı ve zamanında olabilirler ve öğrenciler dünyamızdaki / toplumdaki her yerde bulunan CS'nin ne kadar yaygın olduğunu ve genel olarak yorumlandığında ne kadar önemli olduğunu kavramaya başlayabilirler. işte birkaç tane büyük olanlar:

  • DNA'dan protein katlama problemine . doğru hesaplamak için bir algoritma var mı?

  • Genel olarak yapay zeka . mümkün mü? Etik var mı?

  • robotik , çeşitli anahtar ortaya çıkan alanlara sahiptir. örneğin otonom arabalar / sürüş . onun yakın ufukta. bu toplumu nasıl etkileyecek? çok uzun zaman önce DARPA yarışmasının videosu etkileyici. Kurzweil'in yazısının içine girmesi gereken çok şey var. dronlar nadiren açıkça tartışılan karmaşık bir konudur ve yurt içinde giderek daha fazla kullanılacaktır. Mars rovers olağanüstü teknoloji ve böyle sistemler debug gerekiyordu nasıl olarak bunun arkasında inanılmaz hikayeleri vardır uzaktan-interplanetarily onlar başarısız olunca.

  • Suçu / terörizmi tespit eden BT tabanlı gözetim sistemleri son zamanlarda yoğun bir şekilde haberlerde yer alıyor.

  • Higgs bozonu keşfedilemiyordu ve süper kateter "büyük verileri" analiz etmek için büyük CS tabanlı sistemler olmadan hiçbir şekilde işlev göremiyordu.

  • Moore kanunu . ne kadar devam edecek? zaten toplumu / insanlığı ne kadar etkiledi?

  • Kuantum bilgisayarlar . onlar mümkün mü daha hızlı olacaklar mı? Düşük maliyetli mi yoksa hep tuhaf mı olacaklar? Dwave renkli bir vaka çalışması, Aaronson tarafından yazılmış harika bir SciAm makalesi var.

  • Google pagerank algoritması , modern bilgisayar biliminin çok milyarlarca dolarlık harikalarından biridir. uzatılacak mı Spam filtreleme nasıl çalışır? Şirket imajları analiz etme yolunda ilerliyor gibi görünüyor.

  • algoritmik / yüksek frekanslı işlem artık büyük miktarlarda işlem hacmi / değeri taşıyor. iyi mi kötü mü artıyor mu, azalıyor mu? gelecekte düzenlenecek mi? Ne tür bir hesaplamalı silahlanma yarışı söz konusudur?

  • süper bilgisayarlar çok büyük, şaşırtıcı problemleri çözüyor ve büyüyor. sınırlar var mı ne hesaplarlar ve gelecekte ne hesaplarlar? biraz ilgili, Büyük Veri ve veri madenciliği .

  • sosyal paylaşım sitelerinin on yıldan daha az bir sürede artması büyük etki yarattı. onlar halk ayaklanmalarını örneğin yakıt katılan Arap baharı ve duvar st İşgal . gelecekleri nedir?


2

Bir teklifim var

  • bilgisayar bilimine odaklanır (programlama veya yardımcı değil),
  • çoğu çocuğun bildiği bir öncül ile başlar ve
  • aslında denenmiş ve çalışıyor.

Lise öğrencileriyle Mayın Tarlası hakkında küçük atölyeler düzenliyoruz . Atölye aşağı yukarı böyle gider:

  1. Oyunu biraz oynayalım (bilelim).

  2. Az önce ne yaptık? Çözmeye çalıştığımız sorun nedir? Genel kuralları formüle edebilir miyiz?

    Bu genellikle biraz zaman alacaktır. Çocuklar, girdi ve çıktı açısından sorunları formüle etmek için kullanılmaz, bunları çözmek için genel kuralları uygularlar. Daha önce programlanmış olanlar bu çabayı takdir edecektir; "spagetti koduna" atıfta bulunmak yardımcı olabilir. Bununla birlikte, bir kerede yalnızca bir hücre düşünülerek kurallar çoğu zaman basit olacaktır.

  3. Kurallarla ilgili problemleri sergilemek.

    Bu noktada, bir Mayın Tarlası simülatörünü tanıtmak istiyorsunuz . Bayer, Snyder ve Chouiery tarafından mükemmel değil, ancak özenle tasarlanmış senaryolar sergilemenize izin veriyor.

  4. Daha fazla senaryoyu kapsayacak şekilde kural kümesini geliştirin.

    Bu genellikle öğrencileri birlikte daha fazla hücreyi araştırmalarına yönlendirir. Bunları, eldeki bilgileri doğrusal bir denklem sistemi olarak ifade etme gibi "tüm çözme" yaklaşımlarına yönlendirebilirsiniz - eğer mevcut bilgileri matematiksel terimlerle ifade etmeye çalışırsanız bu ortaya çıkar. Öğrenciler zaten bu tür sistemlerin nasıl çözüleceğini biliyor!

  5. Sınırlamaları not edin.

    İlk olarak (deterministik) bir çözümü olmayan senaryolar var. Dahası, kaba kuvvetleri gelişmiş stratejilerimizle karşılaştırabiliriz. Hıza karşı gücü değiştirebilir miyiz? Denklem sistemi yaklaşımı ortaya çıkarsa, bunu yalnızca gerçekler üzerinde verimli bir şekilde çözebileceğimizi unutmayın, ancak ikili cevaplara ihtiyacımız var. Büyük çalışma sürelerine yol açan senaryolar oluşturmak çok zor değil (göstermek için bilgisayar cebirini kullandık).

Gruba bağlı olarak bu yaklaşım, bilgisayar biliminin çoklu ilkelerini doğal bir şekilde ele almayı sağlar: sorunları tanımlamak, genel algoritmaları tanımlamak, yinelemeli problem çözmenin yanı sıra hesaplanabilirlik ve karmaşıklık konularına da değinilebilir.

Öğrencilerin geri bildirimleri genel olarak olumlu olmuştur; kendilerini meşgul hissediyorlar ve kavramlara ilgi duyuyorlar. Eserlerin çoğunu yapmalarına izin vermek önemlidir, ancak sivri uçlu sorular sorarak dikkatlice istenen yöne sürükleyin.


1

yapacak çok şeyiniz var ... ama "para" gibi çıkacak gibi görünen bir şey var, bu yüzden "P ≠ NP" sorusunu ve yedi bin yıllık ödülü sunun, ortaokuldayken ben okudum, anlamadıklarımdan sadece notasyonları bilmiyordum: büyük ödül ve soru var! Diğer şeyler matematik ve bilgisayar bilimleri arasındaki bağlantıyı sunacaktı: denklem çözme, bilgisayarları kullanarak çözümleri kontrol etme.

önerebileceğim diğer şeyler ise Alan turing'e "bilgisayar biliminin babası" turing'i sunmak ve öyküsünü anlatmak. önerdiğim son şey, sıfır bilgi kanıtı ve "waldo nerede?" oyunudur. ve hile yapmadan, kriptografi ve siber saldırılar olmadan oynamak.


-2

Facebook ile herhangi bir şey yap, onu seviyorlar. Belki bu yeni başlayanlar için zor olsa da, profillerinin birbirine nasıl bağlandığını gösteren bağlanma grafikleri çizmelerine izin verebilirsin. Javascript'i programlama dili olarak tavsiye ederim.

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.