Software Development: python package for fast error-correction codes
פיתוח חבילת פיית׳ון לביצוע תיקון שגיאות מהיר
הרקע לפרויקט:
קודים לתיקון שגיאות מאפשרים העברת ושמירת מידע בצורה בטוחה למרות שיבושים שיכולים לקרות ברכיבי זיכרון או ערוצי תקשורת. לקודים אלו שימושים רבים ונרחבים החל מתקשורת עם חלליות לטווח הרחוק, דרך קידוד דיסקים-קשיחים וCD, הגנה על מסדי נתונים, שידור וידאו באינטרנט, קודי QR, ועוד ועוד.
מטרת הפרויקט:
מטרת פרויקט זה היא לפתח חבילה בשפת פיית׳ון המאפשרת קידוד ופענוח מהיר של מידע. קימות מספר חבילות עבור קודים מסוג Reed-Solomon אך בפרוייקט זה המטרה היא לפתח קוד מהיר במיוחד אשר ניתן לקידוד ופענוח בזמן לינארי [1]. נרצה לפתח ספריית תוכנה (package) אשר תאפשר קידוד ופענוח של הודעות בגדלים שונים עם פרמטרי קוד שונים. החבילה צריכה להיות ממוקמת בrepository סטנדרטי כך שניתן יהיה להתקינה ע״י מתקין חבילות סטנדרטי כמו pip.
תכולת הפרויקט:
שלבי הפרויקט הם: (1) הבנת אלגוריתם פעולת הקוד שבמאמר [1], (2) מימוש אלגוריתם קידוד ופענוח להודעות עבור מספר רב של פרמטרים ואורכי הודעה. (3) עטיפת ספרית הקוד כחבילת פיית׳ון (package) הניתנת להורדה והתקנה ע״י כלל משתמשי פיית׳ון (4) ביצוע בדיקות תקינות, והשוואת מהירות קידוד/פענוח מול קודי תיקון-שגיאות אחרים (חבילות פית׳ון קיימות).
קורסי קדם:
תכנות פייתון או הנדסת תוכנה
מבוא לתורת הצפינה
דרישות נוספות:
פרוייקט זה מצריך יכולת הבנה מתמטית גבוהה ויכולת התמדה בקריאת מאמר אלגוריתמי והבנתו לעומק (כולל אלגוריתמי המשנה).
מקורות:
- “Linear Time Encodable and List Decodable Codes”, V. Guruswami and P. Indyk, STOC 2003. https://people.eecs.berkeley.edu/~venkatg/pubs/papers/linear-ld.pdf
תאריך עדכון אחרון : 31/07/2023