
The Georgia Institute of Technology
تعلّم مطابقة الأنماط (KMP وRabin‑Karp) وخوارزميات الرسوم مثل ديكسترا وMST، مع تطبيقات برمجة ديناميكية بلغة جافا.
تُكمل هذه الدورة «هياكل البيانات والخوارزميات» تسلسل البرنامج المكوّن من أربع دورات، عبر التركيز على خوارزميات الرسوم البيانية (Graphs)، والبرمجة الديناميكية، وحلول مطابقة الأنماط في معالجة النصوص. كما تتضمن مراجعة قصيرة للغة Java حول الموضوعات المرتبطة بهياكل البيانات الجديدة التي يغطيها هذا الجزء. تتطلب الدورة معرفة مسبقة بلغة Java، وبالبرمجة كائنية التوجه، وبعدد من هياكل البيانات الخطية وغير الخطية. ويجري دمج مفهوم التعقيد الزمني (Time Complexity) على امتداد محتوى الدورة ضمن جميع هياكل البيانات والخوارزميات التي ستتعلمها وتطبّقها. ستتعمق في «النوع المجرّد للبيانات» للرسوم البيانية (Graph ADT) وفي البنى المساعدة المستخدمة لتمثيل الرسوم (مثل تمثيلات القوائم والمصفوفات/المصفوفات المجاورة وغيرها). ويُعد فهم هذه التمثيلات أساسياً لتطوير خوارزميات قادرة على اجتياز الرسم البياني بالكامل بكفاءة. ستدرس خوارزميتي اجتياز رئيسيتين: البحث بالعمق (Depth-First Search) والبحث بالعرض (Breadth-First Search)، ثم تنتقل إلى خوارزميات محورية تعمل على الرسوم البيانية مثل خوارزمية ديكسترا لإيجاد أقصر مسار. كما ستتعلم خوارزميات بناء «شجرة الامتداد الدنيا» (Minimum Spanning Tree - MST) انطلاقاً من الرسم البياني. وفي جانب معالجة النصوص، ستستكشف خوارزميات مطابقة الأنماط بدءاً من الأساليب البسيطة (Brute Force) وصولاً إلى KMP وBoyer–Moore وRabin–Karp، مع التركيز على دور المعالجة المسبقة (Preprocessing) ومشكلات الاعتماد على الشيفرات التجزئية (Hash Codes) واحتمالات التصادم. ستستخدم أيضاً أدوات التصوّر في الدورة لفهم خطوات الخوارزميات أثناء التنفيذ.
Mary Hudachek-Buswell
Associate Chair, School of Computing Instruction