Inilah pendapat saya setelah beberapa upaya gagal dan beberapa yang cukup bagus:
Pemrograman adalah pemecahan masalah.
Mulailah dengan hal-hal konkret yang diprogram yang mereka gunakan setiap hari - browser internet (facebook), ponsel, mesin kasir, dll. Dapatkan mereka untuk memberi Anda banyak contoh. Tetapkan bahwa semua hal ini memiliki sejenis komputer di dalamnya. Jantung komputer adalah prosesor.
Prosesornya seperti pekerja yang sangat cepat, tetapi sangat bodoh. Jika Anda memberikan beberapa instruksi, itu akan melakukannya persis seperti yang Anda katakan. Itu tidak akan melakukan apa pun ekstra dan tidak akan memberi tahu Anda jika sesuatu yang Anda katakan itu salah. Prosesor ini melakukan segalanya - jika Anda tahu persis bagaimana melakukannya, ia dapat melakukan panggilan telepon atau memasukkan gambar ke dalam surel.
Tanyakan padanya bagaimana ia akan memberi tahu pekerja yang sangat cepat tetapi sangat bodoh untuk membeli sekaleng soda dari mesin soda. Ketika dia mulai menjelaskan langkah-langkahnya ("Masukkan uang ke dalam mesin dan tekan tombolnya.") Mulailah membedahnya seperti sebuah program ("Apa itu uang? Bagaimana saya memasukkannya ke dalam mesin? Ketika saya memasukkan uang ke dalam mesin dan tekan tombol pada saat yang sama, tidak ada yang terjadi. "). Jika Anda memiliki papan tulis, mulai di sebelah kiri dengan set instruksi pertamanya. Ketika dia merevisinya, letakkan daftar baru yang lebih besar di sisi kanan. Ketika Anda memiliki seperangkat instruksi yang baik, mulailah menggeneralisasi potongan-potongan ("Keluarkan uang dari saku Anda dan keluarkan soda dari baki dengan suara yang serupa - bagian mana yang sama / berbeda?") Ambil generalisasi dan letakkan di tengah dan mencoret potongan-potongan yang sekarang mereka jangkau. Cobalah untuk akhirnya mengikat potongan-potongan agar sesuai dengan instruksi aslinya, semacam panggilan fungsi seperti. Latihan bagus lainnya: kirim surat, melewati pintu, menggambar lingkaran / persegi / segitiga.
Jadi Pemrograman adalah pemecahan masalah: memecah masalah menjadi beberapa bagian, mengidentifikasi bagian-bagian yang umum, dan mengelompokkan bagian-bagian itu kembali untuk menyelesaikan masalah. Segera, Anda mengetahui bahwa beberapa bagian adalah umum di banyak masalah, dan kemudian Anda mulai menyatukan bagian-bagian untuk memecahkan masalah yang Anda bahkan tidak tahu Anda punya.
Oke, pada titik ini dia mungkin mengerti tapi dia mungkin bosan. Lanjutkan dengan serangkaian contoh pemrograman keren. Shader dan kode visual terkait mudah untuk didemonstrasikan - Anda dapat memasang gambar dan mulai membuat perubahan dengan perubahan kode yang sangat kecil. Jika dia menyatakan minatnya pada Facebook, pamerkan berbicara dengan Facebook melalui REST untuk melihat data teman teman (6 derajat). Jika dia menyukai video game, pamerkan beberapa demo permainan sumber terbuka bersama dengan beberapa cuplikan kode mereka dan bagaimana mereka membantu permainan bekerja. Akhiri dengan menunjukkan beberapa alat dan sumber daya gratis yang bisa dia selidiki di rumah. (Python, C #, dll.)
Usaha saya yang gagal: mencoba menjelaskan perhitungan pi (mereka bertanya), permainan papan C-Jump http://c-jump.com/ (mereka tidak mendapatkannya dan instruksinya buggy), dan langsung mengkode 2d game (tidak bisa menahan minat, tidak peduli seberapa kecil langkah yang saya ambil di antara demo).
Semoga berhasil!