
Paroxython adalah satu set alat baris perintah yang menandai dan memfilter dengan fitur algoritmik kumpulan latihan pemrograman Python Anda.
Anda adalah seorang guru, yang bertanggung jawab atas kursus pemrograman pengantar di lembaga pendidikan. Selama bertahun -tahun, Anda telah mengumpulkan banyak - terlalu banyak - program dan cuplikan kode yang mungkin menarik bagi siswa Anda.
Atau, sebagai pengembang berpengalaman, Anda ingin membagikan pengetahuan Anda dengan membantu orang yang dicintai belajar cara membuat kode. Pencarian sepintas untuk materi pedagogis menghasilkan sejumlah besar situs web dan repositori yang diisi dengan program Python dari berbagai tingkatan (misalnya, 1, 2, 3, 4, 5, 6, dan lebih banyak lagi dari Python yang mengagumkan dalam pendidikan).
Bagaimanapun, kode sumber Python yang telah Anda kumpulkan biasanya banyak (ratusan atau bahkan ribuan), berukuran wajar (apa pun di bawah 100 baris kode), dan pendidikan di alam (misalnya, cuplikan, contoh, kuis, solusi olahraga, algoritma klasik). Konsep pemrograman yang Anda rencanakan untuk diajarkan tetap relatif rendah (misalnya penugasan, loop bersarang, pola akumulasi, fungsi rekursif ekor, dll.).
Jika semua itu terdengar akrab, teruslah membaca saya.
Paroxython bertujuan untuk membantu Anda memilih, dari koleksi Anda, satu program yang paling sesuai dengan kebutuhan Anda. Misalnya, itu dengan senang hati akan menjawab pertanyaan -pertanyaan berikut:
- Bagaimana konsep ini dapat diilustrasikan?
- Masalah apa yang menggunakan algoritmik yang sama dan struktur data seperti ini?
- Tugas pekerjaan rumah apa yang harus saya berikan kepada siswa saya sehingga mereka dapat mempraktikkan konten pelajaran terakhir?
Selain itu, karena Paroxython tahu apa yang diketahui kelas Anda, itu dapat merekomendasikan program yang tepat pada waktu yang tepat:
- Apa yang akan membuat latihan ulasan yang baik?
- Latihan mana yang dapat saya berikan pada ujian ini?
- Berapa biaya belajar saat ini dari contoh ini?
Dalam jangka panjang, Paroxython dapat memandu Anda dan entah bagaimana membuat Anda memikirkan kembali garis besar kursus Anda:
- Apa prasyarat untuk konsep penugasan?
- Apakah saya memiliki bahan yang cukup untuk memperkenalkan subrutin sebelum saya bahkan berbicara tentang kondisional dan loop?
- Di antara loop, yang harus didahulukan: yang paling kuat (
while), atau yang paling berguna (for)?- Bagaimana cara menyusun secara logis sekelompok pola iteratif yang biasa ini?
- Apa dasarnya , sebenarnya?
Semua masalah di mana penulis berubah pikiran sejak ia mulai mengerjakan proyek ini!
Di dunia yang ideal, Paroxython bahkan bisa mengakhiri perang agama paling mematikan, dengan argumen yang rasional, yang digerakkan oleh data:
- Ayah, apakah itu dosa untuk keluar lebih awal?
- Haruskah byte sungguhan menggunakan topeng?

Paroxython dimulai dari folder program yang diberikan. Isinya diuraikan, dan semua fitur yang memenuhi spesifikasi yang disediakan diberi label dan dikaitkan dengan rentang mereka (misalnya, "assignment_lhs_identifier:a": 4, 6, 18 atau "loop_with_late_exit:while": 3-7, 20-29 ).
Label -label ini hanya merupakan pengetahuan yang tersebar. Langkah selanjutnya adalah memetakannya ke taksonomi yang dirancang dengan kendala hirarki dasar dalam pikiran (misalnya, fakta bahwa pengenalan konsep keluar awal harus datang setelah loop, yang mensyaratkan aliran kontrol, diekspresikan oleh takson "flow/loop/exit/early" ).

Ekstrak taksonomi yang dihasilkan dari algoritma - Python.
Klik untuk melompat ke versi dinamis penuh di manual pengguna.
Semuanya kemudian bertahan dalam database tag, yang nantinya dapat disaring melalui pipa perintah, misalnya:
Hasilnya adalah daftar rekomendasi program yang dipesan dengan meningkatkan biaya belajar.
Misalkan direktori programs berisi program -program sederhana ini.
Pertama, bangun database tag ini:
> paroxython collect programs
Labelling 21 programs.
Mapping taxonomy on 21 programs.
Writing programs_db.json.Kemudian, filter melalui pipa ini:
> paroxython recommend programs
Processing 5 commands on 21 programs.
19 programs remaining after operation 1 (impart).
18 programs remaining after operation 2 (exclude).
12 programs remaining after operation 3 (exclude).
10 programs remaining after operation 4 (include).
10 programs remaining after operation 5 (hide).
Dumped: programs_recommendations.md.ET Voila, Laporan Rekomendasi Anda!
Tidak ada kejutan yang tidak ada:
python -m pip install paroxython
Perintah berikut harus mencetak pesan bantuan dan keluar:
paroxython --help
Jika Anda menggunakan Jupyter Notebook/Lab, Anda juga baru saja menginstal perintah Magic. Memuatnya seperti ini:
% load_ext paroxython Ini harus mencetak "paroxython 0.7.0 loaded." . Jalankan di sel kode Python:
% % paroxython # Lines
def fibonacci ( n ): # 2
result = [] # 3
( a , b ) = ( 0 , 1 ) # 4
while a < n : # 5
result . append ( a ) # 6
( a , b ) = ( b , a + b ) # 7
return result # 8| Takson | Baris |
|---|---|
call/subroutine/method/sequence/list/append | 6 |
condition/inequality | 5 |
def/subroutine/function/impure | 2-8 |
def/subroutine/parameter/arg | 2 |
flow/loop/exit/late | 5-7 |
flow/loop/while | 5-7 |
meta/count/program/sloc/8 | 2-8 |
meta/count/subroutine/sloc/7 | 2-8 |
meta/count/variety/3 | 2-8 |
meta/program | 2-8 |
operator/arithmetic/addition | 7 |
style/procedural | 2-8 |
type/number/integer/literal | 4 |
type/number/integer/literal/zero | 4 |
type/sequence/list | 6 |
type/sequence/list/literal/empty | 3 |
type/sequence/tuple/literal | 4, 4, 7, 7 |
var/assignment/explicit/parallel | 4 |
var/assignment/explicit/parallel/slide | 7 |
var/assignment/explicit/single | 3 |
var/assignment/implicit/parameter | 2 |
var/scope/local | 2-8, 2-8, 2-8, 2-8 |
Seperti yang Anda lihat, dalam program ini, Paroxython mengidentifikasi antara lain:
style/procedural );def/subroutine/function/impure );while ( flow/loop/while ) dengan keluar akhir ( flow/loop/exit/late );type/sequence/list/literal/empty dan call/subroutine/method/sequence/list/append );var/assignment/explicit/parallel ). Perhatikan bahwa kami membedakan antara penugasan eksplisit (dengan = ) dan implisit (parameter dan variabel iterasi);var/assignment/explicit/parallel/slide ). Jika denominasi ini unik bagi kami, pola itu sendiri terjadi di sejumlah program: implementasi sekuens c-finite dengan C lebih besar dari 1, pembagi umum terbesar, quicksort, dll.var/scope/local );meta/count/variety/3 ), tergantung pada jumlah garis, fitur, dan fitur yang berbeda. Perintah ajaib %%paroxython (sesuai dengan tag sub -perintah) hanya menggaruk permukaan sistem. Seperti yang ditunjukkan sebelumnya, untuk memperkirakan biaya pembelajaran fitur dan mendapatkan rekomendasi yang dapat ditindaklanjuti, Anda akan perlu pertama kali membangun database tag dengan collect , dan kemudian hubungi recommend pada pipa Anda.
Meskipun ini masih bekerja dalam proses, Paroxython seharusnya sudah didokumentasikan dengan cukup baik:
Akhirnya, serangkaian contoh dan cakupan tes komprehensif harus membantu menjawab pertanyaan yang tersisa.