
Paroxython เป็นชุดของเครื่องมือบรรทัดคำสั่งที่ แท็ก และ กรอง โดยอัลกอริทึมนำเสนอคอลเลกชันแบบฝึกหัดการเขียนโปรแกรม Python ของคุณ
คุณเป็นครูรับผิดชอบหลักสูตรการเขียนโปรแกรมเบื้องต้นในสถาบันการศึกษา ในช่วงหลายปีที่ผ่านมาคุณได้สะสมจำนวนมาก - มีจำนวนมากเกินไป - โปรแกรมและตัวอย่างรหัสที่อาจเป็นที่สนใจของนักเรียนของคุณ
หรือในฐานะนักพัฒนาที่มีประสบการณ์คุณต้องการแบ่งปันความรู้ของคุณโดยช่วยให้คนที่คุณรักเรียนรู้วิธีการเขียนโค้ด การค้นหาวัสดุการสอนคร่าวๆทำให้เว็บไซต์และที่เก็บจำนวนมากเต็มไปด้วยโปรแกรม Python ในระดับต่าง ๆ (เช่น 1, 2, 3, 4, 5, 6 และอีกมากมายจาก Python ที่ยอดเยี่ยมในการศึกษา)
ไม่ว่าในกรณีใดรหัสแหล่งงูหลามที่คุณรวบรวมมักจะมี จำนวนมาก (หลายร้อยหรือหลายพัน) ขนาดพอสมควร (อะไรก็ตามที่ต่ำกว่า 100 บรรทัดของรหัส) และ การศึกษา ในธรรมชาติ (เช่นตัวอย่างตัวอย่างการทดสอบการออกกำลังกาย แนวคิดการเขียนโปรแกรมที่คุณวางแผนจะสอนยังคงอยู่ ในระดับที่ค่อนข้างต่ำ (เช่นการมอบหมาย, ลูปซ้อน, รูปแบบการสะสม, ฟังก์ชั่นการเรียกซ้ำหาง ฯลฯ )
หากสิ่งที่ฟังดูคุ้นเคยให้อ่านต่อไปเรื่อย ๆ
Paroxython มีเป้าหมายที่จะช่วยคุณเลือกจากคอลเลกชันของคุณโปรแกรมเดียวที่เหมาะสมกับความต้องการของคุณมากที่สุด ตัวอย่างเช่นเรายินดีที่จะตอบคำถามต่อไปนี้:
- แนวคิดนี้จะแสดงได้อย่างไร?
- ปัญหาใดที่ใช้อัลกอริทึมและโครงสร้างข้อมูลแบบเดียวกันกับสิ่งนี้?
- ฉันควรให้นักเรียนทำอะไรให้นักเรียนของฉันเพื่อให้พวกเขาสามารถฝึกเนื้อหาของบทเรียนสุดท้ายได้?
ยิ่งกว่านั้นเนื่องจาก Paroxython รู้ว่าชั้นเรียนของคุณรู้อะไรมันสามารถแนะนำโปรแกรมที่เหมาะสมในเวลาที่เหมาะสม:
- การออกกำลังกายรีวิวที่ดีคืออะไร?
- แบบฝึกหัดใดที่ฉันสามารถให้การสอบนี้ได้?
- ต้นทุนการเรียนรู้ในปัจจุบันของตัวอย่างนี้คืออะไร?
ในระยะยาว Paroxython อาจแนะนำคุณและทำให้คุณคิดใหม่หลักสูตรของคุณ:
- ข้อกำหนดเบื้องต้นสำหรับแนวคิดของการมอบหมายคืออะไร?
- ฉันมีวัสดุเพียงพอที่จะแนะนำรูทีนย่อยก่อนที่ฉันจะพูดถึงเงื่อนไขและลูปหรือไม่?
- ในบรรดาลูปที่ต้องมาก่อน: ทรงพลังที่สุด (
while) หรือมีประโยชน์มากที่สุด (for)?- วิธีการจัดโครงสร้างแบบมีเหตุผลพวงของรูปแบบการวนซ้ำตามปกตินี้?
- พื้นฐาน คืออะไรกันแน่?
ปัญหาทั้งหมดที่ผู้เขียนเปลี่ยนใจตั้งแต่เขาเริ่มทำงานในโครงการนี้!
ในโลกอุดมคติ Paroxython อาจยุติสงครามทางศาสนาที่อันตรายที่สุดด้วยการโต้แย้งที่มีเหตุผลและขับเคลื่อนด้วยข้อมูล:
- พ่อเป็นบาปที่จะออกก่อนเวลาหรือไม่?
- ไบต์จริงควรใช้หน้ากากหรือไม่?

Paroxython เริ่มต้นจากโฟลเดอร์ที่กำหนดของ โปรแกรม เนื้อหาของมันคือการแยกวิเคราะห์และคุณสมบัติทั้งหมดที่ตรงตาม ข้อกำหนด ที่ให้ไว้มีป้ายกำกับและเชื่อมโยงกับช่วงของพวกเขา (เช่น "assignment_lhs_identifier:a": 4, 6, 18 หรือ "loop_with_late_exit:while": 3-7, 20-29 )
ฉลาก เหล่านี้เป็นเพียงความรู้ที่กระจัดกระจาย ขั้นตอนต่อไปคือการแมปพวกเขาลงบน อนุกรมวิธาน ที่ออกแบบโดยมีข้อ จำกัด ขั้นพื้นฐานในใจ (เช่นความจริงที่ว่าการแนะนำแนวคิดของการออกก่อนเวลาต้องมาหลังจากลูปซึ่งตัวเองต้องการการควบคุมการ "flow/loop/exit/early" ของ แท็กซอน

สารสกัดจากอนุกรมวิธานที่เกิดจากอัลกอริทึม - Python
คลิกเพื่อข้ามไปยังเวอร์ชันแบบไดนามิกเต็มรูปแบบในคู่มือผู้ใช้
ทุกอย่างจะยังคงอยู่ใน ฐานข้อมูล แท็กซึ่งสามารถกรองในภายหลังผ่าน ไปป์ไลน์ ของคำสั่งเช่น:
ผลที่ได้คือรายการ คำแนะนำ โปรแกรมที่สั่งโดยการเพิ่มต้นทุนการเรียนรู้
สมมติว่าไดเรกทอรี programs มีโปรแกรมง่าย ๆ เหล่านี้
ก่อนอื่นสร้างฐานข้อมูลแท็กนี้:
> paroxython collect programs
Labelling 21 programs.
Mapping taxonomy on 21 programs.
Writing programs_db.json.จากนั้นกรองผ่านไปป์ไลน์นี้:
> 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 Voilàรายงานคำแนะนำของคุณ!
ไม่มีใครประหลาดใจ:
python -m pip install paroxython
คำสั่งต่อไปนี้ควรพิมพ์ข้อความช่วยเหลือและออก:
paroxython --help
หากคุณใช้สมุดบันทึก/ห้องปฏิบัติการ Jupyter คุณเพิ่งติดตั้งคำสั่ง Magic ที่เรียกว่า โหลดแบบนี้:
% load_ext paroxython สิ่งนี้ควรพิมพ์ "paroxython 0.7.0 loaded." - เรียกใช้บนเซลล์ของรหัส 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| แท็กซอน | เส้น |
|---|---|
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 |
อย่างที่คุณเห็นในโปรแกรมนี้ Paroxython ระบุระหว่างคนอื่น ๆ :
style/procedural );def/subroutine/function/impure );while ลูป ( flow/loop/while ) ด้วยทางออกล่าช้า ( flow/loop/exit/late );type/sequence/list/literal/empty และ call/subroutine/method/sequence/list/append );var/assignment/explicit/parallel ) โปรดทราบว่าเราแยกแยะความแตกต่างระหว่างการกำหนดที่ชัดเจน (ด้วย = ) และโดยปริยาย (พารามิเตอร์และตัวแปรการวนซ้ำ);var/assignment/explicit/parallel/slide ) หากนิกายนั้นไม่ซ้ำกันสำหรับเรารูปแบบนั้นเกิดขึ้นในหลาย ๆ โปรแกรม: การใช้งานลำดับ C-Finite ที่มี C มากกว่า 1, ตัวหารทั่วไปที่ยิ่งใหญ่ที่สุด, Quicksort ฯลฯvar/scope/local );meta/count/variety/3 ) ขึ้นอยู่กับจำนวนบรรทัดคุณสมบัติและคุณสมบัติที่แตกต่าง Magic Command %%paroxython (สอดคล้องกับ tag คำสั่งย่อย) มีรอยขีดข่วนพื้นผิวของระบบเท่านั้น ดังที่แสดงไว้ก่อนหน้านี้เพื่อประเมินค่าใช้จ่ายในการเรียนรู้ของคุณสมบัติและรับคำแนะนำที่สามารถดำเนินการได้คุณจะต้องสร้างฐานข้อมูลแท็กด้วย collect ก่อนจากนั้นโทร recommend บนท่อของคุณ
แม้ว่านี่จะยังคงเป็นงานที่กำลังดำเนินอยู่ แต่ Paroxython ควรได้รับการบันทึกไว้ค่อนข้างดี:
ในที่สุดแบตเตอรี่ของตัวอย่างและความครอบคลุมการทดสอบที่ครอบคลุมควรช่วยตอบคำถามที่เหลืออยู่