Bagaimana saya bisa mengajarkan ilmu komputer tanpa menggunakan komputer?

21

Di beberapa tempat di dunia, orang biasanya tidak memiliki akses ke (dan karenanya sedikit pengetahuan tentang) komputer, dan bahkan jika mereka memilikinya, perangkat keras dan lunak sudah ketinggalan zaman dan penggunaannya terganggu oleh pemadaman listrik dan semacamnya. Akses ke buku-buku (bagus) juga cenderung kurang. Bagaimana saya bisa mengajar ilmu komputer dalam keadaan seperti itu?

Saya khawatir bahwa tanpa dapat melakukan percobaan dan menerapkan apa yang mereka pelajari, mereka tidak akan belajar (yah) sama sekali meskipun mereka sangat termotivasi dan mencurahkan sebagian besar waktu mereka untuk hobi ini. Apakah mungkin untuk mengajar CS hanya secara teoritis?

Abimanyu
sumber
13
Orang-orang telah terpesona oleh matematika selama ribuan tahun. Tidak ada yang memiliki akses ke komputer digital saat itu. Bahkan, biasanya pada kursus teori Anda tidak membutuhkan komputer sama sekali.
Juho
3
Saya ingin menunjukkan bahwa program komputer pertama ditulis sekitar 100 tahun sebelum komputer pertama dibuat.
Gabe
2
Lihatlah cstheory . Kemungkinan besar orang-orang itu hanya membutuhkan pena dan kertas, dan ini mungkin yang tertinggi dalam ilmu komputer (saya tidak tahu apa yang paling sering mereka bicarakan).
Trylks
1
Mungkin akan membantu jika Anda menyoroti area CompSci yang ingin Anda liput. Hal-hal seperti matematika diskrit dan bahkan struktur data atau algoritma dapat dicakup pada pena dan kertas saja. Rekayasa Perangkat Lunak di sisi lain cenderung bermasalah.
NotMe
1
@abhimanyu Hebat, pertanyaannya "terlindungi" sebelum saya dapat mengirim tanggapan saya; Saya taruh di sini sekarang: pastebin.com/6tbMtVM8 (Ini adalah jawaban yang panjang , karena kemungkinannya harus jelas tetapi tampaknya tidak ada. Ada banyak ide di sana dan saya harap Anda menemukan sesuatu yang berguna ...)
tidak ada yang tahu

Jawaban:

24

Bertanya bagaimana Anda bisa belajar ilmu komputer tanpa komputer sama seperti menanyakan bagaimana Anda bisa belajar kosmologi tanpa teleskop. Tentu, senang bisa melihat hal-hal yang Anda pelajari dan seringkali sangat membantu untuk bisa bermain-main dengan berbagai hal. Tetapi ada banyak hal yang dapat Anda lakukan tanpa akses ke komputer: secara ekstrim , Anda mungkin dapat melakukan hampir semua program sarjana tanpa komputer.

Dalam istilah praktis, akses ke komputer membantu memperkuat banyak hal yang Anda pelajari dalam kursus ilmu komputer. Kursus pemrograman, tentu saja, jauh lebih alami dengan akses ke komputer. Di sisi lain, dipaksa untuk menulis kode di atas kertas memang mendorong orang untuk berpikir tentang kode mereka dan memastikan itu benar-benar berfungsi, daripada hanya menjalankannya melalui kompiler lagi dan lagi sampai kompilasi dan kemudian menjalankan kasus uji sepele lagi dan lagi sampai bug jelas hilang.

Topik yang paling alami tanpa komputer adalah topik yang lebih matematis. Semua matematika latar belakang, seperti kombinatorik dan probabilitas. Komputasi, bahasa formal, logika, teori kompleksitas, desain dan analisis algoritma, informasi dan teori pengkodean. Ada hubungannya dengan perhitungan kuantum!

David Richerby
sumber
11
Beri +1 perbedaan antara CS dan pemrograman ini adalah kunci! Kursus CS sarjana saya memiliki persyaratan minimal untuk menggunakan komputer, di luar mengakses bahan bacaan online saya bisa dengan mudah melihat ke dalam bentuk pohon mati di perpustakaan.
Cosmic Ossifrage
4
@ CosmicOssifrage Saya setuju tetapi, sementara CS tidak pemrograman, pemrograman adalah alat yang sangat berguna bagi para ilmuwan komputer untuk memilikinya. Dan itu sebabnya kami mengajarkannya.
David Richerby
2
@Abhimanyu Itu akan tergantung pada kualifikasi Anda sendiri. Jika Anda memiliki pengetahuan dan keterampilan, mereka hanya papan tulis jauh dari pikiran siswa Anda.
Raphael
2
@vzn Tidak, sebagian besar pemrograman mempelajari seni debugging. Ini sangat penting. Tapi itu bukan ilmu komputer .
David Richerby
2
@vzn Jika Anda mengutip pria itu, lakukan dengan benar. Dia berbicara tentang eksperimen runtime untuk tujuan memverifikasi / menyangkal hipotesis (ilmiah), bukan debugging. Saya tidak berpikir Sedgewick pernah mengklaim bahwa pengujian / debugging implementasi eksperimental Anda adalah sains .
Raphael
10

Jelas ada penggunaan kertas dan pensil. Ketika saya diajari pemrosesan sinyal, pemroses sinyal khusus tidak langsung tersedia bagi kami dan kami hanya menyerahkan laporan kertas.

Perhatikan bahwa ilmuwan komputer hebat Dijkstra tampaknya tidak terlalu banyak menggunakan komputer:

Hampir semua artikel dalam seri ini muncul setelah tahun 1972 ditulis tangan. Setelah menemukan banyak teknologi perangkat lunak, Dijkstra menghindari penggunaan komputer dalam karyanya sendiri selama beberapa dekade. Bahkan setelah dia menyerah pada dorongan rekan-rekannya di UT dan membeli komputer Macintosh, dia menggunakannya hanya untuk surel dan untuk menjelajahi World Wide Web.

Dikutip dari Disjkstra's Memorial

Ini menunjukkan bahwa Anda dapat melakukan ilmu komputer yang hebat tanpa komputer!

Selain kertas dan pensil masalah ilmu komputer juga dapat diselesaikan 'di dunia nyata', misalnya, demonstrasi algoritma pengurutan dengan kartu atau - lebih tidak biasa - dengan tarian seperti yang dilakukan oleh Universitas Sapientia .

Finn Årup Nielsen
sumber
Adakah saran tentang cara melakukan ini secara efektif? Guru mungkin tidak mendapat manfaat dari kuliah papan tulis di universitas besar.
Raphael
3
Banyak matematika diajarkan papan tulis kapur. Saya kira Anda melakukan hal yang sama dengan ilmu komputer.
Finn Årup Nielsen
Sebagai contoh di sini adalah kuliah papan tulis yang bagus tentang pohon
hamparan
2
Secara pribadi, saya menerapkan struktur data dan algoritma yang saya ketahui untuk pekerjaan kantor di pekerjaan musim panas. Saya menggunakan jenis radix pada kotak cek bertopik dan pergi antara satu dan 2 urutan besarnya lebih cepat daripada orang lain yang melakukan tugas itu, sampai tidak percaya. Saya menggunakan semacam gabungan alami pada kartu cetak yang perlu diajukan. struktur data dan komputasi ada di dunia nyata .
JDługosz
8

Banyak teori ilmu komputer murni teoretis dan dapat diselesaikan dengan menggunakan pena (cil) dan kertas. Mendapatkan informasi tentang mereka dan mengomunikasikannya ke dunia luar membutuhkan komputer.

Dave Clarke
sumber
5
Ini menurut saya lebih dari komentar.
Raphael
7

Lihat http://csunplugged.org/ untuk beberapa ide hebat. Google adalah salah satu sponsor.

Dari situs:

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 dua puluh tahun, di ruang kelas, pusat sains, rumah, dan bahkan untuk acara liburan di taman!

cdjc
sumber
Kondisinya kompleks, tetapi patut dicoba ketika sumber daya mengizinkan.
Abhimanyu
Saya setuju bahwa ini terlihat bagus, tetapi untuk menjadikan ini jawaban yang tepat, Anda perlu mengatasi masalah-masalah spesifik yang dijabarkan dalam pertanyaan: sumber daya apa yang dibutuhkan? Bisakah kita berharap untuk memilikinya misalnya di (pedesaan?) Afrika?
Raphael
3

Anda bisa, cukup jelas bagaimana Anda akan melakukannya. Saya tidak yakin seberapa bermanfaatnya bagi orang-orang, tetapi Anda bisa.

Tapi saya bahkan tidak tahu bagaimana seorang guru ilmu komputer, bisa bertanya bagaimana Anda bisa mengajar ilmu komputer tanpa komputer.

Karena jika Anda bisa mengajarkan ilmu komputer, maka Anda pasti tahu caranya.

Jika Anda tahu itu-

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

Mempelajari normalisasi, struktur tabel data untuk database, dapat dilakukan pada pena dan kertas. (Saya hanya melakukan itu di atas pena dan kertas ketika saya mempelajari basis data relasional)

Buku pelajaran ilmu komputer tidak membutuhkan komputer.

Jika Anda pernah mengambil buku teks sains komputer dan mempelajarinya di perpustakaan Anda akan tahu Anda tidak perlu komputer untuk memahaminya.

Tetapi Anda harus sadar bahwa siapa pun yang duduk di kelas sains komputer dapat melihat bahwa kebanyakan orang tidak dapat memprogram, hanya di luar mereka. Terlalu abstrak untuk orang. Itu bahkan berlaku di tingkat Universitas.

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

Sebagian kecil siswa gagal dalam setiap kursus pemrograman pengantar di setiap universitas UK. Terlepas dari upaya akademis heroik, proporsinya telah meningkat daripada menurun selama bertahun-tahun. Meskipun banyak penelitian tentang metode pengajaran dan respons siswa, kami tidak tahu penyebabnya.

Saya akan menambahkan bahwa menyebutnya minoritas substansial, adalah pernyataan yang meremehkan. Itu adalah minoritas kecil yang bisa-program.

Saya akan mencatat, penyebab penurunan yang dia saksikan .. Ketika komputer menjadi lebih populer misalnya antara tahun 2000 dan 2010 (ia menulis bahwa di pertengahan dekade itu), lebih banyak wollies tertarik untuk mempelajari 'ilmu komputer'. Sebelum itu, hanya orang yang lebih fanatik yang tertarik. Dan sebelumnya, menggunakan komputer lebih teknis, tetapi karena komputer menjadi lebih mudah bagi rata-rata orang untuk menggunakan, dan lebih kuat dalam aplikasi yang dapat mereka jalankan, maka lebih banyak wollies yang menggunakannya dan lebih banyak orang yang hanya tertarik pada apa yang bisa mereka lakukan daripada bagaimana mereka melakukannya dan bagaimana melakukannya.

barlop
sumber
2
Apa itu "wollies"?
Nate Eldredge
1
@NateEldredge Urban dictionary : «Istilah riang untuk seseorang yang mengatakan atau melakukan sesuatu yang konyol / Seseorang yang menambahkan 2 dan 2 dan mendapat 5." What a wolly "»
Paul A. Clayton
@NateEldredge Biasanya dieja "wally".
David Richerby
2
Memarahi OP bukan jawaban.
Raphael
2

Mungkin untuk mengajarkan konsep-konsep Ilmu Komputer tanpa komputer. Tentu saja tanpa akses ke komputer, apa gunanya belajar Ilmu Komputer?

Ketika saya belajar Ilmu Komputer di sekolah menengah, beberapa kelas pertama kami tidak melibatkan komputer sama sekali. Sebagai gantinya, kami bekerja dari sebuah buku berjudul Karel ++ , yang mengajarkan konsep berorientasi objek. Bahasa yang dibuat dapat "dijalankan" di papan tulis atau papan tulis dengan mudah karena semua kode mengambil tindakan pada grafik. Beberapa tugas pertama kami semuanya ditulis tangan dan profesor akan mendemonstrasikan solusi yang tepat di papan tulis di awal kelas berikutnya.

Ketika kami mulai membahas algoritma, profesor kami memanggil kami semua ke depan ruangan dan menyuruh kami untuk berdiri dalam barisan. Dia melanjutkan untuk menunjukkan beberapa algoritma penyortiran yang berbeda - dimulai dengan sesuatu yang konyol yang dia sebut "semacam monyet" di mana dia akan secara acak bertukar dua dari kita dan kemudian memeriksa untuk melihat apakah kita diurutkan setiap iterasi, tetapi kemudian melakukan sortasi gelembung dan sortir shell - oleh "Menjalankan" mereka pada kita.

Dia menggambar diagram di papan tulis, menjelaskan dasar-dasar bagaimana memori komputer dan tumpukan bekerja. Dia mendemonstrasikan variabel dan pointer (itu adalah kelas C ++) dan dari sana ke daftar dan pohon yang ditautkan ...

Saya mungkin bisa menambahkan ini jika saya membaca catatan yang saya simpan dari kelas itu, tapi hanya itu yang saya ingat sekarang. Jika saran ini menarik, saya dapat memperluas jawaban ini.

Elang Hitam
sumber
1
Anda tampaknya membingungkan pemrograman (kerajinan) dengan ilmu komputer .
Raphael
@ Raphael Saya mengerti bahwa mekanisme pemrograman dalam bahasa tertentu mungkin tidak penting bagi bagian sains , tetapi seberapa banyak Anda dapat benar-benar menceraikan ilmu komputer dari pemrograman sebelum menjadi begitu teoretis sehingga tidak dapat dipahami oleh siswa yang mungkin tidak terbiasa dengan bahkan bagaimana cara mengoperasikan komputer? Saya dapat mengubah jawaban saya untuk memisahkan keduanya, tetapi gambar yang muncul di benak saya berdasarkan pertanyaan OP bukanlah orang dewasa yang ingin belajar tentang dasar matematika dari teori kompleksitas, tetapi siswa sekolah dasar membutuhkan pengenalan aplikasi CS.
Blackhawk
@DavidRicherby Saya telah meminta OP untuk klarifikasi tentang siapa (usia / pengalaman dengan komputer) kelompok sasaran siswa dan materi apa yang ingin dia ajarkan. Saya akan menyesuaikan jawaban saya sesuai dengan itu. Jika saya bisa, saya akan menyarankan bahwa analogi yang lebih langsung adalah penulisan kreatif vs mengetahui cara menggunakan huruf dan kosa kata. Kecuali bahkan analogi itu gagal karena studi tentang bahasa pemrograman sebenarnya dicakup oleh ilmu komputer.
Blackhawk
@ Blackhawk Tentu saja, tidak ada analogi yang sempurna (hampir secara definisi). Tapi, sementara desain bahasa pemrograman adalah CS, hanya menggunakannya tidak.
David Richerby
1
@ DavidRicherby Saya baru saja membaca halaman tur untuk CS dan secara khusus "bertanya tentang ..." dan "JANGAN bertanya tentang ..." dan saya mendapat kesan bahwa terlalu banyak orang bertanya / menjawab pertanyaan di situs ini yang akan jauh lebih baik daripada pada SO ... jadi saya minta maaf jika saya berkontribusi untuk itu. Dapatkah Anda menunjukkan kepada saya hal-hal spesifik yang dapat saya ubah tentang jawaban ini agar sejalan dengan tujuan situs? Saya kira saya setidaknya harus menghapus referensi ke "titik koma" dan "C ++", tetapi bagaimana dengan penggunaan Karel ++ sebagai alat pengajaran untuk konsep bahasa Berorientasi Objek? Atau memori komputer?
Blackhawk
2

Saya melakukan gelar ilmu komputer dan berpikir kami diajarkan banyak pemrograman (dalam berbagai bahasa) kami juga diajarkan banyak aspek matematika (dan beberapa perangkat keras juga).

Bagian matematika lebih penting untuk tahun pertama - pikirkan matriks matematika yang penting untuk grafik 3d (bagaimana Anda menghitung permukaan normal untuk penerangan sebuah vertex? ). Kami melakukan banyak statistik - pikirkan analisis throughput pekerjaan, berapa tingkat pekerjaan yang dapat Anda lewati ke dalam sistem sebelum tersumbat? Itu cukup penting untuk banyak sistem terpusat, dan jaringan.

Anda dapat mengajarkan banyak algoritme, satu poster di sini menyebutkan memberikan masing-masing nomor kepada siswa dan kemudian membuat mereka menyortir diri mereka sendiri menggunakan berbagai algoritma (yang aktif dan informatif). Bahkan, algoritma apa pun yang dapat dijelaskan dalam gambar animasi di internet dapat diajarkan dengan cara ini. Demikian pula dasar-dasar komputasi - penghitung program, akumulator dan registerdapat diajarkan dengan cara yang sama, atau di atas kertas. Bagaimana dengan multithreading berbasis siswa - atur sekelompok siswa permainan kartu dengan tumpukan di antara mereka masing-masing dalam latihan multi-threading klasik (atau masalah 1 sendok bersama). Atau pola desain, saya dapat berpikir arsitektur papan tulis sangat cocok bagi siswa untuk belajar bagaimana komunikasi multi-proses dapat diimplementasikan, atau arsitektur n-tier yang dideskripsikan sebagai semacam permainan bisikan Cina atau mesin negara terbatas akan sesuai dengan siswa yang bertindak sebagai modul dalam 'komputer hidup'. Anda bisa mengajarkan matematika biner, atau eksekusi berbasis tumpukan (yaitu memoles terbalik).

Tentu saja jika Anda memiliki akses ke elektronik, Anda dapat membuat komputer analog dari op-amp. Mereka keren.

Sayangnya semua ini akan tampak lebih seperti matematika daripada komputasi, tetapi sebagian besar akan tetap dan suatu hari mereka akan mengerti mengapa mereka diajarkan (dengan asumsi mereka masuk ke industri komputasi). Ingatlah bahwa apa pun yang dapat dilakukan komputer, seseorang dapat melakukannya - itu hanya akan membuatnya lebih banyak waktu dan kebosanan untuk mencapai hasil yang sama. Anda hanya perlu mengambil contoh sederhana untuk menunjukkan apa yang akan dilakukan komputer, dan imajinasi untuk menggambarkan dasar-dasar komputasi dengan cara yang kurang kering yang diajarkan kepada saya, jauh di belakang :)

gbjbaanb
sumber
1

Bertanya bagaimana Anda bisa belajar ilmu komputer tanpa komputer sama seperti menanyakan bagaimana Anda bisa belajar kosmologi tanpa teleskop.

Saya kebanyakan menjawab hanya untuk bereaksi terhadap pernyataan ini dan karena saya sangat tidak setuju dengan jawaban lain. Perbandingan yang benar menurut saya akan

Bertanya bagaimana Anda bisa belajar ilmu komputer tanpa komputer sama seperti menanyakan bagaimana Anda bisa belajar kosmologi tanpa kosmos .

Ilmu Komputer adalah tentang komputer, bukan hanya menggunakannya. Benar, banyak Ilmu Komputer didasarkan pada matematika, sehingga bagian-bagian matematika dapat dipelajari tanpa komputer (sehingga Anda mengajar matematika kemudian) seperti halnya bukannya kosmologi Anda dapat mempelajari fisika yang akan berguna sekali ada kosmos (atau memiliki akses ke teleskop), tetapi pada akhirnya apa yang Anda pelajari masih bersifat fisika.

Sekarang, apa yang semua orang lakukan dalam jawaban di sini adalah perhatikan bagaimana ilmu komputer tingkat sarjana sebagian besar bersifat teoritis dan tidak membutuhkan komputer, hal yang orang-orang itu lupakan adalah bahwa orang yang sama telah menggunakan komputer secara luas hingga saat itu. Tanpa pemahaman alami, langsung menyelidiki hal-hal teoretis hanya akan menyebabkan banyak siswa menyerah atau memiliki pandangan yang sangat tidak cocok tentang ilmu komputer. Jadi ajarkan beberapa pemrograman, pahami komputer apa yang pertama dan baru setelah itu masuk ke hal-hal teoretis.

Seperti jika saya mengajar siswa di Afrika yang tidak memiliki pengetahuan tentang komputer selain pengetahuan tingkat umum tetapi siapa yang bercita-cita untuk belajar ilmu komputer canggih dan mencurahkan sebagian besar waktu mereka untuk hobi ini?

Tergantung pada anggaran:

  • Hampir tidak ada anggaran Jika Anda memiliki uang untuk bepergian ke Afrika, ambil sekelompok klon arduino (ada klon arduino fungsional seharga $ 13), periksa daftar ini sebagai contoh ), beberapa komponen output (seperti LED) dan satu laptop. Mulailah dengan beberapa pemrograman dasar, ajarkan kepada mereka di atas kertas dan harus memasukkannya di laptop. Ini bukan cara yang paling efisien, tetapi itu akan mengajarkan mereka setidaknya pemahaman dasar dasar tentang apa sebenarnya komputer itu.
  • Anggaran rendah Beli $ 750 dolar senilai $ 50 smartphone dan keyboard Android (keyboard microusb atau keyboard bluetooth, periksa ebay.com atau aliexpress.com untuk smartphone dan keyboard). Ya mereka jelek dalam jutaan cara, bahkan tidak memberi tahu saya tentang hal itu. Meski begitu, Anda dapat memasukkan data pada mereka (meskipun tidak mempertimbangkan menggunakan keyboard layar) dan ada aplikasi pengkodean sederhana untuk android. Miliki banyak siswa per smartphone dan itu bisa bekerja dengan baik.

Jadi izinkan saya menjelaskan, saya tidak mengatakan Ilmu Komputer tidak dapat diajarkan tanpa komputer, hanya saja Anda perlu terbiasa dengan komputer dan mengenal mereka dengan baik sebelum Anda harus mulai mempertimbangkan hal seperti itu.

David Mulder
sumber
Saya salah paham dengan ketidaksetujuan Anda dengan jawaban saya atau saya tidak setuju dengannya. Jika kita tahu tidak ada kosmos, kosmologi akan menjadi rekayasa total. Jika kita benar-benar percaya pada keberadaan kosmos, kosmologi akan menjadi yang terburuk sebagai sumber daya yang disengaja. Tapi, sebenarnya, kita tahu itu ada. Kosmologi tanpa teleskop berkata, "Hei, saya tidak bisa mengamati kosmos minggu ini tetapi pasti ada di sana. Saya bisa mempelajarinya sekarang dan melihatnya minggu depan." CS tanpa komputer berkata, "Hei, komputer pasti ada sehingga saya bisa mempelajarinya sekarang dan secara fisik mengalaminya nanti."
David Richerby
Dan mengajar ilmu komputer seseorang tanpa mereka pernah menggunakan atau secara praktis memahami apa itu komputer sama seperti fabrikasi semacam itu. Anda tidak secara langsung berinteraksi dengan kosmos melalui teleskop, itu hanya salah satu dari banyak cara untuk mengamatinya. Di malam hari masih bisa dilihat dan dapat dengan mudah dipahami di tingkat dasar. Hal yang sama tidak berlaku untuk komputer.
David Mulder
Saya sama sekali tidak setuju bahwa itu palsu untuk mengajar seseorang tentang sesuatu yang benar-benar ada tetapi belum mereka alami.
David Richerby
2
@DavidRicherby: Anda dan orang lain di sini sudah sangat terbiasa dengan komputer, sulit untuk memahami apa artinya sebenarnya untuk mencoba dan mengajarkan ilmu komputer seseorang tanpa dasar dengan komputer sejak awal ... Saya kenal seseorang yang memang telah memberikan kursus kepada kaum muda yang tidak pernah menggunakan komputer dengan komputer yang sebenarnya ... dia bahkan tidak mencoba mengajar pemrograman atau ilmu komputer dan hanya sampai pada tingkat dasar pemahaman tentang apa itu komputer adalah tugasnya sendiri jika Anda tidak tumbuh dewasa dengan komputer. (lanjutan)
David Mulder
2
Saat ini relatif lebih mudah karena lebih banyak pemuda memiliki setidaknya beberapa pengalaman, tetapi pertanyaannya adalah tentang kasus-kasus di mana mereka tidak memiliki pengalaman sama sekali. Orang yang sama itu memberi tahu saya bagaimana di negara tempat ia mengajar ada masa di mana siswa dari sekolah menengah akan tiba di kursus informatika di universitas tanpa pernah menyentuh komputer sebelumnya ... setelah mempelajari beberapa teori di sekolah menengah dan bagaimana caranya sebagian besar (sejauh tidak semua) kasus berakhir buruk. Masalah / idenya adalah pekerjaan komputer membayar dengan baik, jadi mereka hanya ingin mendapatkan apa pun yang terjadi ...
David Mulder
1

Ilmu Komputer adalah tentang algoritma dan bukan (secara ketat) tentang komputer (dan elektronik).

Dengan demikian, studi tentang algoritma (bahkan aritmatika dasar) dapat membawa pemahaman tentang ilmu komputer dan pemrograman. Ingat bahwa istilah "algoritma" adalah parafrase dari penulis buku arithmetica ( al-Khwārizmī , sekitar 9 sen. CE).

Studi algoritma dapat dilakukan dengan menggunakan cara-cara dasar, tetapi harus memberikan cakupan mengapa algoritma bekerja, bagaimana hal itu terjadi dan bagaimana orang dapat benar-benar menunjukkan bahwa ia bekerja dengan benar.

Sejarah di balik evolusi ilmu komputer dan algoritma serta pemrograman tidak bisa diremehkan. Misalnya, kalkulator Babbage / Ada, mesin Enigma, plankalkul Konrad Zuse , ENIAC dll.

Kemudian orang dapat memperkenalkan pemrograman (dan bahasa pemrograman) sebagai cara untuk memformalkan algoritma. Ini juga dapat dilakukan (sampai batas tertentu) dengan menggunakan sarana dasar.

Catatan , beberapa penelitian telah menunjukkan bahwa pemrograman pembelajaran peole memiliki dua kesulitan utama dalam memahami (terkait dengan kelebihan simbol misalnya uji tugas vs kesetaraan dan pengoperasian mesin RAM).

  1. Konstruksi loop (misalnya untuk, sementara dll.) Tampaknya sulit
  2. Tugas vs pengujian kesetaraan, tampaknya juga sulit.

Jadi seseorang dapat memastikan ini dipahami dan dipahami oleh orang-orang.

Apalagi jika komputer mana pun dapat diakses (bahkan kalkulator yang dapat diprogram), ini dapat digunakan untuk memberikan contoh aplikasi dan pengalaman langsung. Yang lain dapat menggunakan komputer simulasi. Ini dapat dilakukan dengan berbagai cara, misalnya sekelompok orang dapat mensimulasikan bagian komputer dan kelas dapat merancang algoritma untuk memecahkan berbagai masalah untuk komputer simulasi ini dan melihat bagaimana kelanjutannya. Ini bisa dilihat sebagai permainan juga, menjadi kreatif dan membuat-buat.

Kemudian beberapa model komputasi (abstrak) (misalnya Mesin Turing ) dapat diperkenalkan dan terkait dengan materi sebelumnya tentang algoritma dan formalisatinn ke dalam bahasa (pemrograman).

Jika seseorang ingin memperkenalkan elektronik dari komputer yang sebenarnya ini dapat dilakukan juga dalam dua bagian.

Ingatlah bahwa bahkan di universitas, beberapa mata kuliah arsitektur elektronik dan komputer bersifat teoritis (seseorang tidak benar-benar bersentuhan dengan CPU atau desain).

Jadi beberapa prinsip pengoperasian elektronik (dan fisika dasar) yang terkait dengan arsitektur komputer dapat diperkenalkan ( semikonduktor , zona energi kondisi padat, gerbang p-np, dll.).

Kemudian orang dapat memanfaatkan bahan sebelumnya tentang pemrograman dan algoritma dan memperkenalkan teknik (modern) desain CPU (dan deskripsi) yang digunakan dalam industri ( Logic gates , Flip-Flops , FPGA , VHDL , sirkuit CMOS dll).

Ini dapat diambil lebih jauh ke dalam, masalah arsitektur desain CPU seperti paralelisme, pipelining, memori cache, vektor penekan, mikro-pemrograman, DMA, dll.

Yah, ok mungkin ini bisa terlalu banyak, tetapi ditambahkan untuk membuat jawabannya mandiri.

Nikos M.
sumber
-1

Apakah Anda ingin mengajar pemrograman?

Ketika saya masih kecil, kami pergi berlibur berkemah dan saya membawa manual komputer. Saya bisa menulis permainan sederhana menggunakan pena dan kertas.

Kurasa ini adalah program pertamaku, jadi banyak pembelajaran yang terlibat. Saya tahu apa yang ingin saya lakukan, tetapi ada banyak awal yang salah sementara saya menemukan jawabannya. Tetapi akhirnya saya bisa menulis seluruh kode.

Saya kira apa yang saya katakan adalah mulai dengan kode pseudo dan \ atau diagram alur untuk merencanakan proyek dan kemudian menerjemahkannya ke dalam kode. Saya dapat men-debug banyak kode saya hanya dengan membacanya. Anda juga dapat menggunakan ulasan rekan di sini.

Ricky
sumber
Saya pasti akan menggunakan pseudocode daripada diagram alur.
David Richerby
Pertanyaan ini layak mendapatkan lebih dari satu titik data pengalaman per jawaban.
Raphael
-2

Untuk menggemakan jawaban sebelumnya: ada banyak yang bisa dipelajari hanya dengan membaca dan melakukan latihan menulis dan menulis. Jika Anda dapat mengatasi masalah di atas kertas, Anda memiliki kesulitan untuk melakukannya. Namun, saya juga ingin menyebutkan keberadaan cara yang cukup murah untuk mengekspos siswa ke CS. Apakah Anda terbiasa dengan Proyek Raspberry Pi ? Bahkan jika beberapa orang harus berbagi atau Anda hanya mampu mendapatkan 1 atau 2 unit itu mungkin masih layak dipertimbangkan sebagai cara untuk mengekspos siswa Anda pada teknologi.

liko
sumber
Ini tidak menambahkan apa pun dari jawaban yang ada.
Raphael
1
@ Raphael Benar, meskipun perhatikan bahwa jawaban lain yang menyebutkan perangkat komputasi murah diposting setelah ini.
David Richerby
-3

Saya akan mencoba menggoyangkan yang satu ini sedikit & "berpikir di luar kotak". komputer yang penuh sesak memang mahal, terkadang membutuhkan sumber daya dan sulit untuk dirawat. tetapi ada banyak sistem elektronik murah yang meniru komputer full-blown misalnya dengan layar LCD dll dan yang banyak prinsip pemrograman dasar dapat diterapkan, banyak yang bertenaga baterai. ada juga hubungan erat prinsip EE dengan komputasi seperti membangun sirkuit logika biner dll .; juga saat ini beberapa mainan memiliki kemampuan diprogram.

  • kalkulator yang dapat diprogram . beberapa memiliki seluruh bahasa pemrograman (tidak begitu tingkat tinggi tetapi lebih seperti bahasa assembly) dibangun ke dalamnya. beberapa akan mendukung program lanjutan.

  • Raspberry pi minicomputer / mikrokontroler dikembangkan untuk tujuan ini & menjalankan linux. kurang dari $ 40 dalam banyak kasus.

  • parallax STAMP kit mikrokontroler memerlukan koneksi USB tetapi mungkin pi Raspberry akan cukup. lihat juga PIC mikrokontroler

  • sistem robotika. ada banyak yang murah yang memiliki beberapa logika yang dapat diprogram. Lego robotics mindstorms / nxt adalah salah satu yang terbaik & ada model yang lebih murah.

  • beberapa game konsol memiliki prinsip pemrograman yang tertanam di dalamnya. mis. Little Big Planet memiliki fitur pemrograman yang luar biasa. ada beberapa versi game genggam yang dapat diprogram. ada banyak video youtube konstruksi rumit untuk inspirasi.

  • smartphone adalah dunia pemrograman baru. mereka memiliki browser yang menjalankan javascript, dan ada banyak aplikasi terkait pemrograman, dan satu bahkan dapat menjelajahi situs pemrograman dengan koneksi internet (termasuk wifi).

juga menyarankan seperti dalam komentar membangun program TM misalnya untuk penambahan dll dan berusaha untuk mengikutinya dengan tangan.

vzn
sumber
2
Saya menduga bahwa orang yang tidak memiliki akses ke komputer juga tidak memiliki akses ke Lego Mindstorms, sistem game konsol, smartphone atau wifi.
David Richerby
poin yang adil / jelas / diantisipasi tetapi tidak ada yang disebutkan secara eksplisit dikesampingkan dalam kriteria pertanyaan. itu tidak diketahui dari pertanyaan apakah siswa tidak punya barang karena mis mahal, dan segala sesuatu yang tercantum di atas lebih murah daripada komputer desktop sebagai tolok ukur. siswa atau sekolah yang mampu membeli buku pelajaran dapat membeli di atas (mungkin berbagi). dan jika buku teks tidak terjangkau, lalu apa lagi yang tersisa?
vzn
(fyi ruang lingkup pertanyaan telah diubah secara signifikan oleh mod sejak jawaban ini ditulis, bagi saya bahwa edit pertanyaan membuat asumsi-asumsi utama tidak ditemukan oleh penulis asli & lebih memilih ambiguitas asli sebagai fitur bukan bug)
vzn