Pendekatan Pembelajaran Intensif STEM

Ada banyak kursus luar biasa di dunia pendidikan teknik, tetapi seringkali kurikulum yang dibangun di atasnya memiliki satu kelemahan serius - kurangnya konektivitas yang baik antara berbagai topik. Orang bisa keberatan: bagaimana bisa begitu?

Ketika program pelatihan sedang dibentuk, prasyarat dan urutan yang jelas di mana disiplin ilmu harus dipelajari ditunjukkan untuk setiap kursus. Misalnya, untuk merakit dan memprogram robot seluler primitif, Anda perlu mengetahui sedikit mekanika untuk membuat struktur fisiknya; dasar-dasar listrik pada tingkat hukum Ohm / Kirchhoff, representasi sinyal digital dan analog; operasi dengan vektor dan matriks untuk menggambarkan sistem koordinat dan pergerakan robot di ruang angkasa; dasar-dasar pemrograman pada tingkat penyajian data, algoritma sederhana dan kontrol struktur transfer, dll. untuk menggambarkan perilaku.

Apakah semuanya ada dalam program universitas? Tentu saja ada. Namun, untuk hukum Ohm / Kirchhoff kita mendapatkan termodinamika dan teori medan; selain operasi dengan matriks dan vektor, Anda harus berurusan dengan formulir Jordan; untuk mempelajari polimorfisme dalam pemrograman - topik yang tidak selalu diperlukan untuk memecahkan masalah praktis yang sederhana.

Pendidikan universitas sangat luas - siswa menempuh bidang yang luas dan seringkali tidak melihat arti dan arti praktis dari pengetahuan yang ia terima. Kami memutuskan untuk membalikkan paradigma pendidikan universitas STEM (dari kata-kata Sains, Teknologi, Teknik, Matematika) dan membuat program yang bergantung pada koherensi pengetahuan, yang memungkinkan tumbuhnya kelengkapan di masa depan, yaitu, ini menyiratkan pengembangan mata pelajaran yang intensif.

Studi tentang area subjek baru dapat dibandingkan dengan studi area tertentu. Dan di sini ada dua opsi: apakah kita memiliki peta yang sangat rinci dengan sejumlah besar detail yang perlu dipelajari (dan ini membutuhkan banyak waktu) untuk memahami di mana landmark utama dan bagaimana mereka berhubungan satu sama lain; atau Anda dapat menggunakan rencana primitif, yang hanya menunjukkan titik utama dan posisi relatifnya - peta semacam itu sudah cukup untuk segera mulai bergerak ke arah yang benar, mengklarifikasi detail di sepanjang jalan.

Kami menguji pendekatan pembelajaran intensif STEM di sekolah musim dingin, yang kami lakukan bersama dengan siswa MIT dengan dukungan JetBrains Research.

Persiapan bahan


Bagian pertama dari program sekolah adalah satu minggu kelas di bidang utama, yang meliputi aljabar, sirkuit listrik, arsitektur komputer, pemrograman Python dan pengantar ROS (Sistem Operasi Robot).

Arahan tidak dipilih secara kebetulan: saling melengkapi, mereka seharusnya membantu siswa melihat hubungan antara yang tampak berbeda, pada pandangan pertama, hal-hal - matematika, elektronik dan pemrograman.

Tentu saja, tujuan utamanya bukan untuk memberi banyak kuliah, tetapi untuk memberi siswa kesempatan untuk menerapkan pengetahuan yang baru saja mereka peroleh dalam praktik.

Di bagian aljabar, siswa dapat dilatih dalam operasi dengan matriks dan memecahkan sistem persamaan yang berguna dalam mempelajari rangkaian listrik. Belajar tentang perangkat transistor dan elemen logis yang dibangun atas dasar itu, siswa dapat melihat aplikasi mereka di perangkat prosesor, dan setelah mempelajari dasar-dasar bahasa Python, menulis sebuah program untuk robot nyata di atasnya.



Duckietown


Salah satu tugas sekolah adalah meminimalkan pekerjaan dengan simulator jika memungkinkan. Oleh karena itu, rangkaian besar rangkaian elektronik disiapkan, yang harus dikumpulkan siswa pada papan tempat memotong roti dari komponen nyata dan mengujinya dalam praktik, dan Duckietown dipilih sebagai dasar untuk proyek tersebut.

Duckietown adalah proyek sumber terbuka yang mencakup robot otonom kecil yang disebut Duckiebot, dan jaringan jalan di mana mereka bepergian. Duckiebot adalah platform beroda yang dilengkapi dengan komputer mikro Raspberry Pi dan satu kamera.

Berdasarkan itu, kami menyiapkan serangkaian tugas yang mungkin, seperti membangun peta jalan, menemukan objek dan berhenti di sampingnya, dan sejumlah lainnya. Siswa juga dapat mengusulkan masalah mereka sendiri dan tidak hanya menulis program untuk menyelesaikannya, tetapi juga segera meluncurkannya dengan robot sungguhan.

Mengajar


Selama kuliah, para guru memberi tahu materi menggunakan presentasi yang sudah disiapkan sebelumnya. Beberapa kelas direkam dalam video, sehingga siswa berkesempatan menontonnya di rumah. Selama kuliah, mahasiswa menggunakan bahan-bahan di komputer mereka, mengajukan pertanyaan, memecahkan masalah bersama dan secara mandiri, kadang-kadang di papan tulis. Berdasarkan hasil pekerjaan, peringkat setiap siswa secara terpisah untuk mata pelajaran yang berbeda dihitung.



Pertimbangkan menyelenggarakan kelas di setiap mata pelajaran secara lebih rinci. Subjek pertama adalah aljabar linier. Siswa untuk satu hari mempelajari vektor dan matriks, sistem persamaan linear, dll. Tugas-tugas praktis dibangun dalam mode interaktif: tugas-tugas yang diusulkan diselesaikan secara individual, dan guru serta siswa lain memberikan komentar dan kiat.



Subjek kedua adalah listrik dan sirkuit sederhana. Siswa mempelajari dasar-dasar elektrodinamika: tegangan, arus, resistansi, hukum Ohm dan hukum Kirchhoff. Tugas-tugas praktis sebagian dilakukan dalam simulator atau dilakukan di papan tulis, tetapi lebih banyak waktu dikhususkan untuk membangun sirkuit nyata, seperti sirkuit logika, sirkuit osilasi, dll.



Topik berikutnya adalah Arsitektur Komputer - dalam arti tertentu, jembatan yang menghubungkan fisika dan pemrograman. Siswa mempelajari dasar fundamental, yang maknanya lebih teoretis daripada praktis. Sebagai praktik, siswa merancang sirkuit aritmatika-logika secara mandiri dalam simulator, untuk poin yang mereka terima poin.

Hari keempat adalah hari pertama pemrograman. Python 2 dipilih sebagai bahasa pemrograman, karena digunakan dalam pemrograman di bawah ROS. Hari ini disusun sebagai berikut: guru memberi tahu materi, memberikan contoh pemecahan masalah, sementara siswa mendengarkannya, duduk di depan komputer, dan mengulangi apa yang ditulis guru di papan tulis atau slide. Kemudian siswa memecahkan masalah yang sama pada mereka sendiri, kemudian solusi dievaluasi oleh guru.

Hari kelima didedikasikan untuk ROS: orang-orang berkenalan dengan robot pemrograman. Sepanjang hari sekolah, siswa duduk di depan komputer, menjalankan kode program yang dibicarakan guru. Mereka mampu secara mandiri meluncurkan unit dasar ROS, dan juga berkenalan dengan proyek Duckietown. Pada akhir hari ini, siswa siap untuk memulai bagian desain sekolah - memecahkan masalah praktis.



Deskripsi proyek yang dipilih


Siswa ditawari untuk bergabung dalam tim yang terdiri dari tiga orang dan memilih topik proyek. Akibatnya, proyek-proyek berikut diadopsi:

1. Kalibrasi warna. Duckiebot perlu mengkalibrasi kamera ketika mengubah kondisi pencahayaan, sehingga ada tugas kalibrasi otomatis. Masalahnya adalah rentang warna sangat sensitif terhadap cahaya. Peserta menerapkan utilitas yang akan menyoroti warna yang diinginkan pada bingkai (merah, putih dan kuning) dan membangun rentang untuk masing-masing warna dalam format HSV.

2. Taksi Bebek. Gagasan dari proyek ini adalah bahwa Duckiebot dapat berhenti di dekat beberapa objek, mengambilnya dan mengikuti rute tertentu. Bebek kuning cerah dipilih sebagai objek.



3. Membangun grafik jalan. Ada tugas membangun grafik jalan dan persimpangan. Tujuan dari proyek ini adalah untuk membangun grafik jalan tanpa memberikan data lingkungan priori untuk Duckiebot, hanya mengandalkan data kamera.

4. Mobil patroli. Proyek ini diciptakan oleh siswa sendiri. Mereka menawarkan untuk mengajar satu Duckiebot, "patroli", untuk mengejar yang lain, "penyusup." Untuk tujuan ini, mekanisme pengenalan target oleh penanda ArUco digunakan. Segera setelah pengakuan selesai, sinyal penyelesaian dikirim ke "penyusup".



Kalibrasi warna


Tujuan proyek Kalibrasi Warna adalah untuk menyesuaikan kisaran warna tanda yang dapat dikenali dengan kondisi pencahayaan baru. Tanpa penyesuaian seperti itu, pengenalan garis berhenti, pembagi jalur, dan batas jalan menjadi salah. Peserta mengusulkan solusi berdasarkan template warna tata letak preprocessing: merah, kuning, dan putih.

Masing-masing warna ini memiliki kisaran awal nilai HSV atau RGB. Menggunakan rentang ini, semua area yang mengandung warna yang cocok ditemukan pada bingkai, dan yang terbesar dipilih dari mereka. Area ini diambil sebagai warna untuk diingat. Kemudian rumus statistik digunakan, seperti menghitung mean dan standar deviasi, untuk mengevaluasi rentang warna baru.

Kisaran ini ditulis untuk file konfigurasi kamera Duckiebot dan dapat digunakan nanti. Pendekatan yang dijelaskan diaplikasikan pada ketiga warna, akhirnya membentuk rentang untuk masing-masing warna markup.

Pengujian menunjukkan pengenalan garis penandaan yang hampir sempurna, kecuali ketika pita mengkilap digunakan sebagai bahan penandaan, memantulkan sumber cahaya begitu kuat sehingga pada sudut pandang kamera, penandaan tampak putih terlepas dari warna aslinya.



Taksi bebek


Proyek Taksi Bebek melibatkan pembangunan algoritma pencarian untuk bebek penumpang di kota, dan kemudian transportasi ke titik yang diinginkan. Para peserta membagi tugas ini menjadi dua: deteksi dan gerakan di sepanjang grafik.

Siswa melakukan pendeteksian seekor bebek, dengan asumsi bahwa bebek itu disebut area mana saja pada bingkai yang dapat dikenali sebagai kuning, dengan segitiga merah (paruh) di atasnya. Segera setelah area tersebut terdeteksi pada frame berikutnya, robot harus mendekatinya dan kemudian berhenti selama beberapa detik, mensimulasikan pendaratan penumpang.

Kemudian, dengan memiliki grafik jalan pra-disimpan dari seluruh duckietown dan posisi bot, serta menerima tujuan sebagai input, para peserta membangun jalur dari titik keberangkatan ke titik kedatangan menggunakan algoritma Dijkstra untuk mencari jalur dalam grafik. Output disajikan sebagai seperangkat perintah - berbelok di setiap persimpangan berikut.



Grafik jalan


Tujuan dari proyek ini adalah untuk membangun grafik - jaringan jalan di Duckietown. Node dari grafik yang dihasilkan adalah persimpangan, dan busur adalah jalan. Untuk melakukan ini, Duckiebot harus menjelajahi kota dan menganalisis rutenya.

Selama pengerjaan proyek, ide dipertimbangkan, tetapi kemudian ide untuk membuat grafik tertimbang di mana biaya tepi ditentukan oleh jarak (waktu untuk mengatasi) antara persimpangan ditolak. Implementasi ide ini ternyata terlalu melelahkan, dan tidak akan ada cukup waktu dalam kerangka sekolah.

Ketika Duckiebot sampai ke persimpangan berikutnya, ia memilih jalan meninggalkan persimpangan yang belum ia pindahkan. Ketika semua jalan di semua persimpangan telah ditutup, daftar kedekatan persimpangan yang dihasilkan tetap berada dalam memori bot, yang dikonversi menjadi gambar menggunakan perpustakaan Graphviz.

Algoritma yang diusulkan oleh para peserta tidak cocok untuk Duckietown yang sewenang-wenang, tetapi bekerja dengan baik di kota kecil yang terdiri dari empat persimpangan yang digunakan dalam sekolah. Idenya adalah untuk melengkapi setiap persimpangan dengan penanda ArUco yang berisi pengenal persimpangan untuk melacak persimpangan.
Skema kerja dari algoritma yang dikembangkan oleh para peserta ditunjukkan pada gambar.



Mobil patroli


Tujuan dari proyek ini adalah untuk mencari, menuntut, dan menahan bot penyusup di Duckietown. Patroli bot harus bergerak di sepanjang lingkaran luar jalan di kota untuk mencari bot penyusup yang terkenal. Setelah penyusup terdeteksi, bot patroli harus mengikuti penyusup dan membuatnya berhenti.

Pekerjaan dimulai dengan pencarian ide mendeteksi bot pada frame dan mengenali penyusup di dalamnya. Tim menyarankan untuk melengkapi setiap bot di kota dengan penanda unik di belakang - sama seperti mobil asli memiliki nomor registrasi negara. Untuk ini, penanda ArUco dipilih. Mereka sebelumnya digunakan di duckietown, karena mereka mudah dikerjakan dan memungkinkan Anda untuk menentukan orientasi marker di ruang dan jarak ke sana.

Selanjutnya, itu perlu untuk membuat bot patroli bergerak dengan ketat di lingkaran luar tanpa berhenti di persimpangan. Secara default, Duckiebot bergerak di jalur dan berhenti di garis berhenti. Kemudian, menggunakan rambu-rambu jalan, menentukan konfigurasi persimpangan dan membuat pilihan tentang arah persimpangan. Untuk setiap langkah yang dijelaskan, salah satu kondisi mesin robot adalah yang bertanggung jawab. Untuk menyingkirkan halte di persimpangan, tim mengubah mesin keadaan sehingga ketika mendekati garis berhenti, bot segera langsung menuju ke bagian persimpangan.

Langkah selanjutnya adalah memecahkan masalah menghentikan bot penyusup. Tim membuat asumsi bahwa bot patroli dapat memiliki akses SSH ke setiap bot di kota, yaitu, memiliki beberapa informasi tentang data otorisasi apa dan id apa yang dimiliki setiap bot. Jadi, setelah penyusup terdeteksi, bot patroli mulai terhubung melalui SSH ke bot penyusup dan mematikan sistemnya.

Setelah mengkonfirmasi bahwa perintah shutdown selesai, bot patroli juga berhenti.
Algoritma robot patroli dapat direpresentasikan sebagai skema berikut:



Pekerjaan proyek


Pekerjaan itu diselenggarakan dalam format yang mirip dengan Scrum: setiap pagi siswa merencanakan tugas untuk hari ini, dan pada malam hari melaporkan pekerjaan yang dilakukan.

Pada hari-hari pertama dan terakhir, siswa menyiapkan presentasi yang menggambarkan tugas dan bagaimana menyelesaikannya. Untuk membantu siswa mengikuti rencana yang mereka pilih, di ruangan tempat proyek sedang dikerjakan, selalu ada guru dari Rusia dan Amerika yang menjawab pertanyaan. Komunikasi terjadi terutama dalam bahasa Inggris.

Hasil dan demonstrasi mereka


Bekerja pada proyek berlangsung satu minggu, setelah itu siswa mempresentasikan hasil mereka. Semua orang menyiapkan presentasi di mana mereka memberi tahu apa yang mereka pelajari di sekolah ini, pelajaran apa yang paling penting yang mereka sukai atau tidak suka. Setelah itu, masing-masing tim mempresentasikan proyek mereka. Semua tim mengatasi tugas.

Tim yang menerapkan kalibrasi warna menyelesaikan proyek lebih cepat daripada yang lain, sehingga mereka berhasil menyiapkan dokumentasi untuk program mereka. Dan tim yang terlibat dalam grafik jalan, bahkan pada hari terakhir sebelum demonstrasi proyek, mencoba menyelesaikan dan memperbaiki algoritme mereka.



Kesimpulan


Setelah sekolah, kami meminta siswa untuk mengevaluasi kegiatan masa lalu dan menjawab pertanyaan tentang bagaimana sekolah memenuhi harapan mereka, keterampilan apa yang mereka peroleh, dll. Semua siswa mencatat bahwa mereka belajar untuk bekerja dalam tim, mendistribusikan tugas dan merencanakan waktu mereka.

Siswa juga diminta untuk menilai manfaat dan kerumitan kursus. Dan di sini terbentuk dua kelompok penilaian: untuk beberapa, kursus tidak terlalu sulit, sementara yang lain menilai mereka sebagai yang paling sulit.

Ini berarti bahwa sekolah telah mengambil posisi yang tepat, tetap dapat diakses oleh pemula di area tertentu, tetapi juga menyediakan bahan untuk pengulangan dan konsolidasi untuk siswa yang berpengalaman. Perlu dicatat bahwa hampir semua orang mencatat program pemrograman (Python) sebagai tidak rumit, tetapi bermanfaat. Yang paling sulit, menurut siswa, adalah kursus "Arsitektur Komputer".

Ketika siswa ditanya tentang kekurangan dan kelebihan sekolah, banyak yang menjawab bahwa mereka menyukai gaya mengajar yang dipilih, di mana para guru dengan cepat dan secara individu memberikan bantuan dan menjawab pertanyaan.

Siswa juga mencatat bahwa mereka suka bekerja dalam mode perencanaan harian tugas mereka dan secara mandiri menetapkan tenggat waktu. Siswa mencatat kurangnya pengetahuan yang diberikan, yang diperlukan saat bekerja dengan bot: saat menghubungkan, memahami dasar-dasar dan prinsip-prinsip pekerjaannya sebagai kekurangan.

Hampir semua siswa mencatat bahwa sekolah melebihi harapan mereka, dan ini menunjukkan arah yang benar dari organisasi sekolah. Dengan demikian, ketentuan umum harus dipertahankan ketika mengatur sekolah berikutnya, dengan mempertimbangkan dan, jika mungkin, menghilangkan kekurangan yang dicatat oleh siswa dan guru, mungkin mengubah daftar kursus atau waktu pengajaran mereka.

Catatan Penulis: Tim Laboratorium Algoritma Robot Seluler Penelitian JetBrains Research

PS Blog perusahaan kami memiliki nama baru. Sekarang akan didedikasikan untuk proyek-proyek pendidikan JetBrains.

Source: https://habr.com/ru/post/id467425/


All Articles