Mengajar TCS sekolah menengah - program yang ada

16

Saya ditawari untuk mengajar program sekolah menengah TCS baru, yang membutuhkan penyusunan kurikulum. Saya ingin sekali mendengar pendapat dan saran mengenai hal ini.

Pertama, apakah ada yang tahu sekolah menengah di mana program TCS telah diajarkan dengan sukses (atau tidak berhasil)?

Idenya adalah untuk program 3 tahun (kelas 10-12, usia 16-18), sekitar 8 jam mingguan, untuk siswa berprestasi terpilih, yang berarti bahwa hal itu dapat dan harus menuntut. Berbeda dengan program "komputer" standar, program ini tidak boleh berfokus pada pemrograman, tetapi lebih pada topik yang dipilih dalam CS, kebanyakan di TCS. Topik yang kami pikirkan sejauh ini adalah:

  • Analisis asimptotik
  • Struktur dan algoritma data dasar (daftar, array)
  • Algoritma grafik, juga sebagai demonstrasi algoritma serakah vs pemrograman dinamis.
  • Algoritme lain (misalnya probabilistik)
  • Computability - konsep TM, reduksi, decidability.
  • Kompleksitas - NP, P, mungkin PSPACE dan NL. Kelengkapan.
  • Teori automata

Pada dasarnya, ini mencakup bagian TCS dari dua tahun pertama gelar B.Sc di CS. Namun, kita harus ingat bahwa siswa-siswa ini tidak memiliki dasar matematika yang diperlukan untuk sebagian besar materi ini. Secara khusus, hal-hal seperti teori himpunan, kombinatorik, probabilitas, dan artihmatika modular tidak diajarkan di sekolah menengah (sayangnya).

Singkatnya, dan untuk memberikan pertanyaan yang tepat:

  1. Adakah yang tahu tentang program serupa di mana saja?
  2. Adakah saran untuk topik konkret / umum yang menurut Anda dapat dan harus diajarkan sebagai tambahan / alih-alih topik di atas, sambil menjaga program tetap menarik serta penting dan relevan secara langsung (mis. Teori kelompok itu penting dan menarik, tetapi tidak cukup relevan untuk membenarkan waktu yang diperlukan)
  3. Saya akan senang memperkenalkan pembelajaran mesin dalam beberapa bentuk, karena ini adalah topik yang sangat panas saat ini. Setiap ide tentang bagaimana pembelajaran mesin dapat disajikan tanpa alat seperti teorema pengukuran-konsentrasi dipersilahkan.
Shaull
sumber
2
Tampaknya Anda daftar teori automata pada akhirnya sebagai semacam pemikiran. Saya akan menganjurkan membuat teori automata tema sentral dan menyatukan. Ini dapat memperkenalkan siswa pada penalaran matematika formal tanpa latar belakang matematika tertentu. Ini memiliki teorema tanpa syarat yang tajam yang mendasar tetapi relatif mudah untuk dibuktikan. Ini dapat dihubungkan langsung ke pembelajaran mesin , meskipun dari pengalaman saya ini sulit untuk diajarkan ke undergrads dalam kursus teori pertama, jadi lebih banyak kehati-hatian diperlukan dengan HS.
Artem Kaznatcheev
1
tidak pernah mendengar hal itu dilakukan sebelumnya! siswa "terpilih"? apakah itu juga berarti maju, mungkin? coba menambang buku-buku sains populer di TCS atau juga blog online [beberapa yang bagus di luar sana]. Mesin Turing, komputasi kuantum, area kunci / menarik lainnya. pikir ini bisa ditarik jika matematika tidak berat & dilakukan dalam lebih dari cara konseptual daripada matematika. juga situs ini banyak muncul dalam pertanyaan edu: cs unplugged . semoga berhasil!
vzn
2
Saya ingin tahu apakah akan lebih baik untuk mencurahkan sebagian waktu Anda untuk mengajarkan keterampilan matematika yang Anda sebutkan (misalnya probabilitas) ... ini juga berpotensi membantu Anda meliput topik yang lebih maju, tetapi juga membantu mempersiapkan siswa untuk belajar di masa depan dalam matematika / cs .
usul
1
@vzn - ya, ini adalah siswa tingkat lanjut (berani saya katakan - berbakat).
Shaull
1
@ vzn Itu saran yang sangat menarik. Entah bagaimana, TCS belum menjadi bagian dari budaya populer. Artinya, bahkan siswa yang penasaran biasanya tidak menyadari pertanyaan seperti P vs NP. Tapi kami pasti akan meminta saran siswa CS saat ini, dan melihat apa yang mereka hasilkan. Dugaan saya adalah bahwa kriptografi akan menjadi pusat.
Shaull

Jawaban:

8

Banyak negara mengatur sekolah musim panas untuk tim IOI mereka (terdiri dari siswa sekolah menengah berusia sekitar 16 IIRC). Yang kami miliki di Iran dulu memiliki kursus berikut:

  • pemrograman,
  • struktur data dan algoritma,
  • kombinasi, dan
  • teori grafik.

Saya pikir Asosiasi Guru Ilmu Komputer ACM memiliki kurikulum K12 di halaman Sumber Daya Kurikulumnya meskipun mungkin terlalu ringan untuk remaja berbakat.


Saya pikir pemrograman pasti harus menjadi bagian dari kurikulum. Python harus menjadi bahasa pertama yang baik untuk dipelajari.

Anda mungkin ingin juga membahas beberapa topik yang dapat diakses dengan aplikasi (kegembiraan membangun sesuatu yang keren dapat memiliki efek besar pada minat mereka). Saya pikir mata kuliah Andrew Ng tentang Coursera harus dapat diakses oleh siswa berbakat (khususnya bagi mereka di negara-negara seperti negara Anda di mana ada kurikulum matematika K12 yang lebih serius).

Topik yang tidak standar yang mungkin ingin Anda pertimbangkan adalah teori permainan kombinasional, mungkin tidak terlalu menarik bagi anak berusia 16 tahun (saya tidak punya pengalaman untuk itu) tetapi itu bekerja dengan cukup baik untuk siswa yang sedikit lebih muda dalam pengalaman saya.

Saya pribadi berpikir tema sentral dan menghubungkan harus sekitar algoritma, saya pikir itu akan bekerja lebih baik daripada automata teori sebagai tema sentral dan bisa dibilang perspektif algoritmik (tidak Turing mesin, automata, dll) adalah yang esensi dari ilmu komputer.

Kaveh
sumber
Bagian pemrograman dicakup oleh program CS standar, yang mereka ambil. Ini adalah topik tambahan. Apakah Anda memiliki tautan untuk situs web sekolah musim panas seperti itu? Adapun fokus pada algoritma - sementara saya setuju bahwa mereka adalah pusat untuk CS, saya pikir komputabilitas dan kompleksitas sama-sama dengan esensi dari ilmu komputer. Saya ingat menjadi jauh lebih terkesan oleh fakta bahwa ada hal-hal yang tidak dapat kita pecahkan, bukan oleh algoritma yang pintar. Tapi keduanya akan dibahas, mungkin.
Shaull
Di satu sisi, mesin Turing adalah semua tentang algoritma . juga ruby juga merupakan pilihan yang sangat baik dibandingkan dengan python . pada subjek yang sama, pilihan lain yang sangat bagus untuk mempelajari pengembangan adalah javascript karena banyak alasan misalnya penyebarannya di browser, banyak kode publik / contoh, fitur luas, penggunaan tinggi, dll.
vzn
1
@Shaull, mereka memiliki situs ( Young Scholars Club ) tetapi dalam bahasa Persia dan tidak mengandung banyak hal tentang apa yang dicakup dalam sekolah musim panas dengan cara apa pun.
Kaveh
1
@vzn, saya pikir Anda tidak memiliki banyak pengalaman dalam mengajar TCS kepada siswa sekolah menengah dan saya telah menjelaskan dengan sangat jelas bahwa saya tidak tertarik dengan pendapat Anda . Berhenti menggerakkan jawaban saya.
Kaveh
k, tolong jangan menebak pada bkg saya & akan melakukan hal yang sama. komentar pada dasarnya di dukungan dari Anda pendapat ... suara seperti topik untuk meta = (
vzn
5

Anehnya, ada seseorang yang berpendapat bahwa pembelajaran mesin cocok secara unikdi antara topik ilmu komputer untuk diajarkan kepada siswa sekolah menengah, karena konon itu adalah salah satu dari beberapa subbidang di mana matematika dasar dapat membuat Anda cukup memahami untuk menghargai tantangan penting. Saya tidak setuju dengan klaim ini - algoritme dasar (misalnya untuk pencarian, penyortiran) dapat disajikan sebagai teka-teki, dan Anda dapat dengan cepat mencapai sangat sederhana untuk menyatakan tetapi masalah mendasar yang terbuka seperti "dapat penggandaan dilakukan dengan jumlah operasi yang pada dasarnya sama sebagai tambahan ", atau menyortir bilangan bulat dalam waktu linier, atau memfaktorkan (saya berasumsi konsep bilangan prima tidak akan baru bagi kelompok pilih siswa sekolah menengah?). Di sisi lain, banyak pembelajaran mesin akan sulit untuk dipahami tanpa tingkat pengalaman yang baik dengan statistik dan teori probabilitas. Namun,

Dalam hal program pengajaran, ada yang lebih rinci oleh Essinger dan Rosen di Drexel.

Selain itu, saya akan berpikir seseorang dapat mencoba untuk membuat sketsa beberapa ide teori belajar tingkat tinggi:

  • apa masalah klasifikasi dasar
  • apa itu kelas konsep dan apa artinya mempelajari suatu konsep
  • mengapa Anda tidak bisa berharap untuk mempelajari konsep dari kelas konsep yang tidak dibatasi dengan kompleksitas pengambilan sampel kurang dari eksponensial (sebagai pengantar untuk menghitung argumen)
  • apa dimensi VC

Saran lain adalah untuk memperkenalkan sirkuit dan mencoba beberapa sketsa batas bawah Shannon. Tergantung seberapa nyaman siswa dalam berhitung. Jika ini terlalu berat, mungkin masih membantu untuk melakukan argumen sambil meminta siswa menghitung sendiri rangkaiannya dengan keyakinan. Saya pikir ide "sebagian besar masalah memerlukan sirkuit besar karena ada terlalu banyak masalah dan terlalu sedikit sirkuit kecil" akan mencolok. Gagasan ini penting dan merasuk dalam kompleksitas.

Sasho Nikolov
sumber
Kedua saran itu sangat bagus. Terima kasih! Saya merasa bahwa untuk sekolah menengah, baru belajar apa dimensi VC mungkin memakan waktu sekitar 3 bulan, yang mungkin terlalu banyak. Tapi itu pasti layak dipertimbangkan, terutama karena pemikiran telah dimasukkan ke dalamnya.
Shaull
Saya pikir bahkan hanya untuk memahami apa artinya mempelajari konsep dan memiliki gagasan yang samar-samar bahwa Anda tidak dapat mempelajari hal-hal rumit yang semena-mena sebelum matahari membeku akan menjadi kemenangan.
Sasho Nikolov
3

Inilah satu arah yang menjanjikan untuk melanjutkan ini. AP / NSF baru-baru ini mengumumkan inisiatif program CS penempatan lanjutan tingkat lanjut di sekolah menengah atas. akan ada banyak keuntungan menggunakan program seperti itu seperti rencana pelajaran standar, akreditasi perguruan tinggi, dll.

saat ini sedang dikembangkan dan siap untuk 2016. silabus kursus tentatif dan bahan tersedia online. (untuk para ahli akademis, bahkan mungkin ada beberapa kemungkinan pada titik ini untuk mempengaruhi konten masa depan melalui kolaborasi tipe "kecerdasan kolektif".)

Program Penempatan Tingkat Lanjut Dewan Perguruan Tinggi mengatakan pada hari Kamis bahwa mereka berencana untuk menambahkan program ilmu komputer baru untuk penawaran kelasnya, tes baru pertama dalam tujuh tahun. Langkah ini mencerminkan minat yang tumbuh dalam melatih siswa untuk berkarir di bidang sains di tengah dorongan nasional untuk membuat ekonomi AS lebih kompetitif secara global.

Program baru, Prinsip Ilmu Komputer AP, akan berkonsentrasi pada "aspek kreatif" komputasi dan akan didanai sebagian oleh hibah $ 5,2 juta dari National Science Foundation. Badan federal bertujuan untuk melatih 10.000 guru ilmu komputer tambahan di sejumlah sekolah menengah yang sama secara nasional pada tahun 2016 sebagai bagian dari upaya untuk meningkatkan pendidikan di bidang sains, teknologi, teknik dan matematika, atau STEM. Dewan Perguruan Tinggi akan mengumpulkan sekitar $ 3,5 juta untuk dukungan dan peralatan guru.

program yang ada disebut AP Ilmu Komputer A dan program baru disebut Prinsip Ilmu Komputer AP. kelas yang ada telah ada selama bertahun-tahun dan juga bermanfaat sebagai model bagi guru dalam mengembangkan kurikulum.

vzn
sumber
3
Secara kebetulan, Baker Franke dan saya sendiri mengajukan proposal untuk sesi BOF (Birds-of-a-Feather) di SIGCSE '14 untuk membahas bagaimana membuat topik dalam teori dapat diakses untuk kurikulum Prinsip-Prinsip CS.
rahulmehta95
@ rahulmehta95 - apakah ada tautan ke proposal yang bisa saya baca?
Shaull
2
Ini dia: cs.ucls.uchicago.edu/~rahulmehta/papers/BOF-Theory.pdf . Semoga ini membantu!
rahulmehta95
2

Sebuah ide yang telah saya tendang akhir-akhir ini adalah bagaimana mengajar siswa HS gagasan tentang pengurangan masalah. Saya menemukan ini sebagai salah satu topik yang paling menarik namun paling menantang ketika saya diperkenalkan dengan kompleksitas, karena cukup sulit (setidaknya pada awalnya) untuk membungkus kepala seseorang dengan kenyataan bahwa masalah seperti 3-SAT adalah "sama sulitnya" sebagai Vertex-Cover.

Contoh yang saya temukan adalah pengurangan antara Vertex Cover (VC) dan Independent Set (IND-SET), diutarakan sebagai berikut;

"Kamu adalah direktur sebuah museum, dan ditugaskan untuk mempekerjakan petugas keamanan untuk menjaga lorong-lorong. Ketika ditempatkan di persimpangan lorong, seorang penjaga dapat mengawasi SEMUA lorong yang bersebelahan dengannya. Berapa jumlah minimum penjaga yang dibutuhkan untuk berpatroli di seluruh museum? "

"Beberapa saat kemudian, beberapa anak memutuskan untuk bermain petak umpet di museum. Tujuan mereka adalah bersembunyi sehingga tidak ada anak lain yang bisa melihat mereka. Namun, para penjaga tidak ingin mereka berlarian di lorong-lorong, sehingga mereka diturunkan untuk "bersembunyi" di persimpangan. Berapa jumlah terbesar anak-anak yang bisa bersembunyi di museum tanpa melihat satu sama lain? "

VCPIND-SET

G=(V,E)SV VS

Alasan saya memilih VC & IND-SET adalah karena tidak terlalu sulit untuk melihat bahwa masalahnya terkait erat; setiap kali ada set independenS, itu menginduksi penutup simpul VS di G.

rahulmehta95
sumber
Sementara saya memahami motivasi di balik contoh (sangat baik), saya berpikir bahwa di HS saya akan mulai dengan pengurangan Turing, yang jauh lebih intuitif. Juga, saya akan mulai dengan masalah di mana input harus benar-benar dimanipulasi, dan bukan hanya perubahan parameter. Sebagai contoh, saya akan mulai denganCL.sayaQUEhalsayaND-SET, yang lebih "terlibat".
Shaull
sejauh pengurangan, bukti bahwa ada mesin turing universal adalah salah satu cara untuk pergi dan mungkin dimengerti oleh siswa sekolah menengah atas ... [perhatikan ada banyak video lego TM, beberapa bahkan oleh peneliti cs ...] juga, mungkin, yang tseitin transformasi ?
vzn