Apa saja tugas yang bagus untuk kursus pengantar, untuk menjangkau siswa hari ini? [Tutup]

25

Saya secara berkala mengajarkan pengantar kursus pemrograman menggunakan Java . Saya ingin memberi siswa saya beberapa tugas menarik yang dapat mereka hubungkan atau temukan menarik . Paling tidak, saya ingin tugas yang masuk akal dan memiliki kohesi internal (misalnya, beberapa latihan pemrograman yang sangat buruk tampaknya dibuat-buat sehingga Anda harus menggunakan konstruksi pemrograman yang paling baru tercakup).

Untuk memberi Anda gambaran tentang ruang lingkup, inilah yang dibahas :

  • Penugasan harus di Jawa, menggunakan beberapa perpustakaan eksternal dapat dilakukan, tetapi itu harus menjadi API sederhana dan bukan kerangka kerja penuh
  • Variabel, Primitif, dan String
  • Input dan output konsol
  • if, for,while
  • Operator aritmatika dan logis
  • Grafik sederhana dengan gambar garis dan bentuk
  • Metode statis
  • Array satu dimensi

Para siswa tidak akan masuk ke topik lanjutan (mis., Tidak ada rekursi, tidak ada penekanan pada warisan). Jadi, saya tidak mencari proyek yang kompleks: "Mintalah mereka menulis kompiler C. Saya melakukannya ketika saya berusia 5 dan itu adalah satu-satunya cara saya belajar!"

Jika Anda memiliki ide yang lebih maju daripada ruang lingkup, silakan posting di pertanyaan "Menantang" yang ditautkan di bawah ini, dan bukan yang ini.

Sebaliknya, yang saya cari adalah ide-ide menarik yang dapat dicapai dalam program singkat. Sebagai contoh:

  • Siswa dapat menulis versi konsol dari Generator "Nama Star Wars" . Ini secara efektif membaca String dan menggunakan substring, tapi saya pikir itu menyenangkan. Variasi serupa akan menjadi program " Mad Libs ". Saya menggunakan ini lima tahun yang lalu, dan mungkin sudah "basi."

  • Menggunakan beberapa trigonometri yang disediakan untuk mereka, siswa dapat menggambar poligon reguler, dan membuat bentuk spiral yang menarik.

  • Ini juga tidak keluar dari pertanyaan untuk menggunakan beberapa kelas animasi sederhana dengan sebagian besar kode dipasok kepada mereka. Dan jika Anda mengetahui layanan Twitter atau Facebook yang dapat diakses dengan API sederhana, saya akan sangat tertarik untuk mengetahuinya.

Harap perhatikan bahwa pertanyaan ini berbeda dari Pertanyaan " Menantang pertanyaan Java untuk pemula ". Saya tidak mencari tantangan semata, hanya menarik. Saya pikir jika siswa mengerjakan sesuatu di mana mereka dapat dengan mudah menjawab "mengapa ada orang yang mau memprogram itu?" maka mereka akan belajar lebih baik.

Bahkan masalah sederhana seperti menghitung Mil per galon bisa baik. Meskipun, jika ada cara untuk memperbaruinya agar lebih relevan, semua lebih baik. Jika Anda memiliki latihan dari tempat lain (buku atau situs web), harap sebutkan sumbernya.

Untuk membantu Anda berpikir tentang mahasiswa baru hari ini, lihat daftar Pola Pikir Beloit , untuk banyak contoh yang pasti akan membuat Anda merasa tua.

Macneil
sumber
Karena penasaran, siswa tingkat berapa yang Anda ajar berpikir bahwa topik seperti rekursi dan desain berorientasi objek terlalu maju? Topik-topik ini dibahas secara mendalam di semester pertama saya, kelas pemrograman pengantar. Saya pikir Anda melakukan siswa Anda merugikan jika Anda mencoba untuk membuat kursus terlalu sederhana.
Mayra
@ Mayra: Ini untuk pengantar kursus pemrograman, kursus pertama untuk jurusan CS. Saya mencari masalah yang menarik bagi siswa untuk digunakan dalam 5 minggu pertama (atau bahkan hari pertama), dan tidak hanya di akhir. Merupakan tantangan nyata untuk bekerja dalam persyaratan ini (dan percayalah bahwa beberapa masalah di luar kendali saya), maka saya meminta bantuan kalian.
Macneil

Jawaban:

9

Mengingat kendala, saya sarankan menerapkan versi Hangman. Ini akan memungkinkan para siswa untuk menunjukkan semua teknik yang Anda perkenalkan kepada mereka, tanpa menjadi terlalu rumit.

Ini juga dapat digunakan sebagai proyek pengembangan saat kursus berlangsung. mis. setelah Anda membahas string dan variabel dimulai sebagai versi teks

misalnya

You have 10 guesses left.      * * * E * * T
What is your next guess?

kemudian perkenalkan loop untuk menghapus elemen cut and paste dari kode ketika 10 tebakan dihitung ... membangun hingga memiliki garis grafik dan tongkat orang digantung / disimpan pada akhir kursus 5 minggu.

Seperti kebanyakan orang lain yang memiliki pengalaman merekrut dan mewawancarai pemrogram, itu benar-benar membuat saya merasa ngeri bahwa tingkat kuliah ini diperlukan di universitas, tetapi sayangnya, itu mungkin akan terus dibutuhkan sampai sekolah memperlakukan pemrograman sebagai subjek serius setara dengan matematika atau sains

Michael Shaw
sumber
Ide yang hebat! Saya pikir saya akan menggunakan yang ini. :-) BTW, apa yang Anda maksud dengan "level biaya kuliah"? Seperti dalam biaya?
Macneil
Ini lebih merupakan keluhan tentang kurangnya biaya kuliah pemrograman sebelum universitas. Bayangkan ketika tiba di Universitas untuk melakukan kimia dan menghabiskan istilah pertama yang diberi tahu tentang atom, molekul, dan elektron. 3 tahun adalah waktu yang terlalu singkat untuk memahami ilmu komputer.
Michael Shaw
Saya sangat suka ide ini, tidak perlu grafis yang rumit, dapat dilakukan pada baris perintah dengan cukup baik. Ini menyenangkan dan belum pemecah masalah matematika lainnya.
Joppe
7

Kedengarannya seperti game petualangan teks bisa menjadi tugas yang hebat di suatu tempat pertengahan semester. Saya memiliki kelas yang membuat kami bermain Colossal Cave Adventure dan kemudian membuat game kami sendiri. Itu mengajari saya banyak konstruksi dasar sejak awal, dan itu sangat menyenangkan untuk dilakukan semua orang.

Morgan Herlocker
sumber
2
Kedengarannya menyenangkan, tapi tetap kecil.
7

Bagaimana kalau menggunakan satu atau dua masalah dari http://projecteuler.net/ Beberapa di antaranya cukup menarik dan orang bisa melihat manfaat dari menulis sebuah program untuk menyelesaikannya. Mereka cukup kecil sehingga beberapa dapat dilakukan sebagai tugas. Satu lagi yang saya ingin gunakan adalah menemukan $ 1,00 kata-kata. Setiap huruf dalam alafabet bernilai posisinya dalam uang yaitu a = 1, b = 2. Berapa banyak kata $ 1,00 dolar yang dapat Anda temukan? Ini bisa melibatkan file i / o (membaca dalam kamus), array, perulangan dll.

Gratzy
sumber
1
+1 untuk Project Euler. Sangat keren. Meskipun beberapa masalah agak terlalu lanjut, ada banyak yang tidak.
Macneil
Saya suka Project Euler tetapi saya tidak begitu yakin apakah itu akan menyenangkan jika saya harus latihan di universitas.
Oliver Weiler
Tidak semuanya tidak akan menyenangkan tetapi beberapa saya pikir kita akan menjadi pilihan yang baik
Gratzy
6
  • Menerapkan permainan Monopoli. Monopoli memiliki urutan yang jelas dan mudah dibagi menjadi fungsi-fungsi dengan sangat mudah. Ini juga hanya membutuhkan array satu dimensi dan beberapa kelas dasar. Logikanya cukup sederhana sehingga siswa akan lebih banyak berpikir tentang "bagaimana" daripada "apa", dan itu menghasilkan sesuatu yang dapat diperlihatkan kepada orang lain.

  • Beri mereka file terenkripsi yang dienkripsi dengan beberapa aturan yang dapat dibalik dan minta mereka untuk menulis decoder (buat itu cukup sederhana). Ini memberikan insentif ekstra untuk menyelesaikannya karena misteri tentang konten pesan.

  • Saya tidak tahu mengapa Anda hanya mencakup satu array dimensi dan bukan matriks (mereka benar-benar tidak jauh berbeda), tetapi jika Anda bersedia memasukkannya ke dalam game sylabus Game of Life Jon Conway juga relatif mudah dan menghasilkan sesuatu menyenangkan.

  • Gim seperti catur membutuhkan pemikiran tetapi masih dalam batas-batas apa yang dapat dilakukan oleh pemula dengan pewarisan minimal (bidak spesifik mewarisi dari kelas Piece umum, dan board memegang objek tipe Piece), dan array 2D (Anda dapat memilih untuk sederhanakan dengan tidak perlu mengimplementasikan hal-hal yang sulit seperti pendeteksian teman sekerja atau ketidakmampuan untuk benteng jika ada musuh yang mengancam jalur kastil)

EpsilonVector
sumber
+1 untuk saran permainan Monopoli. Adapun array 2D, saya setuju sepenuhnya bahwa mereka dapat mengarah ke tugas yang sangat menarik. Namun, ada kendala yang membuatnya sehingga array 2D tidak layak (misalnya, buku teks sudah diperbaiki, dan satu miliar masalah politik fakultas lainnya yang tidak akan membuat saya bosan, juga tidak akan membuat Anda bosan dengan pendapat pribadi saya tentang hal ini. masalah di luar kendali saya).
Macneil
Ah, kami harus membuat permainan monopoli di sekolah. Dan pemutus enkripsi.
Carra
+1 untuk Monopoli. Setelah siswa mengodekannya, minta mereka untuk membuat probabilitas mendarat di berbagai properti. Pengetahuan itu sangat membantu secara strategis.
joshdick
4

Kami menciptakan beberapa proyek dengan hanya i / o, fungsi dan operator bersyarat di sekolah. Semua dilakukan sebelum kita belajar tentang pemrograman berorientasi objek. Proyek-proyek ini maju perlahan menjadi semakin sulit. Cukuplah untuk mengatakan, 4 jam yang kami miliki setiap minggu hampir tidak cukup menjelang akhir tahun.

Semua proyek ini dilakukan hanya dengan fungsi & i / o:

  • Gim yang belajar. Anda mengambil sejumlah batang, pc mengambil sejumlah batang. Ulangi. Yang terakhir yang memegang tongkat kehilangan. Kami harus membuat program belajar mandiri sederhana yang menjadi lebih baik setelah setiap pertandingan. Contoh yang bagus untuk mempelajari array 2D.

  • Pemecah kode. Anda tahu enkripsi Caesar, pilih huruf dan tambahkan nilai huruf ke setiap huruf kata Anda. Misalnya kunci = 'a' dan kata = "rahasia". Ini akan menjadi "tfdsfq". Dapat dilakukan dengan membaca file dan kemudian membuat tabel frekuensi untuk setiap huruf. Anda juga membaca dalam Alkitab bahasa Inggris. Kemudian Anda bisa melihat bahwa huruf yang paling sering digunakan dalam alfabet bahasa Inggris adalah 'e' dan menyelesaikannya. Tantangan yang ditambahkan: gunakan kunci seperti 'ab' yang merupakan tugas kami. Latihan yang baik untuk memahami saya / o.

  • Pembuat barcode. Program ini adalah latihan untuk memanggil perpustakaan eksternal. Anda mendapat kode dan harus membuat gambar dengan kode batang. Perpustakaan eksternal digunakan untuk menghasilkan gambar.

  • Algoritma genetik untuk memecahkan masalah salesman keliling. Ini adalah proyek yang lebih maju untuk 2 atau 3 orang. Anda mulai dengan rute acak dan rute ini membaik sepanjang waktu sampai Anda memiliki "rute yang baik". Bonus: buat peta dengan rute.

  • Program kompresi lzw yang berfungsi . Ini adalah proyek final, 4 orang. Parameternya cukup sederhana. "Zip file.txt file.zip" atau yang serupa. Proyek yang menyenangkan tetapi memahami algoritma lzw butuh beberapa saat.

Carra
sumber
Sangat menarik ... Sekolah apa yang kamu tuju? Apakah ini semua di tahun pertamamu?
Macneil
Itu adalah kursus untuk menghangatkan orang untuk spesialisasi teknik informatika. Anda masih dapat mengubah spesialisasi Anda setelah tahun itu. Para siswa memang tahu loop dasar, beberapa i / o ke layar / file dan fungsi.
Carra
3

Kalkulator akan menjadi proyek yang bagus untuk mempelajari operasi aritmatika. Anda dapat membuatnya menjadi aplikasi konsol berbasis menu sederhana, atau GUI. Empat fungsi (+, -, *, /) untuk memulai, dengan poin tambahan untuk hal-hal yang lebih kompleks seperti root kuadrat, dll.

Untuk penanganan string, saya akan menyarankan beberapa masalah validasi. Alamat email terlintas dalam pikiran - membiarkannya tidak dicentang dapat menyebabkan lubang injeksi SQL, atau hal-hal lain, dan mereka relatif mudah untuk divalidasi. Untuk menambahkan, mungkin memiliki program yang dapat mengambil nama depan, tengah, dan belakang dan merangkai mereka bersama spasi, dan juga mengambil nama lengkap dan menguraikannya ke dalam setiap komponen. Yang pertama digunakan lebih dari yang kedua dalam kehidupan nyata, tetapi saya belum bisa memikirkan skenario parsing lain yang cukup sederhana.

Untuk menunjukkan metode statis, Anda dapat menetapkan masalah pencarian email. Memiliki file nama dan email, dan konstruktor statis dapat memasukkan nama / email ke dalam daftar, dengan metode statis untuk menemukan email untuk nama yang diberikan.

Semoga ini memberi Anda beberapa ide! Semoga beruntung dengan kelasmu.

Michael K.
sumber
1
+1 Terima kasih! Inilah jawaban yang saya cari.
Macneil
Game lebih menyenangkan daripada kalkulator.
3

Satu hal yang sangat menarik dan keren untuk sebuah tugas adalah menulis implementasi Game of Life Conway dalam 2D. Ini memetakan dengan sangat baik untuk struktur data array dasar, itu menyenangkan dan cukup mudah dilakukan, tetapi masih membutuhkan pemikiran. Ini mungkin membuka beberapa keingintahuan dan eksperimen (AI).

Siswa tingkat lanjut dapat menulis versi dalam 3D untuk poin tambahan.

Martin Wickman
sumber
3

Saya akan beralih pada generator bilangan prima.

Tugas

  1. Cetak bilangan prima dari 1 hingga 100.
  2. Cetak bilangan prima dari input1 ke input2.
  3. Rekam dan cetak data kinerja generasi utama.
  4. Grafik data kinerja generasi prima.
  5. Iterate pada optimasi algoritma generator bilangan prima.
dacracot
sumber
2

Saya menggunakan Perpustakaan ACM untuk membantu siswa intro melakukan grafik dan permainan sederhana. Kami sudah dapat melakukan permainan dasar, dua pemain, berbasis pemain dengan tidak lebih dari keterampilan yang Anda uraikan. Minggu ini mereka melakukan permainan Fox and Hounds .

Saya sudah berusaha untuk menjauh dari konsol I / O selama mungkin. Ini adalah konsep asing bagi banyak siswa hari ini, karena mereka semua tumbuh dengan GUI. Jadi saya fokus pada MVC, mendapatkan model yang benar, dan menambahkan GUI hanya setelah mereka menguji model mereka. Pengujian dilakukan melalui pengujian unit otomatis dan Code Pad di BlueJ . Tidak public static void main()perlu, selamanya.

Barry Brown
sumber
menarik. Mungkin Anda akan menuliskan pengalaman Anda dalam artikel atau entri blog?
2

Saya mengajar dengan cara intro di abad terakhir, dan itu BASIC, tetapi seperti Anda, saya ingin membuat para siswa mengerjakan proyek yang menyenangkan dengan rancangan mereka sendiri. Jadi saya menyarankan banyak kemungkinan:

  • Game petualangan sederhana, seperti Wumpus
  • Simulasi olahraga (hanya teks, grafik untuk yang ambisius) untuk baseball atau apa pun
  • Ilmu pengetahuan, seperti mensimulasikan evolusi genetika
  • Olahraga / sains, seperti balap perahu layar
  • Keuangan, seperti memiliki bank sendiri untuk orang-orang dalam rumah tangga Anda, atau investasi
  • Musik atau permainan grafis sederhana

... atau apa pun yang dipikirkan siswa. Mereka akan datang kepada saya dan berkata "bagaimana dengan program untuk melakukan XYZ?" dan saya akan selalu mengatakan "Hebat", dan kemudian mungkin membimbing mereka sedikit untuk tidak membuatnya terlalu rumit.

Biasanya proyek mereka berakhir menjadi beberapa ratus baris kode, dan mereka selalu menikmatinya.

PS Saya memberikan tugas ini setelah siswa kompeten dengan struktur kontrol dasar, I / O, array, dan file berurutan. Itu adalah istilah proyek, bagian utama dari nilai mereka, dan saya memiliki tugas tonggak menengah, seperti bagian garis besar melalui, jadi mereka tidak mencoba untuk melakukan semuanya pada akhirnya dan menabrak dinding. Saya ingin memasukkan mereka ke dalam ini di awal semester mungkin, ketika mereka memiliki keterampilan yang cukup untuk memulai, biasanya sekitar minggu 6 atau 8.

Mike Dunlavey
sumber
1

Saya meminta seorang guru untuk menulis program yang Anda tulis modulnya. Pada dasarnya, itu adalah permainan dan Anda harus menulis algo untuk menyelesaikannya, semuanya ada di sana untuk membuatnya grafis dan cantik dan berfungsi dengan baik. Mungkin Anda harus menulis kerangka permainan Anda sendiri dan memberi mereka alat dasar yang merupakan versi bodoh dari hal-hal keren yang dapat mereka lakukan nanti di luar kotak tempat Anda memasukkannya.

Penyamaran
sumber
1

Dalam kursus intro saya, tiga proyek menonjol pada saya

Menulis program untuk menampilkan lukisan Mondrian acak.
Tulis bagian pertama dari permainan BrickBreaker, dapatkan bola memantul di dalam area yang ditentukan
Tulis permainan petualangan berbasis teks

Dari kelas algoritma saya,
Terapkan segitiga Serpinski

Keempat proyek ini memberi saya pemahaman besar tentang pemrosesan string, pengacakan, grafik, rekursi, dan animasi.

Jason
sumber
1

Apakah semua siswa di kelas CS jurusan? Dugaan saya tidak. Saya akan datang dengan tugas yang disesuaikan dengan jurusan di kelas.

Contoh:

  • Siswa seni dapat menulis sebuah program yang mengambil dimensi selembar kanvas dan bingkai untuk menghitung jumlah kanvas tidak akan tersedia untuk melukis (karena membungkus dan menjepit kanvas di sekitar bingkai).

  • Siswa Econ dapat menghitung bunga majemuk pada suatu item.

  • Siswa matematika dapat memilih masalah dari Project Euler.

Kavet Kerek
sumber
1
Kelas ini untuk jurusan dan non-jurusan. Banyak di bidang biologi.
Macneil
Menarik. Ide: temukan gambar organisme sel tunggal berenang di dalam air. Konversikan gambar ke B&W. Tulis program untuk menghitung jumlah organisme di dalam air. Ini akan memunculkan segala macam topik diskusi yang menarik: deteksi tepi, diferensiasi antara air dan non-air, penghapusan debu, dll.
Barry Brown
baik untuk bio, hal yang jelas muncul dalam pikiran adalah automata seluler. Anda dapat mengambil jarahan di bioquest.org untuk mendapatkan beberapa ide.
Kavet Kerek
1

Di SMA, saya mengambil kelas pemrograman pengantar, dan kami menggunakan Karel J. Robot . Ini memberikan gui untuk melihat robot Anda, dan memiliki serangkaian sensor dan metode gerakan yang sangat mendasar yang harus Anda perluas agar membuatnya melakukan hal-hal menarik. Saya pikir itu bagus karena robot mudah dimengerti bagi orang yang belum mengembangkan pemahaman tentang perbedaan antara perangkat lunak.

Ada juga Pemrosesan , yang baru saja saya temukan, yang awalnya dirancang untuk mengajarkan pemrograman, dan juga di java.

Nick Donohue
sumber
0

Saya akan menjadi pembangkang di sini. Saya pikir Anda harus memberi mereka masalah jenis bisnis yang valid untuk diselesaikan, bukan playtoy. Jika mereka tidak cukup serius untuk tertarik dan termotivasi dengan jenis pekerjaan yang sebenarnya akan mereka lakukan sebagai seorang profesional, saya lebih suka Anda gagal dalam kursus intro. Pekerjaan nyata bukan tentang membuat barang-barang keren, ini tentang memenuhi kebutuhan klien. Saya juga melihat banyak orang yang tidak bisa membuat lompatan antara apa yang mereka pelajari dalam game dan menggunakan teknik yang sama dalam pemrograman bisnis.

Setiap pengembang senior dan manajer perekrutan yang saya tahu merasa jijik dengan kualitas lulusan baru. Cobalah berfokus pada apa yang mereka butuhkan untuk belajar bekerja di dunia nyata dan lupakan untuk membuatnya menyenangkan.

HLGEM
sumber
Saya pikir banyak siswa akan menemukan masalah bisnis yang menarik. Jika Anda dapat menyarankan sesuatu yang konkret dan meningkatkan jawaban Anda, itu akan sangat membantu. Saya mencari spesifik.
Macneil
1
Ini seharusnya menjadi masalah yang tidak dapat mereka lakukan dengan mudah pada kalkulator TI-83 mereka. Namun Kalkulator Pajak Lain tidak akan memotongnya.
Barry Brown
1
Para siswa ini baru mengenal pemrograman dan perlu mengambil babysteps mereka dalam kursus ini. Membuatnya membosankan mungkin bukan cara yang paling efisien untuk mengajari mereka cara memprogram dan kita harus melihat guru-guru Terbaik daripada hanya membuat mereka melafalkan spesifikasi Java dari ujung ke ujung.
1
Tidak. Proyek-proyek ini harusnya menyenangkan. Proyek yang menyenangkan bisa jadi sulit. Bahkan, sebagian besar proyek kesayangan saya lebih sulit daripada pemrograman sehari-hari yang saya lakukan di tempat kerja.
Carra
2
Saya mengerti maksud Anda, tetapi saya dengan hormat tidak setuju, setidaknya sebagian, dan setidaknya untuk kursus pengantar. Ada banyak cara pemrograman yang bisa diambil, dan saya pikir kursus seperti ini harus mencakup hal-hal berbeda yang bisa dilakukan oleh program. Menunjukkan kepada siswa bahwa komputer hanya baik untuk masalah yang kami anggap "perlu untuk bisnis" tidak dilakukan oleh seorang programmer yang kreatif, karena hal itu membatasi pola pikir mereka. Saya pikir kursus yang dirancang dengan baik akan menantang siswa untuk memecahkan masalah dunia nyata, selain menunjukkan hal-hal menyenangkan yang dapat dilakukan komputer, seperti pemrograman permainan
Nick Donohue
0

Tugas untuk membuat widget konyol di ponsel mereka. Sesuatu yang bisa mereka tunjukkan pada teman-teman mereka. Saya memiliki telepon AT&T yang sangat murah dan dibutuhkan semacam file jar.

Paul Nathan
sumber
0

Tugas paling penting yang saya lihat memaksa orang untuk memikirkan sesuatu yang seharusnya tidak mereka pertimbangkan. Sesuatu yang sepenuhnya di luar materi kursus yang sederhana, sesuatu yang tampaknya mustahil. Sesuatu yang memiliki beberapa solusi yang valid.

Beberapa yang membuat saya terkesan:

  1. Roshambo AIs (digunakan dalam kursus AI di UOA). Fungsi sederhana yang mengembalikan -1, 0, 1 untuk batu, kertas, gunting. AI saling bertentangan, dan statistik dikumpulkan oleh program utilitas agregat. Tugas ini secara konstan mengejutkan orang-orang dalam berapa banyak pendekatan yang layak (dan berapa banyak yang berkinerja sangat buruk).

  2. Masalah penyortiran sederhana dengan karakteristik yang tidak mungkin. Sortir file dengan panjang tak hingga dengan memori terbatas. Masalah ini mengguncang fondasi pemikiran saya dalam algoritma. Ada banyak masalah terkait: rata-rata berjendela atas data panjang tak terbatas, dll., Masing-masing memaksa solusi untuk sesuatu yang tampaknya mustahil.

  3. Masalah simulasi yang muncul sepele. Simulasi lalu lintas (kendaraan, jaringan), simulasi mobil balap (kiri, kanan, lebih cepat, lebih lambat), simulasi toko kelontong.

  4. Masalah jaringan (kelemahan besar dalam lulusan saya telah bekerja dengan selama beberapa tahun terakhir). Peer networking networking with handhelds, misalnya, membuktikan kompleksitas masalah n-sinkronisasi, pembaruan rekan, kepercayaan rekan, dll.

  5. Bahasa kecil (kelemahan lain dalam lulusan baru). Kembangkan sedikit bahasa untuk AI permainan sederhana (catur, roshambo, tank, mojo CSS, bot Twitter). Berpikir tentang konsep desain bahasa, interpretasi, dan tindakan adalah fundamental.

Bruce Alderson
sumber
Apakah kertas, batu, gunting AI bisa mengetahui hasilnya, atau melihat apa sejarahnya?
Macneil
Ya, histori tersedia melalui array dalam contoh C (tapi itu akan berlaku sama untuk Java, Ruby, dll.). Lihatlah halaman kompetisi asli: webdocs.cs.ualberta.ca/~darse/rsbpc.html
Bruce Alderson