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:
- Adakah yang tahu tentang program serupa di mana saja?
- 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)
- 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.
Jawaban:
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:
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.
sumber
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:
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.
sumber
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 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.
sumber
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? "
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 V∖ S di G .
sumber