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?
Jawaban:
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!
sumber
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:
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 .
sumber
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.
sumber
Lihat http://csunplugged.org/ untuk beberapa ide hebat. Google adalah salah satu sponsor.
Dari situs:
sumber
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-
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
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.
sumber
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.
sumber
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 :)
sumber
Saya kebanyakan menjawab hanya untuk bereaksi terhadap pernyataan ini dan karena saya sangat tidak setuju dengan jawaban lain. Perbandingan yang benar menurut saya akan
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.
Tergantung pada anggaran:
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.
sumber
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).
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.
sumber
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.
sumber
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.
sumber
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.
sumber