محاكاة متقدمة لمباراة التفتيش التربوي — معارف وديداكتيك التعليم الابتدائي
محاكاة غير رسمية من إعداد EduConcours، صُممت لقياس دقة القراءة وعمق التحليل والقدرة على حل وضعيات مركبة، لا مجرد استرجاع التعاريف. يتكون الاختبا…
ابدأ الاختبار ←المعالجة الآلية للمعلومة، التفكير الخوارزمي وبنى المعطيات الساكنة والدينامية، البرمجة المهيكلة بلغة C والبرمجة الكائنية بـJava/C++، تكنولوجيا الويب وقواعد البيانات ونظم المعلومات وUML، نظم التشغيل والشبكات المعلوماتية ومعمارية الحاسوب، ثم المكتبيات المتقدمة وإنتاج الوسائط المتعددة — مبنية على توصيف اختبار التخصص لدورة نونبر 2025. كما تشمل المكتبيات والوسائط المتعددة، لتمنح المترشح تصورًا متكاملًا يربط المفاهيم النظرية بالقدرة على تحليل المشكلات التقنية كما ترد في اختبار التخصص.
هذه الوحدة ليست تلخيصًا لوثيقة 2005، وليست كتابًا عامًا في علوم الحاسوب. هي تركيب معرفي موجّه لاختبار التخصص: تُستعمل وثيقة 2005 لتثبيت هوية المادة ومفاهيمها المؤسسة وموقع الخوارزميات والبرمجة والأنظمة والشبكات والبرمجيات داخل المنهاج المغربي؛ ويُستعمل توصيف 2025 لضبط ما يجب أن يغطيه التحضير فعلًا وبأي وزن.
تؤسس وثيقة 2005 للمعلوميات باعتبارها ذات ثلاثة أبعاد متكاملة: علمية، تقنية، ومجتمعية؛ وتضع ضمن مفاهيمها التشغيلية الأساسية: بنية المعطيات، الخوارزمية، البرنامج، والكائن. كما تنظم البرنامج الأصلي في أربعة محاور: الأنظمة المعلوماتية، البرمجيات، الخوارزميات والبرمجة، الشبكات والإنترنت. هذه النواة تظل مفيدة، لكن توصيف 2025 يرفع مستوى العمق والتخصص بشكل واضح، لذلك اعتمدت هذه الوحدة بنية حديثة لا تتقيد حرفيًا بتقسيم 2005.
ما ورد في توصيف 2025 ولم يكن موجودًا في وثيقة 2005 (مثل البنى الدينامية، UML، البرمجة الكائنية، PHP/MySQL، إدارة العمليات والذاكرة، التوجيه IP، إنتاج الوسائط المتعددة...) يُقدَّم هنا باعتباره محتوى امتحانيًا حديثًا مصدر إلزامه هو التوصيف، لا باعتباره جزءًا أصليًا من منهاج 2005.
| المجال | الوزن | المكوّنات |
|---|---|---|
| التطوير | 45% | خوارزميات، بنى معطيات، برمجة، ويب، قواعد بيانات ونظم معلومات |
| الأنظمة والشبكات | 30% | نظم التشغيل، الشبكات، معمارية الحاسوب |
| البرمجيات | 25% | مكتبيات متقدمة، خدمات الإنترنت، وسائط متعددة |
القاعدة المعتمدة في هذه الوحدة: كل عنصر منصوص عليه في التوصيف له موضع صريح داخل المتن؛ ولا تُدرج موضوعات إضافية إلا عندما تكون لازمة لفهم العنصر الموصوف أو لحل أسئلة التمييز بين مفاهيم متقاربة.
المعلوميات ليست مرادفًا لاستعمال الحاسوب، ولا لمجرد امتلاك مهارات مكتبية. موضوعها المركزي هو المعالجة الآلية للمعلومة؛ أي تمثيل المعلومات تمثيلًا صوريًا، بناء إجراءات لمعالجتها، ثم تنفيذ هذه الإجراءات بواسطة نظام حاسوبي. من هذا التعريف تتفرع ثلاثة مستويات مترابطة:
في البعد العلمي ندرس الخوارزميات، التمثيلات، البنى، حدود الحل، والكفاءة. في البعد التقني ننتقل إلى أدوات التنفيذ: لغات البرمجة، نظم التشغيل، قواعد البيانات، الشبكات، والبرمجيات. أما البعد المجتمعي فيتصل بالأمن والخصوصية والملكية الفكرية، وأثر الأتمتة، وتنظيم العمل، وإتاحة المعرفة. هذا التثليث مهم لأنه يمنع اختزال المادة في "مهارات زرّية" مرتبطة بنسخة برنامج بعينها.
التوصيف الحديث لا يختبر "تعريف المعلوميات" فقط، بل يبني جميع مجالاته على هذه البنية: الخوارزمية ← البرنامج ← نظام التشغيل والمعمارية ← الشبكة ← التطبيق وقاعدة البيانات ← الخدمات والمحتوى الرقمي.
لنأخذ العدد 13. في النظام الثنائي يُكتب 1101 لأن 13 = 8 + 4 + 0 + 1. والمحرف 'A' يُخزَّن برمز العدد 65 في الترميز ASCII، أي 01000001 على ثمانية بتات (64 + 1). الحاسوب إذن لا يعرف "عددًا" و"حرفًا" إلا بالاتفاق على طريقة تمثيل؛ وهذا هو معنى مستوى التمثيل في هذا الفصل.
| المعطى | المعلومة المستخرجة منه | المعالجة المطلوبة |
|---|---|---|
| 15 (رقم مجرد) | لا معنى له وحده | — |
| 15 في سجل نقط تلميذ | نقطة في مادة ما | حساب المعدل، الترتيب |
| سلسلة نقط الفصل كاملًا | تقدم التلميذ أو تراجعه | الترتيب، المقارنة، العرض البياني |
الخوارزمية وصف منته ودقيق لخطوات المعالجة مستقل عن لغة بعينها؛ البرنامج ترجمتها بلغة برمجة قابلة للتنفيذ على آلة. الخوارزمية الواحدة قد تُنجز ببرامج عدة.
10 = 8 + 2، أي 1010.
إلى البعد المجتمعي (الأمن والخصوصية)، وإن كانت تطبيقاته التقنية تمر عبر التشفير وصلاحيات الوصول.
الخوارزمية (Algorithme) سلسلة محددة من التعليمات تحول مدخلات إلى مخرجات. الخوارزمية الجيدة ينبغي أن تكون واضحة، منتهية، قابلة للتنفيذ، صحيحة بالنسبة إلى مواصفات المسألة، وأن تكون كلفتها الزمنية والذاكرية مناسبة.
التسلسل (enchaînement séquentiel) يعني أن التعليمات تنفذ بترتيبها. الإسناد (affectation) يغير قيمة متغير. يجب التمييز بين "المساواة الرياضية" وبين الإسناد البرمجي: x = x + 1 ليس مساواة منطقية، بل تحديث لقيمة x.
Lire a, b
s ← a + b
Ecrire s
البنية الشرطية تختار مسارًا وفق قيمة منطقية. الصيغ الأساسية: شرط بسيط، شرط ثنائي if/else، وشروط متداخلة أو متعددة الفروع.
Si note >= 10 Alors
Ecrire "Admis"
Sinon
Ecrire "Non admis"
FinSi
من الأخطاء المفاهيمية الشائعة: الخلط بين الشرط المركب والتداخل. الشرط المركب يوظف معاملات منطقية مثل AND/OR/NOT، أما التداخل فيضع بنية شرطية داخل فرع بنية أخرى.
الحلقة ذات العداد مناسبة عندما يكون عدد التكرارات معروفًا أو محكومًا بمجال عددي. الحلقة الشرطية while تفحص الشرط قبل التنفيذ، بينما do…while تضمن تنفيذ الجسم مرة واحدة على الأقل.
Pour i de 1 à n Faire
somme ← somme + i
FinPour
المفهوم المركزي في تحليل الحلقات هو عدد المرات التي ينفذ فيها الجسم. حلقة واحدة حتى n تقود غالبًا إلى كلفة خطية؛ حلقتان متداخلتان كل منهما حتى n تقودان غالبًا إلى كلفة تربيعية.
الدالة (fonction paramétrée) وحدة مستقلة تستقبل معاملات وتعيد قيمة أو تحقق أثرًا محددًا. الفائدة ليست فقط تقليل التكرار، بل أيضًا التجريد، التقسيم إلى وحدات، سهولة الاختبار، وإعادة الاستخدام.
Fonction max2(a, b)
Si a > b Alors
Retourner a
Sinon
Retourner b
FinSi
FinFonction
يجب فهم الفرق بين المعامل الصوري (paramètre formel) داخل تعريف الدالة والوسيط الفعلي (argument) عند النداء.
العودية (récursivité) هي أن تستدعي الدالة نفسها لحل نسخة أصغر من المشكلة. لكل عودية سليمة عنصران: حالة توقف تمنع الاستدعاء غير المنتهي، وخطوة عودية تقلص المشكلة وتقترب حتمًا من حالة التوقف.
Fonction factorielle(n)
Si n <= 1 Alors
Retourner 1
Sinon
Retourner n * factorielle(n - 1)
FinSi
FinFonction
تنفذ الاستدعاءات العودية عادة فوق مكدس الاستدعاءات call stack. كل استدعاء يحتفظ بسياقه المحلي إلى أن يعود الاستدعاء الأعمق. لذلك قد تؤدي عودية عميقة جدًا إلى تجاوز المكدس.
في المسائل البسيطة يكفي تتبع القيم، لكن الفهم المتين يعتمد ثلاثة أسئلة: هل تتوقف الخوارزمية؟ هل تعطي نتيجة مطابقة للمواصفات؟ هل تعمل لجميع الحالات المقبولة؟ في الحلقات يمكن استعمال فكرة الثابت الحلقي invariant de boucle: خاصية صحيحة قبل وبعد كل دورة، وتساعد في تبرير صحة النتيجة النهائية.
المصفوفة (tableau) تخزن عناصر من النوع نفسه في مواقع متجاورة منطقيًا، ويتيح الفهرس وصولًا مباشرًا إلى عنصر. الوصول بالرتبة عملية ثابتة تقريبًا O(1)، بينما البحث عن قيمة دون ترتيب مسبق يحتاج في أسوأ الأحوال إلى فحص جميع العناصر O(n).
في المصفوفات ثنائية البعد، يجب ضبط معنى الصف والعمود وترتيب المرور. الحلقتان المتداخلتان على مصفوفة n × m تكلفتهما العامة O(nm).
السلسلة (chaîne de caractères) متتالية محارف. في C هي عادة مصفوفة محارف منتهية بالمحرف الصفري '\0'. عمليات مثل حساب الطول، المقارنة، النسخ والبحث تستند إلى المرور على المحارف ما لم تتوفر بنية أو معلومة مسبقة تختصر ذلك.
السجل (enregistrement / record) يجمع حقولًا قد تكون من أنواع مختلفة تحت كيان واحد: مثل طالب له رقم واسم ومعدل. في C يمثل عادة بـ struct.
struct Etudiant {
int id;
char nom[50];
float moyenne;
};
الملف (fichier) تخزين دائم للبيانات خارج الذاكرة الرئيسية. يجب التمييز بين ملف نصي يفسر البيانات كمحارف، وملف ثنائي يحفظ تمثيلًا خامًا أو منظمًا للبايتات. المسار العام: فتح ← قراءة/كتابة ← فحص الأخطاء ← إغلاق.
التعقيد لا يقيس الزمن بالثواني، بل نمو عدد العمليات مع حجم المدخل. في التوصيف ورد صراحة التعقيد الخطي والتربيعي.
O(1)المعنى: لا يتغير مع n. مثال: الوصول إلى عنصر بفهرسه.
O(n)المعنى: يتناسب تقريبًا مع n. مثال: بحث خطي.
O(n²)المعنى: يتناسب تقريبًا مع مربع n. مثال: حلقتان كاملتان متداخلتان.
عند المقارنة بين خوارزميتين نهتم خصوصًا بسلوكهما عندما تكبر المدخلات، ونهمل الثوابت والحدود الأقل رتبة في ترميز Big-O.
البحث الخطي يفحص العناصر تباعًا؛ يعمل في بيانات غير مرتبة وكلفته في أسوأ حالة O(n). البحث الثنائي يحتاج إلى ترتيب مسبق، ويقسم مجال البحث إلى نصفين في كل خطوة، ولذلك كلفته O(log n). رغم أن توصيف الاختبار يذكر الخطية والتربيعية صراحة، فإن فهم البحث الثنائي ضروري للتمييز بين خوارزميات البحث.
في كل دورة نبحث عن أصغر عنصر في الجزء غير المرتب ونضعه في موضعه. الكلفة الزمنية المعتادة O(n²).
نبني جزءًا مرتبًا تدريجيًا، وندرج كل عنصر في مكانه. أسوأ حالة O(n²)، لكنه قد يكون جيدًا في بيانات صغيرة أو شبه مرتبة.
تُقارن العناصر المتجاورة وتبدل إذا كان ترتيبها خاطئًا. بسيط تعليميًا لكنه غالبًا غير كفء: O(n²).
لا تحفظ أسماء الخوارزميات فقط. اسأل: ما العملية التي تتكرر؟ ما الجزء الذي يصبح مرتبًا بعد كل دورة؟ هل الفرز مستقر؟ هل يعمل في مكانه؟ ما كلفته في أفضل/أسوأ حالة؟
المصفوفة المرتبة [2, 5, 8, 12, 16, 23, 38] والمطلوب القيمة 23 (الفهارس من 0 إلى 6).
| الخطوة | المجال | الوسط | المقارنة |
|---|---|---|---|
| 1 | 0 … 6 | 3 (القيمة 12) | 12 < 23 فننتقل إلى اليمين |
| 2 | 4 … 6 | 5 (القيمة 23) | وُجدت القيمة |
أنجز البحث الثنائي المهمة في خطوتين، بينما يحتاج البحث الخطي إلى ست مقارنات. في 1000 عنصر مرتب لا يتجاوز البحث الثنائي نحو 10 خطوات (210 = 1024)، في مقابل 1000 في الأسوأ للخطي. شرطه المسبق أن تكون المصفوفة مرتبة.
| الدورة | العنصر المُدرَج | المصفوفة بعدها |
|---|---|---|
| 1 | 2 | [2, 5, 4, 1] |
| 2 | 4 | [2, 4, 5, 1] |
| 3 | 1 | [1, 2, 4, 5] |
for (i = 0; i < n; i++) /* O(n) */
s += t[i];
for (i = 0; i < n; i++) /* O(n²) */
for (j = 0; j < n; j++)
if (t[i] < t[j]) c++;
الأولى حلقة واحدة، فعدد العمليات يتناسب مع n. الثانية حلقتان متداخلتان تنفذان n × n مرة. وإذا تضاعف الحجم من 1000 إلى 2000 تضاعف زمن الأولى تقريبًا مرتين، وتضاعف الثانية تقريبًا أربع مرات. وعدد المقارنات في الفرز بالاختيار هو n(n−1)/2، أي 10 مقارنات عند n = 5، وهو ما يبرر التعقيد التربيعي.
i <= n على مصفوفة من n عنصرًا.t[i] وما تعقيد البحث عن قيمة في مصفوفة غير مرتبة؟الأول O(1) لأن الفهرس يحدد الموضع مباشرة. والثاني O(n) في الأسوأ لأن قد تُفحص كل العناصر.
لأن المقياس يصف سلوك النمو عند كبر المدخل؛ 3n و100n ينموان خطيًا كلاهما.
الفرز بالإدراج، لأن كل عنصر يُدرَج بعد قليل من الإزاحات. أما الاختيار فيبقى يبحث عن الأصغر في كل دورة مهما كان الترتيب.
البنية الساكنة تحدد حجمها غالبًا مسبقًا أو تتطلب إعادة تخصيص مكلفة. البنى الدينامية تُبنى أثناء التنفيذ بواسطة تخصيص الذاكرة ومؤشرات الربط، وتسمح بالإضافة والحذف دون تحريك جميع العناصر. الثمن هو تعقيد إدارة المؤشرات والذاكرة.
المكدس يعمل بمبدأ LIFO: آخر داخل أول خارج. العمليات القياسية: push للإضافة، pop للحذف والإرجاع، peek/top لقراءة القمة. إذا نفذت البنية جيدًا تكون هذه العمليات O(1). من تطبيقاته: مكدس الاستدعاءات، التراجع، تقييم التعابير.
الطابور يعمل بمبدأ FIFO: أول داخل أول خارج. العمليات الأساسية: enqueue في الخلف وdequeue من الأمام. يستعمل في جدولة الطلبات، الطباعة، شبكات الاتصال، وخوارزمية BFS.
القائمة الأحادية تتكون من عقد، كل عقدة تحمل قيمة ومؤشرًا إلى التالية. الإدراج في البداية O(1)، أما الوصول إلى العنصر ذي الرتبة k فيتطلب المرور من الرأس O(k). الحذف يحتاج الانتباه إلى وصل العقدة السابقة بالتالية وتحرير الذاكرة إن كانت مخصصة ديناميًا.
typedef struct Node {
int data;
struct Node *next;
} Node;
في القائمة المزدوجة توجد وصلتان: السابقة والتالية، ما يسهل الحركة والحذف في الاتجاهين على حساب ذاكرة إضافية.
الشجرة بنية هرمية من عقد وروابط. في الشجرة الثنائية لكل عقدة ابنان على الأكثر: يسار ويمين. مصطلحات أساسية: الجذر، الورقة، الأب، الابن، العمق، الارتفاع، الشجرة الفرعية.
في شجرة البحث الثنائية BST تكون قيم الفرع الأيسر أصغر عادة من قيمة العقدة، واليمنى أكبر. البحث والإدراج والحذف قد تكون O(log n) إذا كانت الشجرة متوازنة، لكنها قد تنحدر إلى O(n) إذا أصبحت سلسلة.
الرسم البياني يتكون من رؤوس vertices وحواف edges. قد يكون موجهًا أو غير موجه، موزونًا أو غير موزون. من المفاهيم: الدرجة، المسار، الدورة، الاتصال.
نستعمل جدولًا n×n؛ الخانة A[i][j] تشير إلى وجود الحافة أو وزنها. ميزة: اختبار وجود حافة سريع O(1). عيب: ذاكرة O(n²) حتى لو كان الرسم قليل الحواف.
لكل رأس قائمة بجيرانه، عادة بعقد ومؤشرات. الذاكرة تصبح أقرب إلى O(V+E)، وهي أنسب للرسوم المتناثرة. هذا هو المقصود عمليًا في التوصيف بتمثيل الرسوم بواسطة الجداول والمؤشرات.
البحث بالعرض BFS يستعمل طابورًا ويزور المستويات تدريجيًا. البحث بالعمق DFS يستعمل مكدسًا صريحًا أو العودية. فهم العلاقة بين الخوارزمية وبنية البيانات المستخدمة نقطة أساسية: BFS ↔ Queue، DFS ↔ Stack/Recursion.
للتحقق من توازن الأقواس نُدرج كل قوس فاتح في المكدس، وعند كل قوس مغلق نُخرج القمة ونتأكد من تطابقها.
{ ثم [ ثم (، ثم يطابق ) مع ( و] مع [ و} مع {، ويصير المكدس فارغًا في النهاية: متوازنة.) تكون القمة [ وليست (: غير متوازنة.Node *n = malloc(sizeof(Node));
if (n == NULL) return tete;
n->data = 7;
n->next = tete; /* 1: نربط العقدة الجديدة بالرأس القديم */
tete = n; /* 2: ثم نجعلها رأسًا */
الترتيب مهم: لو نفذنا الخطوة الثانية أولًا لضاع الرأس القديم وفقدنا بقية القائمة.
نُدرج القيم 8, 3, 10, 1, 6 بالترتيب. الجذر 8؛ 3 على يساره؛ 10 على يمينه؛ 1 و6 ابنا 3.
| المرور | النتيجة |
|---|---|
| Preorder | 8, 3, 1, 6, 10 |
| Inorder | 1, 3, 6, 8, 10 (تصاعدي) |
| Postorder | 1, 6, 3, 10, 8 |
لو أُدرجت القيم مرتبة 1, 2, 3, 4, 5 لصارت الشجرة سلسلة يمينية، وتنحدر العمليات إلى O(n).
الحواف: A–B، A–C، B–D، C–D، D–E (غير موجه). قوائم المجاورة: A: B, C | B: A, D | C: A, D | D: B, C, E | E: D.
pop على مكدس فارغ (underflow) دون فحص.BFS يستعمل طابورًا، وDFS يستعمل مكدسًا صريحًا أو العودية (مكدس الاستدعاءات).
O(k) أي خطي، لأنه يلزم المرور من الرأس عقدة بعد عقدة، بخلاف المصفوفة O(1).
Inorder (يسار ← جذر ← يمين).
C لغة مترجمة، إجرائية، قريبة نسبيًا من الذاكرة، وتمنح تحكمًا مباشرًا في المؤشرات والملفات. البرنامج يبدأ عادة من main، ويُبنى من تعليمات ودوال وأنواع بيانات.
الأنواع الأساسية: char، int، float، double. المعاملات الحسابية والمنطقية والمقارنة لها أسبقية؛ لذلك الأقواس ضرورية عندما قد يلتبس ترتيب التقييم.
في C تمرر القيم افتراضيًا بالقيمة. لتعديل متغير لدى المستدعي نمرر عنوانه بمؤشر.
void incrementer(int *x) {
(*x)++;
}
int main(void) {
int a = 5;
incrementer(&a);
return 0;
}
اسم المصفوفة يتحول في أغلب التعبيرات إلى مؤشر إلى أول عنصر. التعبير t[i] يكافئ مفاهيميًا *(t + i). لكن المصفوفة ليست "مؤشرًا قابلًا لإعادة الإسناد"؛ يجب التمييز بين الهوية التخزينية للمصفوفة وبين متغير المؤشر.
السلسلة هي مصفوفة char منتهية بـ \0. دوال شائعة في string.h: strlen، strcpy، strcmp، strcat. من الأخطاء الخطيرة: تجاوز حدود المصفوفة، نسيان مساحة المحرف الصفري، أو النسخ إلى مساحة غير كافية.
الدوال الأساسية: malloc، calloc، realloc، free. كل تخصيص ناجح يجب أن تكون له استراتيجية تحرير واضحة لتجنب تسرب الذاكرة. كما يجب فحص قيمة المؤشر بعد malloc.
يُمثل الملف بمؤشر FILE*. فتح الملف عبر fopen بأوضاع مثل "r"، "w"، "a"، ويمكن إضافة b للثنائي. القراءة/الكتابة النصية: fprintf، fscanf، fgets. الثنائية: fread وfwrite.
الدالة التالية لا تغيّر شيئًا لدى المستدعي لأن المعاملين يُمرَّران بالقيمة:
void swap_faux(int a, int b) { int t = a; a = b; b = t; }
الصيغة الصحيحة تمرّر العنوانين:
void swap(int *a, int *b) { int t = *a; *a = *b; *b = t; }
int main(void) {
int x = 3, y = 8;
swap(&x, &y); /* x == 8, y == 3 */
return 0;
}
| السطر | *a (= x) | *b (= y) | t |
|---|---|---|---|
| قبل الاستدعاء | 3 | 8 | — |
| t = *a | 3 | 8 | 3 |
| *a = *b | 8 | 8 | 3 |
| *b = t | 8 | 3 | 3 |
FILE *f = fopen("notes.txt", "r");
if (f == NULL) { perror("ouverture"); return 1; }
int v, somme = 0;
while (fscanf(f, "%d", &v) == 1) somme += v;
fclose(f);
الشرط fscanf(...) == 1 أسلم من اختبار نهاية الملف قبل القراءة، لأنه يتوقف عند أول فشل في قراءة عدد.
scanf("%d", x) بدل scanf("%d", &x): يُمرَّر القيمة بدل العنوان، وسلوكه غير معرّف.if (a = 5) بدل if (a == 5): إسناد لا مقارنة، والشرط صحيح دائمًا.char s[5] = "Maroc";: الكلمة خمسة محارف وتحتاج ستة مواضع مع المحرف الصفري.free، أو نسيان free فيحدث تسرب للذاكرة.t[n] في مصفوفة من n عنصرًا؛ الفهارس الصالحة من 0 إلى n-1.يطبع 3، لأن *(p+2) يكافئ t[2]، وجمع 2 إلى المؤشر يتقدم عنصرين لا بايتين.
malloc؟لأنه يعيد NULL عند عدم توفر الذاكرة، وإهمال الفحص يعني الكتابة عبر مؤشر فارغ.
خطأ منطقي: الترجمة لم تفشل ولا التنفيذ انقطع، لكن الخوارزمية أو تطبيقها غير صحيحين.
البرمجة الكائنية Object-Oriented Programming تنظم البرنامج حول كائنات تجمع حالة state وسلوكًا behavior. الصنف class مخطط، والكائن object نسخة منه.
التغليف يفصل التمثيل الداخلي عن الواجهة العامة. نحمي الحقول ونمرر الوصول إليها عبر طرائق تتحقق من الشروط. في Java/C++ تتحكم محددات الوصول مثل private وpublic وprotected في الرؤية.
الباني يُستعمل لتهيئة الكائن عند إنشائه، ويساعد على ضمان أن الكائن يبدأ في حالة صحيحة. في C++ يوجد أيضًا مفهوم الهادم destructor لتحرير الموارد المرتبطة بعمر الكائن.
الوراثة تمثل علاقة is-a: صنف متخصص يشتق من صنف عام. لا ينبغي استعمالها لمجرد إعادة الاستخدام إذا لم توجد علاقة مفهومية سليمة؛ أحيانًا يكون التركيب composition أنسب.
يسمح بالتعامل مع كائنات من أصناف مختلفة عبر واجهة مشتركة، مع تنفيذ السلوك المناسب وقت التشغيل. في Java يرتبط ذلك بالـ method overriding والمراجع من النوع الأب/الواجهة. في C++ يرتبط عادة بالدوال الافتراضية virtual.
| المفهوم | Overloading | Overriding |
|---|---|---|
| المعنى | الاسم نفسه بتواقيع مختلفة | إعادة تعريف طريقة موروثة |
| المكان | داخل الصنف أو النطاق نفسه | بين صنف أب وصنف ابن |
| القرار | غالبًا وقت الترجمة | قد يكون وقت التشغيل عبر الربط الدينامي |
class Forme { double aire() { return 0; } }
class Cercle extends Forme {
private double r;
Cercle(double r) { this.r = r; }
@Override double aire() { return Math.PI * r * r; }
}
class Carre extends Forme {
private double c;
Carre(double c) { this.c = c; }
@Override double aire() { return c * c; }
}
Forme[] t = { new Cercle(1), new Carre(2) };
for (Forme f : t) System.out.println(f.aire());
الناتج: 3.14159... ثم 4.0. المتغير f من النوع Forme لكن الطريقة المنفذة تُحدَّد بنوع الكائن الفعلي وقت التشغيل: هذا هو الربط الدينامي. ولو أضفنا صنف Triangle لما احتجنا تعديل الحلقة، وهنا تظهر فائدة التعدد في تقليل الاقتران.
class Compte {
private double solde;
public void retirer(double m) {
if (m > 0 && m <= solde) solde -= m;
}
public double getSolde() { return solde; }
}
لو كان solde عامًا لأمكن لأي كود أن يضع رصيدًا سالبًا. الطريقة هي الحارس الوحيد للثوابت (الرصيد لا يصير سالبًا).
afficher() وafficher(int n) في صنف واحد؟هذا overloading: الاسم نفسه بتوقيعين مختلفين داخل الصنف، ويُحسم الاختيار عادة وقت الترجمة.
Pile ابنًا لـ ArrayList بالضرورة؟لأن الوراثة تُورِّث كل العمليات، فيمكن إدراج عنصر في وسط المكدس وهذا يكسر مبدأ LIFO. التركيب (حقل قائمة داخل المكدس) يكشف عمليتي push وpop فقط.
تهيئة الكائن عند إنشائه بحالة صحيحة، كأن يرفض قيمة سالبة لنصف قطر.
الويب منظومة موارد تُعرّف بعناوين URL، وتُنقل أساسًا عبر HTTP/HTTPS. عند إدخال عنوان، يترجم DNS اسم النطاق إلى عنوان IP؛ ينشئ العميل اتصالًا بالخادم، ويرسل طلب HTTP، ثم يستقبل استجابة تحمل رمز حالة ورؤوسًا ومحتوى.
طرق شائعة: GET لجلب مورد، POST لإرسال بيانات/إنشاء معالجة، PUT للتحديث الكامل في سياقات API، وDELETE للحذف. رموز الحالة تقسم إلى فئات: 2xx نجاح، 3xx إعادة توجيه، 4xx خطأ من جهة العميل، 5xx خطأ من جهة الخادم.
HTTPS هو HTTP فوق قناة مؤمنة بـ TLS، ويوفر تشفيرًا وسلامة للبيانات ومصادقة للخادم عبر الشهادات الرقمية.
HTML يصف البنية الدلالية للمحتوى: عناوين، فقرات، روابط، صور، جداول، نماذج. الأفضل استعمال عناصر دلالية مثل header، nav، main، section، article بدل جعل كل شيء div.
<form method="post" action="/login.php">
<label>Email</label>
<input type="email" name="email" required>
<button type="submit">Connexion</button>
</form>
CSS تفصل العرض عن المحتوى. كل عنصر ينظر إليه ضمن نموذج الصندوق: content → padding → border → margin. مفاهيم أساسية: المحددات، الوراثة، التتالي، النوعية specificity، Flexbox، Grid، والاستجابة لأحجام الشاشات.
JavaScript تتعامل مع DOM، الأحداث، التحقق من المدخلات، والطلبات غير المتزامنة. الـ DOM تمثيل شجري للصفحة؛ تعديل عقده يغير ما يراه المستخدم دون إعادة تحميل كاملة.
const btn = document.querySelector("#btn");
btn.addEventListener("click", () => {
document.querySelector("#msg").textContent = "Bonjour";
});
PHP تنفذ على الخادم؛ لا يصل الكود نفسه إلى المتصفح، بل نتيجة التنفيذ. تعالج بيانات النماذج عبر $_GET و$_POST، وتتعامل مع الجلسات وقواعد البيانات. ينبغي دائمًا التحقق من المدخلات ومعالجتها بأمان.
عند إرسال قيم المستخدم إلى SQL يجب تفادي بناء الاستعلام بالوصل النصي المباشر، لأن ذلك يفتح باب SQL Injection. القاعدة الصحيحة هي استعمال prepared statements. كما يجب ترميز المخرجات عند إدراج بيانات المستخدم في HTML للحد من XSS.
HTTP عديم الحالة في الأصل. ملفات الارتباط cookies تخزن معلومات صغيرة لدى العميل، أما الجلسة session فتحفظ الحالة غالبًا على الخادم ويربطها العميل بمعرف جلسة. من المهم تمييز موقع التخزين ومستوى الحساسية.
عند كتابة عنوان صفحة، يترجم DNS اسم النطاق إلى عنوان IP، ثم يرسل المتصفح طلبًا كهذا:
GET /notes.php?classe=1A HTTP/1.1
Host: exemple.ma
فيرد الخادم بسطر حالة ورؤوس ومحتوى: HTTP/1.1 200 OK ثم صفحة HTML. إن لم يوجد المورد جاء 404؛ وإن وقع عطل في كود الخادم جاء 500؛ وإن نُقل المورد نهائيًا جاء 301 مع عنوان جديد؛ وإن مُنع الوصول جاء 403.
p { color: red; }
.info { color: blue; }
#titre { color: green; }
<p id="titre" class="info">...</p> /* النتيجة: green */
ترتيب القوة: المعرّف #id أقوى من الفئة .class التي هي أقوى من اسم العنصر. وعند تساوي النوعية تفوز القاعدة الأخيرة في الترتيب.
// خطر: وصل نصي مباشر
$sql = "SELECT * FROM users WHERE email = '$email'";
// آمن: استعلام مُحضَّر
$st = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$st->execute([$email]);
// ترميز المخرجات ضد XSS
echo htmlspecialchars($nom, ENT_QUOTES, 'UTF-8');
إذا أدخل مهاجم ' OR '1'='1 في الصيغة الأولى صار الشرط صحيحًا دائمًا. في الصيغة الثانية تُعامل القيمة بيانات لا شيفرة.
| Cookie | Session | |
|---|---|---|
| موقع التخزين | لدى العميل | غالبًا على الخادم، ومعها معرّف لدى العميل |
| الملاءمة | تفضيلات غير حساسة (اللغة) | حالة الدخول وبيانات حساسة |
لأن GET يضع القيم في العنوان فتظهر في السجل والتاريخ؛ POST يضعها في جسم الطلب. وهو ليس بديلًا عن HTTPS الذي يحمي القناة.
404 خطأ من جهة العميل: المورد المطلوب غير موجود. 500 خطأ من جهة الخادم: فشل داخلي أثناء المعالجة.
التشفير وسلامة البيانات ومصادقة الخادم بالشهادة الرقمية عبر TLS.
قاعدة البيانات مجموعة منظمة من البيانات تديرها منظومة SGBD/DBMS. في النمذجة المفاهيمية: الكيان شيء نريد تخزين معلومات عنه، السمة خاصية، العلاقة/الارتباط صلة بين كيانات.
CREATE TABLE Etudiant (
id INT PRIMARY KEY,
nom VARCHAR(80) NOT NULL,
classe_id INT,
moyenne DECIMAL(4,2),
FOREIGN KEY (classe_id) REFERENCES Classe(id)
);
العمليات الأساسية: INSERT للإضافة، SELECT للقراءة، UPDATE للتعديل، DELETE للحذف.
SELECT nom, moyenne
FROM Etudiant
WHERE moyenne >= 10
ORDER BY moyenne DESC;
الترشيح يتم بـ WHERE، الترتيب بـ ORDER BY، التجميع بـ GROUP BY، وترشيح المجموعات بـ HAVING.
الدوال COUNT، SUM، AVG، MIN، MAX تعمل على مجموعات صفوف. قاعدة مهمة: WHERE يرشح الصفوف قبل التجميع، بينما HAVING يرشح المجموعات بعده.
INNER JOIN يعيد الصفوف التي تحقق شرط الربط في الطرفين. LEFT JOIN يحتفظ بكل صفوف الجدول الأيسر حتى لو لم يوجد مطابق في الأيمن، مع قيم NULL عند غياب المطابقة.
SELECT e.nom, c.libelle
FROM Etudiant e
JOIN Classe c ON e.classe_id = c.id;
المعاملة transaction مجموعة عمليات يجب أن تعامل كوحدة. المبادئ الشهيرة ACID: الذرية، الاتساق، العزل، الاستمرارية. رغم أنها ليست منصوصًا عليها حرفيًا في التوصيف، فهي توضح لماذا لا تُفهم قواعد البيانات كمجرد جداول وSQL بل كنظام يحمي الاتساق.
لنفرض الجدولين: Classe: (1, '1A')، (2, '1B'). وEtudiant (id, nom, classe_id, moyenne): (1, Ali, 1, 12.00)، (2, Sara, 1, 9.00)، (3, Omar, 2, 15.00)، (4, Lina, NULL, 11.00).
| الاستعلام | النتيجة |
|---|---|
... Etudiant e JOIN Classe c ON e.classe_id = c.id | 3 صفوف (Ali وSara وOmar)؛ تُستبعد Lina لأن لا مطابق لها |
... Etudiant e LEFT JOIN Classe c ON e.classe_id = c.id | 4 صفوف؛ Lina تظهر مع NULL في العمود libelle |
SELECT COUNT(*) FROM Etudiant | 4 |
SELECT COUNT(classe_id) FROM Etudiant | 3 (القيم NULL لا تُحتسب) |
-- (أ) ترشيح الصفوف قبل التجميع
SELECT c.libelle, AVG(e.moyenne)
FROM Etudiant e JOIN Classe c ON e.classe_id = c.id
WHERE e.moyenne >= 10
GROUP BY c.libelle;
-- (ب) ترشيح المجموعات بعد التجميع
SELECT c.libelle, AVG(e.moyenne)
FROM Etudiant e JOIN Classe c ON e.classe_id = c.id
GROUP BY c.libelle
HAVING AVG(e.moyenne) >= 11;
الاستعلام (أ): تُحذف Sara (9) أولًا فيصير متوسط 1A هو 12.00 ومتوسط 1B هو 15.00. الاستعلام (ب): متوسط 1A هو (12 + 9) / 2 = 10.50 فلا يستوفي الشرط، فلا يظهر إلا 1B بـ15.00. الاستعلامان يختلفان لأن ترتيب التنفيذ مختلف.
WHERE classe_id = NULL: لا تُعيد شيئًا. الصحيح IS NULL، فالمقارنة بـ NULL لا تكون صحيحة أبدًا.DELETE FROM Etudiant; دون WHERE تحذف كل الصفوف.WHERE؛ مكانها HAVING.SELECT مع GROUP BY.classe_id لا توجد في Classe: يرفضها المفتاح الأجنبي، وهذا مقصود لحماية التكامل المرجعي.SELECT nom FROM Etudiant WHERE classe_id IS NULL; ويعيد Lina.
حين نريد الاحتفاظ بصفوف الجدول الأيسر ولو غاب المطابق، كعرض كل التلاميذ بما فيهم من لا قسم لهم.
يعرّف كل صف تعريفًا فريدًا ولا يقبل التكرار ولا NULL، ويُستعمل هدفًا للمفاتيح الأجنبية.
نظام المعلومات ليس البرنامج وحده. إنه تنظيم يضم أشخاصًا، إجراءات، بيانات، موارد مادية وبرمجية، وقواعد تشغيل؛ هدفه جمع المعلومات ومعالجتها وتخزينها وتوزيعها لدعم نشاط المؤسسة وقراراتها.
مخطط حالات الاستخدام يجيب: من يتفاعل مع النظام؟ وما الخدمة التي يطلبها؟ العناصر: الممثل Actor، حالة الاستخدام، وحدود النظام، وعلاقات مثل include وextend والتعميم. لا يصف المخطط تفاصيل الخوارزمية الداخلية.
يمثل البنية الساكنة: أصناف، خصائص، عمليات، وعلاقات.
التعددية multiplicity مثل 1، 0..1، *، 1..* تحدد عدد الكائنات المرتبطة.
يصف التفاعل الزمني بين كائنات/فاعلين عبر رسائل مرتبة من الأعلى إلى الأسفل. يفيد في تفصيل سيناريو حالة استخدام: من يبدأ الطلب، من يستدعي من، ومتى يرجع الجواب. هو مخطط ديناميكي، بخلاف مخطط الأصناف ذي الطبيعة البنيوية.
أي مشروع معلوماتي يمر عادة عبر: تحديد الحاجة → التحليل → التصميم → الإنجاز → الاختبار → النشر → الصيانة. في المقاربة الشلالية تكون المراحل أكثر تسلسلاً؛ في المقاربات الرشيقة تُقسم القيمة إلى دورات قصيرة مع تغذية راجعة مستمرة.
في مشروع برمجي، التوثيق، التحكم في النسخ، الاختبارات، وقابلية الصيانة ليست ملحقات؛ بل عناصر في جودة المنتج وسلامة التطوير.
حالات الاستخدام. الممثلون: الأستاذ، الحارس العام، ولي الأمر. حالات الاستخدام: «تسجيل الغياب» (الأستاذ)، «استشارة الغيابات» (الحارس وولي الأمر)، «إرسال إشعار» (يُستدعى من «تسجيل الغياب»)، «توثيق غياب بشهادة» (الحارس).
مخطط الأصناف.
| العلاقة | النوع | التعددية | التبرير |
|---|---|---|---|
| قسم — تلميذ | ارتباط | قسم 1 ↔ 1..* تلميذ | التلميذ ينتمي إلى قسم واحد في السنة الدراسية |
| تلميذ — غياب | تركيب | 1 ↔ 0..* | سجل الغياب لا معنى له دون التلميذ |
| تلميذ — مادة | ارتباط *..* بصنف ارتباط | * ↔ * | العلاقة تحمل بيانات (النقطة)، فتصير صنفًا مستقلًا |
مخطط التسلسل لحالة «تسجيل الغياب»: الأستاذ ← واجهة التسجيل: choisirClasse() ← النظام: chargerEleves() ← الأستاذ: marquerAbsent(élève) ← النظام: enregistrer() ← قاعدة البيانات ← رسالة تأكيد.
مخطط التسلسل، لأنه يصف التفاعل الزمني، بينما مخطط الأصناف يصف البنية.
في التجميع يعيش الجزء مستقلًا عن الكل (أستاذ وقسم الأساتذة)، أما في التركيب فيزول الجزء بزوال الكل (فاتورة وبنودها).
لأن الجودة تتطلب تحليلًا يسبقه واختبارًا ونشرًا وصيانة بعده، وإهمال أي مرحلة ينعكس على الكلفة والأجل.
نظام التشغيل طبقة وسيطة تدير الموارد وتوفر خدمات للبرامج. وظائفه المحورية في التوصيف: إدارة العمليات، الذاكرة، الملفات، والإدخال/الإخراج.
البرنامج ملف ساكن، أما العملية فهي برنامج قيد التنفيذ مع حالة وذاكرة وسياق. حالات مبسطة: جديد، جاهز، قيد التنفيذ، انتظار/محجوب، منتهٍ. يقرر المجدول أي عملية تستعمل المعالج.
عندما تشترك عمليات/خيوط في مورد يمكن أن تحدث race condition. تستعمل آليات مثل mutex وsemaphore لتنظيم الدخول إلى المقاطع الحرجة.
نظام التشغيل يعطي كل عملية فضاءً منطقيًا ويحميها من العمليات الأخرى. في paging تقسم الذاكرة إلى صفحات/إطارات ثابتة الحجم، وتترجم العناوين الافتراضية إلى فيزيائية عبر جداول الصفحات. الذاكرة الافتراضية تسمح باستعمال القرص كامتداد أبطأ للذاكرة الرئيسية.
Page fault يحدث عندما تحتاج العملية إلى صفحة غير موجودة حاليًا في RAM؛ عندها يجب جلبها من التخزين.
يوفر أسماء وملفات ومجلدات وأذونات وبيانات وصفية. المسار قد يكون مطلقًا أو نسبيًا. الأذونات في Unix/Linux تقرأ غالبًا كثلاثيات: قراءة r، كتابة w، تنفيذ x للمستخدم والمجموعة والآخرين.
الأجهزة الطرفية أبطأ بكثير من CPU؛ لذلك يستعمل النظام المقاطعات، التخزين المؤقت، وبرامج القيادة drivers. المقاطعة تسمح للجهاز بإشعار المعالج بحدث بدل أن يبقى المعالج يفحصه باستمرار.
| الأمر | الغرض |
|---|---|
pwd | إظهار المجلد الحالي |
ls | عرض المحتويات |
cd | تغيير المجلد |
mkdir / rmdir | إنشاء/حذف مجلد فارغ |
cp / mv / rm | نسخ/نقل-إعادة تسمية/حذف |
cat / less | عرض محتوى ملف |
grep | البحث عن نمط نصي |
chmod | تعديل الأذونات |
ps / top | معاينة العمليات |
kill | إرسال إشارة إلى عملية |
| الأمر | الغرض |
|---|---|
dir | عرض ملفات ومجلدات |
cd | تغيير المسار |
mkdir / rmdir | إنشاء/حذف مجلد |
copy / move / del | نسخ/نقل/حذف |
type | عرض ملف نصي |
cls | مسح الشاشة |
ipconfig | عرض إعدادات IP |
ping | اختبار الوصول عبر ICMP |
tasklist / taskkill | عرض العمليات/إنهاؤها |
ثلاث عمليات تصل كلها عند اللحظة 0، بأزمنة تنفيذ: P1 = 5 وP2 = 3 وP3 = 1.
| الخوارزمية | ترتيب التنفيذ | أزمنة الانتظار | المتوسط |
|---|---|---|---|
| FCFS | P1، P2، P3 | 0، 5، 8 | 13/3 ≈ 4.33 |
| SJF | P3، P2، P1 | 0، 1، 4 | 5/3 ≈ 1.67 |
| Round Robin (شريحة 2) | P1، P2، P3، P1، P2، P1 | P1: 4، P2: 5، P3: 4 | 13/3 ≈ 4.33 |
في Round Robin: ينتهي P3 عند 5، وP2 عند 8، وP1 عند 9. وزمن الانتظار = زمن الانتهاء − زمن التنفيذ (لأن الوصول عند 0). SJF يعطي أقل متوسط انتظار هنا، لكن RR يضمن لكل عملية دورًا سريعًا، وهذا مهم في الأنظمة التفاعلية.
خيطان ينفذان compteur++ والقيمة الأولى 0. العملية في الحقيقة ثلاث خطوات: قراءة، زيادة، كتابة. إذا قرأ الخيطان القيمة 0 قبل أن يكتب أحدهما، كتب كل منهما 1، فتكون النتيجة 1 بدل 2. الحل: حماية المقطع الحرج بـ mutex.
بحجم صفحة 4096 بايت، العنوان الافتراضي 10000 يقع في الصفحة ⌊10000 / 4096⌋ = 2 بإزاحة 10000 − 2 × 4096 = 1808. يبحث النظام في جدول الصفحات عن الإطار المقابل للصفحة 2 ويضيف الإزاحة.
chmod 754 rapport.txt: الرقم 7 للمالك = rwx، و5 للمجموعة = r-x، و4 للآخرين = r--. وعكسيًا فإن -rw-r--r-- تعني 644.
rm يختلف عن إرساله إلى سلة المحذوفات؛ لا استرجاع تلقائي في سطر الأوامر.قد يجوّع العمليات الطويلة إن توالى وصول عمليات قصيرة، ويتطلب أيضًا تقدير زمن التنفيذ مسبقًا.
chmod 600؟قراءة وكتابة للمالك فقط (rw-------).
تُقاطَع العملية، ويجلب النظام الصفحة المطلوبة من التخزين إلى إطار في RAM (وقد يُخلي إطارًا آخر)، ثم تُستأنف العملية.
التصنيف يتعلق أساسًا بالامتداد ونموذج الربط والإدارة، لا بنوع بروتوكول واحد بعينه.
| الطبقة | الوظيفة المركزية | أمثلة/مفاهيم |
|---|---|---|
| 7 Application | خدمات التطبيقات | HTTP, DNS, SMTP |
| 6 Presentation | التمثيل/الترميز/التشفير | صيَغ وتمثيلات |
| 5 Session | إدارة الجلسات | تنسيق الحوار |
| 4 Transport | النقل طرف-لطرف | TCP, UDP, ports |
| 3 Network | العنونة والتوجيه | IP, routers |
| 2 Data Link | الإطارات والوصول للوسط | Ethernet, MAC |
| 1 Physical | الإشارات والوسط | كابل/موجة/موصل |
يُبسط عادة إلى أربع طبقات: Application، Transport، Internet، Network Access. OSI نموذج مرجعي سباعي، بينما TCP/IP عائلة بروتوكولات عملية بني عليها الإنترنت. المهم ليس حفظ المطابقة حرفيًا، بل معرفة وظيفة كل مستوى ومكان البروتوكولات.
TCP اتصالي، موثوق، مرتب، ويستعمل آليات تأكيد وإعادة إرسال وتحكم في التدفق. UDP غير اتصالي وأخف، ولا يضمن التسليم أو الترتيب، ويفيد في حالات تفضل السرعة أو تتحمل الفقد.
IPv4 عنوان 32 بت يكتب أربع مجموعات عشرية. القناع subnet mask يحدد أي البتات للشبكة وأيها للمضيف. الترميز /24 يعني أن 24 بت للشبكة و8 بت للمضيف.
في شبكة 192.168.1.0/24: عنوان الشبكة هو 192.168.1.0، وعنوان البث عادة 192.168.1.255، ومجال المضيفين التقليدي من .1 إلى .254.
إن أخذ بتات من جزء المضيف يزيد عدد الشبكات الفرعية ويقلل عدد المضيفين في كل شبكة. القدرة على تحويل القناع بين الصيغة CIDR والثنائية والعشرية مهمة لفهم مسائل العنونة والتوجيه.
الموجه يختار القفزة التالية وفق جدول التوجيه. القاعدة الأساسية: البحث عن أفضل مسار مطابق، وعند تساوي الأنماط يفضل أطول بادئة مطابقة longest prefix match. يمكن أن تكون المسارات ثابتة أو تتعلم عبر بروتوكولات توجيه ديناميكية.
البوابة الافتراضية تستخدم عندما لا يملك المضيف مسارًا محليًا أدق للوجهة.
المطلوب تقسيم 192.168.1.0/24 إلى أربع شبكات فرعية. نقتطع بتّين من جزء المضيف (22 = 4) فتصير البادئة /26 والقناع 255.255.255.192. بقي 6 بتات للمضيفين: 26 − 2 = 62 مضيفًا في كل شبكة.
| الشبكة | المضيفون | عنوان البث |
|---|---|---|
| 192.168.1.0/26 | .1 – .62 | .63 |
| 192.168.1.64/26 | .65 – .126 | .127 |
| 192.168.1.128/26 | .129 – .190 | .191 |
| 192.168.1.192/26 | .193 – .254 | .255 |
المضيف 192.168.1.100 ينتمي إلى الشبكة الثانية (64–127). والمضيفان 192.168.1.70 و192.168.1.130 في شبكتين مختلفتين، فلا يتخاطبان إلا عبر موجّه.
| الوجهة | القاعدة | القفزة التالية |
|---|---|---|
| 10.0.0.0/8 | — | R1 |
| 10.1.0.0/16 | — | R2 |
| 0.0.0.0/0 (افتراضية) | — | R3 |
قبل نقل البيانات يتبادل الطرفان: SYN من العميل، ثم SYN-ACK من الخادم، ثم ACK من العميل. بذلك يتفقان على أرقام التسلسل، وهذا ما يجعل TCP اتصاليًا. أما UDP فيرسل مباشرة دون مصافحة.
بقي 5 بتات للمضيف: 25 − 2 = 30.
إعادة إرسال حزمة قديمة لا تفيد في البث المباشر؛ يُفضَّل تحمل فقد قليل على تأخر يسببه TCP.
هي الموجّه الذي يرسل إليه المضيف كل حزمة وجهتها خارج شبكته المحلية.
يتكون النظام ذي المعالج الدقيق من: المعالج، الذاكرة المركزية، وحدات الإدخال/الإخراج، والحافلات. تتبادل هذه الوحدات البيانات والعناوين وإشارات التحكم.
المعالج يضم عادة:
دورة التعليمة المبسطة: Fetch → Decode → Execute. يُجلب الأمر من الذاكرة، يفك ترميزه، ثم تنفذ العملية وتُحدّث الحالة.
سجل عداد البرنامج PC يشير إلى التعليمة التالية؛ سجل التعليمة IR يحمل التعليمة الجاري فكها؛ وتوجد سجلات عامة ومؤشرات ومكدس بحسب المعمارية.
كلما اقتربت الذاكرة من المعالج زادت سرعتها عادة وقل حجمها: Registers → Cache → RAM → Storage. الذاكرة المخبئية تستغل مبدأي المحلية الزمنية والمكانية لتقليل زمن الوصول المتوسط.
اتساع حافلة العنوان يرتبط بعدد المواقع الممكن عنونتها؛ اتساع حافلة البيانات يؤثر في كمية البيانات المنقولة في عملية واحدة.
قد يتعامل المعالج مع جهاز عبر منافذ أو عناوين ذاكرية مخصصة. المقاطعة تجعل الجهاز يطلب خدمة من المعالج عند حدث. أما DMA فيسمح لبعض الأجهزة بنقل كتل بيانات مع تدخل أقل من CPU.
حافلة عنوان من n خطًا تتيح 2n عنوانًا مختلفًا. إذا كان لكل عنوان بايت واحد:
| عرض حافلة العنوان | عدد العناوين | السعة |
|---|---|---|
| 16 بتًا | 65 536 | 64 Kio |
| 20 بتًا | 1 048 576 | 1 Mio |
| 32 بتًا | 4 294 967 296 | 4 Gio |
لنفرض أن PC = 100 وأن التعليمة المخزنة في العنوان 100 هي «اجمع محتوى الموضع 200 إلى المراكم».
بنموذج مبسّط: T = h × Tc + (1 − h) × Tm، حيث h نسبة الإصابة. إذا كان Tc = 2 ns وTm = 50 ns وh = 0.9 فإن T = 1.8 + 5 = 6.8 ns، أي أقل بكثير من 50 ns. ورفع h إلى 0.99 يعطي 1.98 + 0.5 = 2.48 ns.
| الاستقصاء Polling | المقاطعة Interrupt | |
|---|---|---|
| المبدأ | المعالج يسأل الجهاز دوريًا | الجهاز ينبه المعالج عند الحدث |
| الكلفة | وقت معالج ضائع في الانتظار | تبديل سياق عند كل مقاطعة |
| الملاءمة | أجهزة سريعة وأحداث متواترة | أحداث نادرة وغير متوقعة (لوحة المفاتيح) |
212 = 4096 بايت، أي 4 Kio.
تمكين جهاز من نقل كتلة بيانات مع الذاكرة دون أن يمرّ كل بايت عبر المعالج، فيتفرغ هذا لعمل آخر.
بفضل المحلية الزمنية (ما استُعمل يُعاد استعماله قريبًا) والمكانية (ما جاور ما استُعمل يُستعمل غالبًا).
المستوى المتقدم لا يعني تغيير الخط والحجم فقط، بل بناء وثيقة منظمة قابلة للصيانة. مفاهيم رئيسية: الأنماط styles، العناوين الهرمية، المقاطع sections، الرؤوس والتذييلات، ترقيم الصفحات، الجداول، الصور، الإحالات، الفهرس الآلي، والتعليقات/تعقب التغييرات.
ميزة الأنماط أنها تفصل المعنى البنيوي عن التنسيق اليدوي؛ فإذا غُيّر نمط عنوان تتغير جميع العناوين المرتبطة به.
يربط قالب وثيقة بمصدر بيانات لتوليد نسخ شخصية عديدة: شهادات، استدعاءات، مراسلات. المكونات: المستند الرئيسي، مصدر البيانات، حقول الدمج، ثم المعاينة/التوليد.
الخلية قد تحمل قيمة أو صيغة. المراجع: نسبية A1، مطلقة $A$1، أو مختلطة. عند نسخ الصيغة تتغير المراجع النسبية وتثبت المطلقة.
SUM، AVERAGE، MIN، MAX، COUNT، IF، وعمليات البحث مثل VLOOKUP/XLOOKUP بحسب البرنامج. كما تعد الجداول المحورية Pivot Tables أداة تلخيص وتحليل دينامي للبيانات.
التحقق من صحة البيانات، التنسيق الشرطي، الفرز والترشيح، الرسوم، وحماية الخلايا تدخل في الاستعمال المتقدم.
المستوى المتقدم يشمل: القالب والنسق، الشريحة الرئيسية Slide Master، التخطيط المتسق، إدراج الرسوم والوسائط، ضبط الانتقالات والحركات دون إفراط، والتمييز بين محتوى الشريحة وملاحظات المقدم.
عند استعمال برنامج مكتبي لقواعد البيانات، تبقى المفاهيم نفسها: جداول، حقول، أنواع، مفاتيح، علاقات، استعلامات، نماذج وتقارير. النموذج واجهة إدخال/عرض؛ التقرير مخرج منسق؛ والاستعلام أداة لاستخراج/تحويل البيانات.
الخدمات تشمل الويب، البريد الإلكتروني، نقل الملفات، التخزين السحابي، المؤتمرات، البحث، والتعاون. ينبغي تمييز الإنترنت كبنية شبكية عالمية عن الويب كخدمة تعمل فوقها.
SMTP يستعمل لإرسال البريد بين العملاء/الخوادم أو بين الخوادم. IMAP يتيح مزامنة الصندوق مع الخادم، بينما POP3 يميل إلى نموذج تنزيل الرسائل. الويب ميل ليس بروتوكولًا بريديًا مستقلًا؛ هو واجهة ويب للوصول إلى خدمة البريد.
في الخلية C2 الصيغة =B2*$F$1، حيث F1 تحمل نسبة ثابتة. عند سحب الصيغة إلى C3 تصير =B3*$F$1: المرجع النسبي B2 انزاح بسطر، والمطلق $F$1 ثبت. المرجع المختلط $A1 يثبت العمود ويحرك السطر، وA$1 بالعكس.
شرط وبحث: =IF(B2>=10;"ناجح";"راسب") (يختلف الفاصل بين ; و, بحسب إعدادات البرنامج). و=VLOOKUP(A2;Table;2;FALSE) بحث عن تطابق تام؛ يغفل كثيرون المعامل الأخير فتُعاد نتيجة تقريبية خاطئة.
nom وclasse وdate.«nom» و«classe» و«date».| البروتوكول | دوره |
|---|---|
| SMTP | إرسال الرسائل من العميل إلى الخادم ثم بين الخوادم |
| IMAP | قراءة الرسائل مع إبقائها على الخادم ومزامنة الأجهزة |
| POP3 | تنزيل الرسائل إلى الجهاز (وغالبًا حذفها من الخادم) |
لأن تعديل نمط واحد يعدّل جميع العناصر المرتبطة به، ولأن العناوين بالنمط تغذي الفهرس الآلي.
$A$1 عند النسخ؟لا يتغير؛ هو مرجع مطلق على العمود والسطر معًا.
IMAP، لأنه يبقي الرسائل على الخادم ويزامن حالتها بين الأجهزة.
التوصيف يحدد خمس أفكار مترابطة: الاكتساب → المونتاج → التحرير الرقمي → الترميز → النشر. يجب فهم كل مرحلة لا حفظ أسماء برامج.
الصورة النقطية شبكة بكسلات. جودتها تتأثر بالأبعاد البكسلية، عمق اللون، جودة المستشعر/المسح، والضغط. الدقة الطباعية PPI/DPI تختلف عن مجرد عدد البكسلات، ويجب عدم الخلط بينها.
RGB نموذج ضوئي إضافي للشاشات؛ CMYK نموذج طرحي للطباعة. تغيير فضاء اللون قد يغير المجال اللوني الممكن تمثيله، لذلك يجب اختيار النموذج وفق وسيط النشر.
تحويل الصوت إلى رقمي يعتمد على معدل أخذ العينات وعمق البت وعدد القنوات. معدل عينات أعلى يسمح بتمثيل ترددات أعلى ضمن حدود نظرية أخذ العينات، وعمق بت أكبر يزيد دقة مستويات السعة.
WAV قد يخزن صوتًا غير مضغوط أو PCM؛ MP3/AAC أمثلة على ترميز ضياعي لتقليل الحجم.
الفيديو سلسلة إطارات مع صوت غالبًا. خصائصه: دقة الإطار، معدل الإطارات FPS، معدل البت bitrate، الترميز، والحاوية. معدل بت أعلى لا يعني جودة أعلى دائمًا إذا كانت الخوارزمية أو المصدر مختلفين، لكنه عادة يرتبط بحجم أكبر ضمن نفس شروط الترميز.
Codec يحدد كيف تضغط/تفك بيانات الفيديو أو الصوت مثل H.264/H.265. Container يجمع المسارات والبيانات الوصفية مثل MP4/MKV. ملف MP4 ليس "خوارزمية ضغط" في حد ذاته؛ يمكن أن يحمل مسارات مرمزة بترميزات مختلفة.
التحرير غير الخطي يعتمد خطًا زمنيًا، مسارات، قصًا، انتقالات، مؤثرات، مزج صوت، ومعالجة لون. المبدأ الجيد: احتفظ بنسخة أصلية، اعمل على مشروع قابل للتعديل، ثم صدّر نسخة نهائية وفق وسيط النشر.
عند التصدير نختار: الدقة، معدل الإطارات، codec، معدل البت، إعدادات الصوت والحاوية. النشر للويب يوازن بين الجودة والحجم وسرعة التحميل والتوافق. كما يجب مراعاة حقوق الاستخدام والخصوصية وإمكانية الوصول.
| الحالة | الحساب | النتيجة |
|---|---|---|
| صورة 1920×1080 بـ24 بتًا للبكسل، غير مضغوطة | 1920 × 1080 × 3 بايت | 6 220 800 بايت ≈ 5.9 Mio |
| صوت بجودة قرص مدمج: 44 100 Hz، 16 بتًا، قناتان | 44 100 × 16 × 2 | 1 411 200 بت/ث ≈ 1411 kbit/s |
| دقيقة واحدة من الصوت نفسه | 1 411 200 × 60 / 8 | 10 584 000 بايت ≈ 10.1 Mio |
| دقيقة فيديو بمعدل بت 5 Mbit/s | 5 × 60 / 8 | نحو 37.5 Mo |
الفرق بين الحجم الخام والحجم المضغوط هو سبب وجود الترميز. وأخذ العينات: لتمثيل ترددات حتى 20 kHz يلزم معدل يفوق ضعفها، أي أكثر من 40 kHz، ومن هنا اختير 44.1 kHz للأقراص المدمجة.
| الحاجة | الاختيار | السبب |
|---|---|---|
| صورة فوتوغرافية للويب | JPEG | ضغط فقدي بحجم صغير مقبول بصريًا |
| شعار بخلفية شفافة | PNG أو SVG | شفافية وحدود حادة بلا فقد |
| أيقونة تُكبَّر لأحجام عدة | SVG | متجهية لا تتبكسل |
| تسجيل صوتي للأرشفة | WAV | غير مضغوط |
| موسيقى للنشر | MP3 أو AAC | ضياعي بحجم أصغر |
الترميز خوارزمية ضغط وفك للصوت أو الفيديو، والحاوية ملف يجمع المسارات والبيانات الوصفية. الحاوية الواحدة تحمل ترميزات مختلفة.
لأن الطباعة نموذج طرحي بالأحبار، فتُراجع الألوان في فضائها الفعلي بدل مفاجأة اختلافها عن الشاشة.
تقل دقة مستويات السعة (256 مستوى بدل 65 536)، فيظهر ضجيج تكميم أوضح.
أقوى طريقة لتثبيت هذه المادة ليست دراسة الفصول كجزر. لنأخذ مثال تطبيق ويب لإدارة نتائج المتعلمين:
عند أي مفهوم، اسأل أين يوجد في السلسلة بيانات → خوارزمية → برنامج → نظام → شبكة → خدمة/منتج. هذا الربط يقلل الحفظ المتناثر، ويزيد القدرة على تمييز إجابات QCM المتقاربة.
لنتتبع مسارا معاكسا: طلب مستخدم صفحة نتائجه عبر المتصفح. الشبكة (DNS ثم TCP) توجه الطلب إلى الخادم، الذي ينفذ نظام تشغيله عملية استقبال الطلب وتشغيل برنامج المعالجة. البرنامج (PHP مثلا) يستدعي قاعدة البيانات باستعلام يعتمد على بنية علائقية صُمِّمت مسبقا بمخطط UML. الخوارزمية داخل البرنامج تفرز النتائج وتحسب الترتيب، وبنية البيانات (مصفوفة أو قائمة) تحملها مؤقتا قبل تحويلها إلى HTML يعرضه المتصفح. هذا المسار المعاكس — من طلب المستخدم إلى الأجهزة الفعلية التي تنفذه — يوضح أن كل مجال من المجالات العشرة نقطة عبور إلزامية، لا اختيارا منفصلا.
كثير من الأسئلة تبدو للوهلة الأولى متعلقة بمجال واحد، بينما هي في الحقيقة تختبر فهم نقطة التقاء بين مجالين. سؤال عن «لماذا تبطئ صفحة الويب رغم اتصال سريع» قد يكون جوابه في قاعدة البيانات (استعلام غير محسَّن) لا في الشبكة. التدرب على تتبع السلسلة الكاملة، لا حفظ كل مجال بمعزل، هو ما يميز إجابة دقيقة عن إجابة تخمينية.
هذه أسئلة تقع عند التقاء مجالين، وهو ما تتعمد أسئلة الاختيار المتعدد أحيانًا. اكتب جوابك أولًا ثم افتح التعليل.
يبدأ الفحص من زمن استجابة الخادم قبل الشبكة: استعلام SQL دون فهرس يقرأ الجدول كله، أو حلقة تربيعية في الشيفرة، أو صور ضخمة غير مضغوطة (مجال الوسائط). يمكن قياس زمن الاستجابة بالنظر في الطلب ورمز حالته وزمنه.
لأن PHP ينفذ على الخادم، ولا يصل المتصفح إلا ناتج التنفيذ (HTML). أما JavaScript فتنفذ في المتصفح.
حالة سباق في نظام التشغيل أو التطبيق، ويعالجها على مستوى قاعدة البيانات مفهوم المعاملة (العزل) وقيود التفرد، وعلى مستوى النظام أقفال أو mutex.
أسباب محتملة: تجاوز حدود مصفوفة، أو تسرب ذاكرة بعدم استدعاء free، أو تعقيد تربيعي لا يظهر في المدخلات الصغيرة.
مخطط الأصناف والتسلسل: نظم المعلومات وUML. جدول التوجيه: الشبكات (طبقة الشبكة). جدول الصفحات: نظم التشغيل (الذاكرة الافتراضية).
| العربية | الفرنسية | ملاحظة سريعة |
|---|---|---|
| الخوارزمية | Algorithme | إجراء منتهٍ لمعالجة مشكلة |
| بنية المعطيات | Structure de données | تنظيم البيانات والعمليات عليها |
| العودية | Récursivité | استدعاء الدالة لنفسها مع حالة توقف |
| التعقيد | Complexité | نمو كلفة الخوارزمية |
| مصفوفة | Tableau | بنية متجانسة مفهرسة |
| سلسلة محارف | Chaîne de caractères | متتالية محارف |
| سجل | Enregistrement | حقول مختلفة تحت كيان واحد |
| مكدس | Pile | LIFO |
| طابور | File | FIFO — لا تخلطه مع fichier |
| قائمة مرتبطة | Liste chaînée | عقد ومؤشرات |
| شجرة ثنائية | Arbre binaire | ابنان على الأكثر لكل عقدة |
| رسم بياني | Graphe | رؤوس وحواف |
| برمجة مهيكلة | Programmation structurée | تفكيك منطقي وبنيات تحكم واضحة |
| برمجة كائنية | Programmation orientée objet | Classes/objets |
| قاعدة بيانات | Base de données | بيانات منظمة تحت إدارة SGBD |
| مفتاح أساسي | Clé primaire | معرّف فريد للصف |
| مفتاح أجنبي | Clé étrangère | رابط نحو مفتاح في جدول آخر |
| ربط | Jointure | جمع صفوف من جداول مرتبطة |
| نظام معلومات | Système d'information | أشخاص + إجراءات + بيانات + تقنيات |
| حالة استخدام | Cas d'utilisation | خدمة للنظام من منظور فاعل |
| مخطط أصناف | Diagramme de classes | البنية الساكنة |
| مخطط تسلسل | Diagramme de séquence | التفاعل عبر الزمن |
| عملية | Processus | برنامج قيد التنفيذ |
| ذاكرة افتراضية | Mémoire virtuelle | فضاء منطقي مع paging غالبًا |
| نظام ملفات | Système de fichiers | تنظيم الملفات والمجلدات والبيانات الوصفية |
| عنونة IP | Adressage IP | تعريف واجهات الشبكة منطقيًا |
| توجيه | Routage | اختيار مسار الرزم |
| معالج | Processeur | CPU |
| ذاكرة مركزية | Mémoire centrale | RAM أساسًا |
| حافلة | Bus | قناة بيانات/عناوين/تحكم |
| معالجة نصوص | Traitement de texte | Texteur |
| جدول حسابي | Tableur | Spreadsheet |
| عرض بمساعدة الحاسوب | Présentation Assistée par Ordinateur | PréAO |
| وسائط متعددة | Multimédia | صوت/صورة/فيديو/نص… |
| ترميز | Encodage | تحويل وفق صيغة/codec |
Ministère de l'Éducation Nationale — Direction des Curricula. Programme et Instructions Officielles pour l'Enseignement de l'Informatique aux Troncs Communs, septembre 2005, 34 p.
المركز الوطني للامتحانات المدرسية وتقييم التعلمات. توصيف المجالات المضمونة للاختبارات الكتابية لمباريات ولوج سلك تأهيل أطر التدريس بالمراكز الجهوية لمهن التربية والتكوين — تخصص المعلوميات — دورة نونبر 2025.
رائز قصير من 10 أسئلة، ينتقل من المفاهيم الأساسية إلى التطبيق. مباشرة بعد الإجابة يظهر التصحيح والتفسير، ويمكنك الاعتراض إذا رأيت أن الإجابة المقترحة خاطئة.
اختبارات من المباراة التي تنتمي إليها هذه الوحدة.
محاكاة غير رسمية من إعداد EduConcours، صُممت لقياس دقة القراءة وعمق التحليل والقدرة على حل وضعيات مركبة، لا مجرد استرجاع التعاريف. يتكون الاختبا…
ابدأ الاختبار ←اختبار مشترك في علوم التربية لفائدة مترشحي التعليم الثانوي التأهيلي والإعدادي، بجميع التخصصات — دورة أبريل 2024.
ابدأ الاختبار ←اختبار علوم التربية في مباراة توظيف أساتذة التعليم الثانوي (الأطر النظامية للأكاديميات) — دورة نونبر 2022، من إعداد المركز الوطني للتقويم والامت…
ابدأ الاختبار ←