Apa yang harus saya lakukan dengan sekelompok anak berusia 16-17 tahun untuk membuat mereka tertarik pada ilmu komputer?


40

Saya akan terlibat dengan semacam 'hari terbuka' di universitas saya dalam beberapa minggu. Sebagai bagian dari waktu ini, saya (bersama seorang rekan kerja) diberikan sejumlah besar siswa tingkat sekolah menengah selama dua jam, serta lab komputer yang cukup besar untuk menampung semuanya, dan saya harus melakukan semacam aktivitas atau serangkaian kegiatan dengan mereka untuk mendorong mereka melakukan ilmu komputer (di universitas saya, idealnya, tetapi secara umum juga). Saya benar-benar bingung apa yang harus dilakukan di sini, dan menyambut setiap dan semua saran.


Saya bukan seorang guru atau ahli, namun saya menyarankan Anda untuk mengajari mereka cara memprogram permainan puzzle kecil (pilih satu yang generalisasi-nya NP-lengkap) yang mencakup aspek-aspek seperti: level level, pengecekan solusi, penemuan solusi otomatis: - )
Vor

1
Saya menyukai Kuliah Natal Royal Institution 2008 . Anda mungkin ingin mencoba kegiatan / demo serupa.
melhosseiny

Jawaban:


21
  • Anda dapat meminta mereka menggambar menggunakan tata bahasa bebas konteks. konteks free art Ini juga berfungsi untuk orang-orang yang tidak pernah memprogram sebelumnya dan menskala untuk programmer berpengalaman. Bahasa dasar cukup mudah untuk dijelaskan dalam waktu setengah jam.
  • Mempelajari sesuatu tentang geometri menggunakan grafis Turtle juga harus menyenangkan. Logo dirancang untuk anak-anak, jadi siswa sekolah menengah seharusnya tidak memiliki masalah. Ada video bagus tentang anak-anak yang menggunakan Logo di youtube
  • Jika Anda bisa mendapatkan beberapa robot MindStorms, memprogramnya sangat menyenangkan.
  • Ada berbagai permainan pemrograman di mana Anda memprogram robot untuk bertarung satu sama lain, atau program perakitan yang mencoba menimpa satu sama lain dalam mesin virtual. Wikipedia pada topik , pertanyaan terkait stackoverflow
  • Anda juga dapat memikirkan semacam proyek perangkat keras. Misalnya, membuat mikrokontroler berkedip LED tergantung pada jumlah email yang belum dibaca di kotak masuk Anda.
  • Mintalah mereka menerapkan algoritma pembuatan labirin yang berbeda , cobalah untuk menghasilkan kriteria yang membuat labirin "sulit bagi manusia". Jika waktu memungkinkan, perluas algoritma untuk memasukkan tidak hanya koridor tetapi juga kamar.
  • Beli beberapa Arduino dan LED. Biarkan mereka memprogram lampu kilat.

1
Anda mungkin ingin menambahkan tautan ke tutorial pemrograman komputer Khan Academy ke daftar: Ini adalah tambahan yang sangat keren / interaktif di atas. Sebagai contoh: khanacademy.org/cs/intro-to-animation/830742281
PhD

+1 untuk CFG juga - versi lain dari gagasan yang sama yang akan bagus untuk dicoba dan diterapkan adalah dengan mencoba dan melakukan menggambar semak dengan Sistem Fungsi Iterated; minta mereka mulai dengan sebuah persegi panjang, atur beberapa persegi panjang lagi, dan kemudian ulangi 'isi' dari persegi panjang pertama (termasuk semua subrectangles) ke dalam masing-masing subrectangles. Anda dapat mengatur versi digital untuk tujuan perbandingan.
Steven Stadnicki

13

Lihat Ilmu Komputer Unplugged . Dari situs mereka:

CS Unplugged adalah kumpulan kegiatan belajar gratis yang mengajarkan Ilmu Komputer melalui permainan dan teka-teki menarik yang menggunakan kartu, tali, krayon, dan banyak berlarian.

Kegiatan ini memperkenalkan siswa pada konsep dasar seperti bilangan biner , algoritma dan kompresi data , terpisah dari gangguan dan detail teknis yang biasanya kita lihat dengan komputer.

CS Unplugged cocok untuk orang-orang dari segala usia , dari sekolah dasar hingga senior , dan dari berbagai negara dan latar belakang. Unplugged telah digunakan di seluruh dunia selama lebih dari lima belas tahun, di ruang kelas, pusat sains, rumah, dan bahkan untuk acara liburan di taman!


1
Ini adalah saran yang bagus, tapi saya curiga OP menginginkan sesuatu yang benar-benar menggunakan lab komputer yang telah dikesampingkan.
András Salamon

Poin yang valid. Seharusnya ada proyek robocode untuk orang yang tidak tahu pemrograman.
Pål GD

11

Sebagian besar mahasiswa Ilmu Komputer yang saya tahu menganggap belajar program sebagai bagian yang paling menyakitkan dan melemahkan pendidikan mereka. Karena itu saya akan tinggal jauh dari apa pun yang berkaitan dengan pemrograman itu sendiri. Seperti yang sudah ditunjukkan oleh scphantm , Anda mungkin juga tidak akan punya waktu untuk ini.

Apa yang Anda cari adalah latihan dua jam yang memuaskan dua tujuan:

  • Cukup menarik untuk membuat lulusan sekolah menengah cukup tertarik selama dua jam,
  • Ini akan memberi mereka gambaran tentang apa itu Ilmu Komputer, dan mudah-mudahan membuat mereka tertarik.

Tujuan pertama cukup independen dari apa yang sebenarnya akan Anda tunjukkan dan lebih banyak berhubungan dengan menjadi guru / presenter yang baik. Praktik didaktik yang baik, yaitu menjaga audiens tetap berjalan, membiarkan mereka mencoba hal-hal kecil dalam kelompok, memberi mereka istirahat setiap 15 menit, dan seterusnya.

Tujuan kedua adalah sedikit rumit, dan apa yang saya pikir paling baik di sini adalah untuk mengambil masalah yang dapat dijelaskan dengan pengetahuan mereka saat ini, menunjukkan bagaimana Anda dapat menggambarkan solusi secara algoritmik, dan kemudian menunjukkan bagaimana solusi itu dapat dianalisis dan ditingkatkan.

Contoh yang baik adalah masalah jalur terpendek dalam grafik, atau dikenal sebagai sistem navigasi GPS. Tidak perlu penjelasan. Anda bisa memberi mereka peta kecil dengan bobot tepi / panjang ditarik dan sekelompok krayon untuk benar-benar mengeksekusi algoritma saat Anda menggambarkannya.

Anda kemudian dapat memulai diskusi tentang bagaimana Anda akan menemukan jalur terpendek, dan seterusnya, biarkan mereka mencoba untuk merumuskannya sebagai suatu algoritma, dll ... Kemudian Anda menggambarkan algoritma Dijkstra , membiarkan mereka mewarnai simpul sebagai dikunjungi , sementara , dan set yang belum dikunjungi . Bam. Anda punya algoritme!

HAI

PNP


9

Jika Anda hanya memiliki 2 jam, Anda tidak akan menyelesaikan banyak pengkodean. Hanya belajar sintaksis akan sulit pada saat itu, tetapi ada banyak hal yang dapat dilakukan sebagai gantinya.

Sebagai saran, cobalah mengajari mereka mengontrol aliran dan pentingnya menjadi spesifik:

  1. Bagilah kelas menjadi 2, "robot" dan yang lain "programmer".
  2. Munculkan tantangan yang cocok yang membutuhkan logika sederhana, perulangan, dll. - ada contoh di bawah ini.
  3. Mintalah "programmer" menuliskan daftar instruksi yang diberikan kepada "robot"
  4. Mintalah "robot" melakukan instruksi, tetapi biarkan "robot" tahu bahwa jika instruksi membingungkan mereka diizinkan untuk berhenti, membuat kesalahan atau bertindak sampai "programmer" berhenti dan mendebug mereka. Dijamin, jika diberi kesempatan untuk bermain, seorang siswa sekolah menengah akan.

Sebagai tugas contoh, siapkan beberapa bak bola berwarna berbeda, dengan potongan kertas berwarna yang sesuai di tempat lain dan ember kecil yang cukup untuk setiap pasangan robot / pemrogram. Tugasnya adalah membuat robot mengisi ember dengan bola, namun untuk melakukannya mereka hanya bisa mengambil bola yang cocok dengan selembar kertas tertentu. Jika tidak ada lagi bola dengan warna seperti itu dalam sebuah bak, maka robot harus mengembalikan selembar kertas dan mengumpulkan yang baru.

Tugas ini membutuhkan percabangan bersyarat, pengulangan, penanganan kesalahan, dan berpikir secara prosedural. Semua hal yang perlu dilakukan oleh seorang programmer, terlepas dari bahasa atau aktivitasnya.

Jalankan sesuatu seperti ini dua kali sehingga "robot" dan "programmer" dapat bertukar. Di antaranya, berikan pelajaran kecil tentang pola pemikiran di atas, dan mereka akan melakukan jauh lebih baik di yang kedua, ditutup dengan pembicaraan kecil tentang acara-acara besar dalam pemrograman - mengalahkan Nazi, pergi ke bulan, internet, dan Anda akan memiliki ruang programmer yang potensial dan terlibat!


1
Mengapa saya tidak bisa memberikan ini +10? Ini ide yang bagus.
Xynariz

@Xynariz terima kasih! Saya sudah melakukannya beberapa kali dengan kelompok yang sangat kecil, dan pada akhirnya berakhir menjadi bagian yang sama menyenangkan dan membuat frustrasi - namun frustrasi ada pada "robot" yang salah dan bukan komputer yang belum dipahami anak-anak.

Kadang-kadang orang tampaknya tidak mengerti bahwa komputer sangat, sangat pandai melakukan apa yang Anda katakan kepada mereka .. tidak lebih, tidak kurang. Bahkan ada episode CyberChase tentang ini ... (menyembunyikan)
Xynariz

7

Saya sudah melatih banyak programmer. Jika yang Anda miliki hanya 2 jam, jangan repot-repot mengajari mereka cara membuat kode. Laboratorium komputer juga tidak perlu. Untuk beralih dari nol ke halo dunia, Anda akan kehilangan setengah kelas dan menghabiskan waktu 45 jam dari 2 jam Anda berurusan dengan gangguan dan tidak menyelesaikan apa pun.

Anda mungkin lebih beruntung menunjukkan kepada mereka bagaimana rasanya berpikir seperti seorang programmer. Beri mereka masing-masing kertas dan pena dan beri tahu mereka untuk menulis sebuah program dalam bahasa mereka sendiri tentang cara mengangkat telepon seluler mereka dari meja dan melakukan panggilan telepon. Berjalanlah melalui jawaban mereka. Jika kode Anda sedikit garam, Anda dapat melangkah melalui program mereka dan memberi tahu mereka cara membuatnya lebih baik dan bagaimana menyesuaikan detail yang harus Anda miliki. Kemudian mintalah mereka untuk menulis sebuah program dengan kata-kata mereka sendiri untuk melakukan sesuatu yang biasa. Kenakan celanamu, sikat gigi, buka pintu, apa pun. Lakukan hal yang sama dengan program itu.

Beri mereka rasa bagaimana rasanya BERPIKIR seperti seorang programmer. Mereka pasti akan mendapatkan lebih banyak dari itu daripada Anda mencoba mengajari mereka Python dalam 2 jam.


6

Anda mungkin mencoba Alice . Ini adalah IDE dan API untuk animasi 3D. Ia memiliki semua jenis objek bawaan (kelinci, alien, pohon, bangunan, ...) yang dapat Anda tempatkan dalam adegan awal, dengan metode tingkat sangat tinggi: seperti walk(north)(yang menggerakkan lengan dan kaki saat karakter bergerak) dansay("my name is Winky") yang dapat menyebabkan gelembung kartun keluar dari mulut karakter.

Ini memungkinkan Anda untuk menghubungkan acara-acara keyboard dan mouse sehingga Anda dapat melakukan hal-hal yang interaktif.

Bahasa pemrograman yang mendasarinya adalah Java, tetapi IDE memberi Anda varian grafis tempat Anda menyeret dan melepaskan bagian ekspresi ke jendela editor. (Itu tidak akan membiarkan Anda membuat kesalahan sintaks.)

Saya pikir Anda bisa mengatur semuanya dengan sebuah adegan sehingga seseorang tanpa pengalaman pemrograman dapat melakukan sesuatu yang menarik hanya dalam beberapa jam.


1
Saya ragu menggunakan pendekatan ini; ini mungkin bekerja untuk siswa yang lebih muda, tetapi siswa sekolah menengah lebih cenderung melihatnya sebagai kekanak-kanakan. Yang mengatakan, ini adalah cara cepat untuk menyelesaikan sesuatu dalam batas waktu 2 jam ...
Izkata

6

Pengodean, bahkan dalam mainan atau bahasa grafis, tampaknya dibuat-buat dalam waktu satu jam. Sial, saya tidak yakin bisa menjemput Alice lagi dan melakukan apa pun yang bermanfaat dalam 2 jam. Mungkin akhir pekan, tetapi tidak 2 jam.

Saya sarankan mendidihkan CS ke hal-hal mendasar: pemecahan masalah dan analisis. Bagi kelompok menjadi beberapa tim. Luangkan 10 menit untuk menjelaskan beberapa masalah komputasi tingkat tinggi. Ini harus menjadi masalah mudah yang dapat dengan mudah dijelaskan kepada orang-orang dengan sedikit latar belakang matematika atau CS. Contohnya termasuk:

  1. Daftar pengurutan
  2. Menemukan pohon merentang minimal
  3. Komputasi (perkiraan) akar bilangan bulat
  4. dll.

Ambil 10 menit lagi untuk diskusi lebih lanjut, dan untuk menjelaskan tugas tersebut. Setiap kelompok diberi satu masalah, untuk itu mereka melakukan brainstorming solusi. Tim akan memiliki waktu setengah jam untuk secara kolaboratif mencari solusi atau solusi untuk masalah yang ditugaskan kepada mereka. Kemudian, luangkan satu jam untuk membahas solusi di seluruh kelompok, dan biarkan anak-anak mencari tahu apakah mereka bekerja atau tidak, apakah ada cara yang lebih cepat / lebih baik untuk menyelesaikan masalah, dll.

Jika anak-anak tidak mendapatkan solusi yang benar / optimal, tidak apa-apa. Namun, jangan hanya memberikan jawabannya - ini sangat penting. Alasan mengapa anak-anak tidak melakukan STEM lagi adalah karena pendidik memberi kesan pada anak-anak bahwa semuanya sudah diketahui. Dibutuhkan konselor yang sangat dewasa untuk membiarkan anak-anak mencoba memecahkan masalah ini, dan untuk berhasil atau gagal, sendiri. Mendapatkan jawaban yang tepat bukan itu intinya. Intinya adalah memberi anak-anak masalah yang menarik dan menunjukkan kepada anak-anak tentang ilmu komputer: menyelesaikan masalah, dan mengevaluasi solusi untuk kebenaran dan efisiensi. Membiarkan anak-anak memberikan jawaban mereka sendiri akan memberi mereka rasa memiliki dan membantu mereka merasa terlibat.

Tentu saja, jika anak-anak bertanya apakah mereka mendapat jawaban yang benar / baik / paling terkenal, katakan yang sebenarnya. Tetapi jangan hanya memberikan jawaban, kecuali mereka muncul secara organik sebagai hasil dari mendiskusikan solusi siswa. Untuk meringkas:

  1. Berikan anak-anak mudah dimengerti tetapi masalah yang kaya untuk dijelajahi.
  2. Biarkan anak-anak memberikan solusi mereka sendiri, hanya menyediakan cukup bantuan untuk memastikan anak-anak memahami masalah yang ada.
  3. Diskusikan kebenaran / efisiensi dalam pengaturan kelompok, memberi kelompok kesempatan untuk menjelaskan solusi mereka. Sebagai konselor, Anda bebas mengambil diskusi tentang kebenaran / efisiensi sejauh yang menurut Anda menguntungkan.
  4. Dalam situasi apa pun Anda tidak boleh menghadirkan solusi Anda sendiri, atau yang terkenal, untuk masalah, kecuali jika pada dasarnya identik dengan yang disediakan oleh siswa. Jangan membuatnya tampak seperti CS adalah bidang di mana orang sudah menemukan semua jawaban.
  5. Jika memungkinkan, biarkan anak-anak merasa seperti mereka telah mempelajari sesuatu, tetapi sehingga mereka masih memiliki pertanyaan: apakah mereka menemukan jawaban terbaik? Apakah pertanyaan mereka yang lain dapat mereka pecahkan dengan cara yang sama? Anda bahkan mungkin memberikan mereka beberapa masalah yang tidak dapat diputuskan dalam format yang mudah dicerna untuk memberi mereka sesuatu untuk dikerjakan setelahnya.

Anda bahkan dapat mempertimbangkan mengadu domba tim satu sama lain dalam kompetisi persahabatan. Berikan pasangan tim masalah yang sama dan lihat siapa yang menghasilkan solusi yang lebih baik.
Patrick87

1
Kompetisi semacam itu sangat mencegah orang-orang yang pemalu dan hanya mendukung ego mereka yang sudah mengetahui hal-hal itu. Ini hanya memperkuat citra CS sebagai "hanya untuk kutu buku".
adrianN

6

Saya 17 sekarang dan saya mulai pemrograman sekitar waktu saya berusia 16 tahun. Saya akan menceritakan kisah saya dan daripada membuat beberapa saran: Ketertarikan saya pada pemrograman dimulai ketika saya sedang menonton seorang teknisi komputer yang saya panggil main-main dengan daftar saya dan command prompt ( walaupun dia ingin $ 500 untuk memperbaiki BSOD saya dan saya tidak membayar, saya memperbaikinya sendiri) Jadi saya mencari "command prompt language" di Google dan menemukan bahwa ada sesuatu yang disebut "kode sumber" dan itu memungkinkan Anda untuk memprogram . Pada saat itu saya tidak tahu apa itu c ++, saya bahkan tidak berpikir pernah mendengarnya. Jadi saya melanjutkan dengan cpp.com (tutorial yang sangat buruk, Anda akan belajar praktik buruk dan usang) dan mulai mempelajari dasar-dasarnya. Pikiran saya menjadi gila dan saya benar-benar mengetahui bahwa virus yang saya terinfeksi menyebabkan masalah saya ditulis dalam c ++, yang semakin membuat saya tertarik. Saya kemudian mulai membaca, belajar berkumpul dan bahasa tingkat tinggi lainnya. Pertama saya mulai ingin belajar tentang malware dan pemrograman Grafik dan saya lakukan.

  1. Ini mungkin terdengar buruk tetapi banyak orang seusia saya sebenarnya tertarik pada sisi destruktif dari pemrograman. Pertanyaan pertama yang saya dapatkan dari teman-teman saya ketika saya memberi tahu mereka bahwa saya cukup baik dengan c ++ adalah "Bisakah Anda membuat virus, mengubah nilai, atau meretas permainan" Saya belum cukup pada tingkat itu ... saya sudah mempelajari injeksi dll baru-baru ini, jadi saya mendapatkan sana. Mungkin Anda bisa menemukan sesuatu di sepanjang garis malware yang tidak berbahaya atau ilegal tetapi masih menarik. (Mungkin mendapatkan informasi masuk seorang siswa dari server sekolah) Anda dapat berbicara dengan mereka tentang cara kerja virus dan perangkat lunak berbahaya.
  2. Kembangkan game kecil di sepanjang garis pokemon dan jelaskan kepada mereka bagaimana game dan mesin game bekerja. Banyak orang mungkin akan terkejut mengetahui bahwa dalam banyak permainan 2d seperti ini karakternya tidak benar-benar bergerak, latar belakangnya dan karakternya hanya menggunakan animasi, berbicara tentang angka acak dll. Datang dengan beberapa demonstrasi 3D juga.
  3. Cobalah untuk tidak menjelaskan kode apa , coba beri tahu mereka apa programnyasendiri tidak terlalu banyak berbicara tentang kode. Dalam pengalaman saya, itu adalah cara mudah untuk kehilangan perhatian orang terutama jika mereka tidak memahami dasar-dasar bahasa. Bahkan, saya akan mencoba untuk tidak benar-benar meletakkan kode sumber di luar sana karena itu bisa sangat mengecilkan hati seseorang untuk melihat 500 baris kode dan tidak memahaminya. Juga jika Anda memiliki seseorang yang Anda tunjukkan seperti saya, mereka mungkin akan mengajukan serangkaian pertanyaan karena mereka memiliki pikiran yang ingin tahu. yaitu: Anda berbicara tentang angka acak, mereka bertanya untuk apa angka acak dan dari mana mereka berasal ... daripada Anda harus menjelaskan kepada mereka tentang kebisingan elektronik dan bagaimana acak dan semuanya, daripada Anda mungkin akan menemukan diri Anda dalam situasi di mana Anda seperti "Aku tidak tahu".
  4. Lego Mindstorms adalah Ide yang bagus. Jika Anda tidak ingin mengambil rute panjang dan menggunakan bahasa utama, ia dilengkapi dengan bahasa pemrograman gaya blok yang dapat Anda gunakan. Saya menemukan bahasanya dalam sekitar 30-40 menit, semuanya berbaris ketika Anda memikirkannya

  5. Anda dapat dengan cepat mengembangkan aplikasi dan memamerkannya, berbicara kepada mereka tentang $$ yang dapat berasal dari pengembangan aplikasi.


4

beberapa favorit saya

  • menghasilkan fraktal . mereka memiliki tautan kuat ke matematika mendalam dan grafik komputer, dan juga mereka secara alami cocok untuk paralelisme. itu menggambarkan kompleksitas dan perilaku yang muncul , khususnya ketika Anda memperbesar skala yang sewenang-wenang, dan memiliki ikatan yang kuat dengan ilmu pengetahuan dan fenomena alam. tidak sulit untuk menulis beberapa kode fraktal paralel yang berjalan pada banyak mesin. satu percobaan adalah membuat setiap mesin menampilkan garis acak yang diprosesnya (mis. mesin "budak" yang memproses garis dari antrian) dan kemudian mesin pusat menampilkan hasil gabungan.

  • robotika lego (atau kit robotika lainnya, mis. perangko ). mindstorms adalah mainan, tetapi bisa menjadi mainan yang sangat canggih yang berfungsi sebagai demonstrasi nyata dari konsep-konsep abstrak. perangkat lunak yang dapat dijalankan dengan mereka bisa sangat kompleks, dan mereka dapat memiliki loop / algoritme akal-pikir-tindakan yang rumit. ada banyak buku konstruksi yang bagus. juga mengesankan adalah pemecah kubus Rubiks , baru-baru ini memecahkan rekor dunia.

  • raspberry pi adalah platform murah baru yang melihat banyak minat dan penggunaan. dapat digunakan untuk mendemonstrasikan pemrograman linux, robotika dll, dan memiliki output HD, dll. lihat misalnya supercomputer Southhampton raspberry pi dengan rak Lego.

  • Logo seperti yang disebutkan dalam jawaban lain adalah klasik lama. sudut lain yang lebih baru adalah pemrograman game misalnya dengan bahasa populer baru yang muncul yang disebut Scratch (ditemukan di MIT ). dapat mengajarkan banyak topik CS alami / lanjutan.


2

ada sudut lain. ada begitu banyak masalah terbuka yang menarik atau teknologi yang muncul dalam ilmu komputer di garis depan pemahaman ilmiah yang dapat memicu keingintahuan / keajaiban, yaitu eksplorasi terra incognita terdekat . jika Anda mengangkat masalah dan kemudian minta kelas berpartisipasi dalam diskusi tentang konsekuensi solusi, yang dapat memicu minat / inspirasi yang signifikan. [karena Anda menyebutkan ketersediaan lab komputer, juga dimungkinkan untuk membuat beberapa latihan komputer secara langsung terkait dengan bidang-bidang ini.]

ini bisa mengambil perasaan sci-fi tetapi dalam CS tidak seperti bidang lain, itu mengubah apa yang dulunya scifi menjadi kenyataan dalam waktu singkat. mereka juga bisa menjadi kontroversial dan tepat waktu, berhubungan dengan tajuk utama hari ini, dan siswa dapat mulai memahami betapa CS ada di mana-mana di dunia / masyarakat kita, dan seberapa signifikan hal itu, ketika ditafsirkan secara luas. berikut adalah beberapa yang besar:

  • Masalah pelipatan DNA menjadi protein . apakah ada algoritma untuk menghitungnya secara akurat?

  • kecerdasan buatan pada umumnya. apa itu mungkin? apakah ada etika yang terlibat?

  • robotika memiliki berbagai bidang utama yang muncul. mis. otonom / mengemudi . itu di cakrawala nearterm. bagaimana ini akan mempengaruhi masyarakat? video dari kontes DARPA belum lama ini mengesankan. Tulisan Kurzweil memiliki banyak hal untuk dibahas. drone adalah topik rumit yang jarang dibahas secara terbuka dan akan semakin sering digunakan di dalam negeri. para penemu mars adalah teknologi luar biasa dan ada kisah-kisah menakjubkan di baliknya, seperti bagaimana sistem harus di-debug dari jarak jauh — secara antar-plan ketika mereka gagal.

  • Sistem surveilans berbasis IT untuk mendeteksi kejahatan / terorisme menjadi berita utama akhir-akhir ini.

  • asumsi NP. oh ya dan jangan lupa untuk menyebutkan hadiah $ 1 juta yang menggantung sebagai dekat dengan apa yang disebut dalam pengajaran [teori], "motivasi"!

  • bos Higgs tidak dapat ditemukan dan supercollider tidak dapat berfungsi sama sekali tanpa sistem berbasis CS besar untuk menganalisis "data besar".

  • Hukum Moore . seberapa jauh itu akan berlanjut? berapa banyak sudah mempengaruhi masyarakat / kemanusiaan?

  • Komputer kuantum . apakah mungkin? apakah mereka akan lebih cepat? akankah mereka menjadi orang-orang dengan biaya rendah atau selalu tidak sehat? Dwave adalah studi kasus yang penuh warna, ada artikel SciAm yang bagus dari Aaronson, dll

  • Algoritma Google PageRank adalah salah satu keajaiban multibilliondollar dari ilmu komputer modern. apakah akan diperpanjang? bagaimana cara kerja penyaringan spam? perusahaan tampaknya bergerak ke arah menganalisis gambar, dll.

  • algoritmik / perdagangan frekuensi tinggi sekarang menggerakkan volume / nilai perdagangan dalam jumlah besar. apakah itu baik / buruk? apakah itu meningkat / menurun? apakah ini akan diatur di masa depan? perlombaan senjata komputasi seperti apa yang terlibat?

  • superkomputer sangat besar, memecahkan masalah yang luar biasa, dan semakin besar. apakah ada batasan? apa yang mereka hitung dan apa yang akan mereka hitung di masa depan? agak terkait, Big Data dan datamining .

  • situs jejaring sosial memiliki implikasi besar dalam pertumbuhan kurang dari satu dekade. mereka terlibat dalam memicu pemberontakan populer misalnya musim semi Arab dan Occupy wall st . apa masa depan mereka?


2

Saya punya usul itu

  • berfokus pada komputer ilmu (bukan pemrograman atau tambahan),
  • dimulai dengan premis yang kebanyakan anak tahu dan
  • sebenarnya sudah dicoba dan berhasil.

Kami telah mengadakan lokakarya kecil dengan siswa sekolah menengah tentang Minesweeper . Lokakarya kira-kira akan seperti ini:

  1. Mari kita mainkan game ini sedikit (paling tahu itu).

  2. Apa yang baru saja kita lakukan? Apa masalah yang kita coba selesaikan? Bisakah kita merumuskan aturan umum?

    Ini biasanya akan memakan waktu cukup lama. Anak-anak tidak terbiasa merumuskan masalah dalam hal input dan output agar aturan umum untuk menyelesaikannya tidak. Mereka yang telah memprogram sebelumnya akan menghargai upaya; referensi "kode spageti" dapat membantu. Namun demikian, sebagian besar aturan sederhana, mengingat hanya satu sel pada satu waktu.

  3. Menunjukkan masalah dengan aturan.

    Pada titik ini, Anda ingin memperkenalkan simulator Minesweeper . Yang dibuat oleh Bayer, Snyder dan Chouiery tidak sempurna tetapi memungkinkan Anda menunjukkan skenario yang dirancang dengan cermat.

  4. Tingkatkan aturan untuk mencakup lebih banyak skenario.

    Ini biasanya akan mengarahkan siswa untuk menyelidiki lebih banyak sel bersama-sama. Anda juga dapat mendorong mereka ke arah pendekatan "selesaikan semua" seperti mengekspresikan informasi yang ada sebagai sistem persamaan linear - ini muncul jika Anda mencoba untuk mengekspresikan informasi yang tersedia dalam istilah matematika. Siswa sudah tahu bagaimana menyelesaikan sistem seperti itu!

  5. Batasan catatan.

    Pertama, ada skenario yang tidak memiliki solusi (deterministik). Selain itu, kita dapat membedakan kekuatan kasar dengan strategi yang dikembangkan. Bisakah kita menukar kecepatan dengan daya? Jika pendekatan sistem persamaan muncul, perhatikan bahwa kita hanya dapat menyelesaikan ini secara efisien di atas real, tetapi kita membutuhkan jawaban biner. Tidak terlalu sulit untuk membangun skenario yang mengarah ke runtimes besar (kami menggunakan aljabar komputer untuk menggambarkan).

Bergantung pada kelompoknya, pendekatan ini memungkinkan untuk mencakup beberapa prinsip ilmu komputer dengan cara alami: mendefinisikan masalah, menjelaskan algoritma umum, pemecahan masalah berulang serta masalah komputabilitas dan kompleksitas semua dapat disentuh.

Umpan balik oleh siswa secara keseluruhan positif; mereka merasa terlibat dan mengekspresikan minat pada konsep. Penting bagi mereka untuk melakukan sebagian besar pekerjaan, hanya dengan hati-hati mendorong mereka ke arah yang diinginkan dengan mengajukan pertanyaan yang tajam.


1

Anda memiliki banyak hal yang harus dilakukan ... tetapi satu hal yang kelihatannya sangat menarik adalah "uang", jadi tanyakan pertanyaan "P ≠ NP" dan hadiah tujuh milenium, ketika saya di sekolah menengah saya membacanya meskipun saya tidak tahu notasi satu-satunya hal yang saya mengerti: ada hadiah dan pertanyaan besar! hal lain akan menghadirkan koneksi matematika dan ilmu komputer seperti: memecahkan persamaan, memeriksa solusi menggunakan komputer.

hal lain yang saya sarankan adalah menghadirkan Alan turing "bapak ilmu komputer" dan menceritakan kisahnya. hal terakhir yang saya sarankan adalah nol bukti pengetahuan dan permainan "di mana waldo?" dan bermain tanpa curang dan kriptografi dan serangan dunia maya.


-2

Lakukan apa saja dengan facebook, mereka menyukainya. Mungkin ini sulit bagi pemula, tetapi Anda dapat membiarkan mereka menggambar grafik koneksi, yang menunjukkan bagaimana profil mereka terhubung satu sama lain. Saya akan merekomendasikan Javascript sebagai bahasa pemrograman.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.