شرح مادة عال 361 (CSC 361) الذكاء الاصطناعي - جامعة الملك سعود

فريق زدني فريق زدني 12 أبريل 2026
12 دقيقة للقراءة
شرح مادة عال 361 (CSC 361) الذكاء الاصطناعي - جامعة الملك سعود

مادة عال 361 (المعروفة ايضا بـ CSC 361)، الذكاء الاصطناعي (Artificial Intelligence) في كلية علوم الحاسب والمعلومات بجامعة الملك سعود، هي المادة اللي تحدد لك هل بكرة شغلك يكون بناء انظمة تقليدية، او بناء انظمة تتعلم وتفكر. قبل سنتين كان فيه طلاب ياخذون المادة لانها متطلب وخلاص. اليوم الكل صار يحاول يفتحها مبكرا في خطته بعد ما اكتشف ان كل وظيفة تقنية مفتوحة في السعودية صار فيها سطر يقول “خبرة في AI او ML تعتبر ميزة”.

عال 361 ليست تعلم الة كاملة، وليست شبكات عصبية عميقة. هي اساس الذكاء الاصطناعي الكلاسيكي: كيف نمذج مشكلة كبحث، كيف نمثل المعرفة منطقيا، وكيف نخلي وكيل برمجي ياخذ قرارات. هذا الاساس هو اللي يفرق بين شخص يستخدم ChatGPT كمستخدم، وبين شخص يفهم ايش يصير داخل النموذج.

📋 ملخص سريع

  • رمز المادة: عال 361 (CSC 361)، الذكاء الاصطناعي (Artificial Intelligence)
  • الساعات المعتمدة: 3 ساعات
  • المتطلب السابق: عال 311 تصميم وتحليل الخوارزميات (بعض الشعب تشترط ايضا عال 212)
  • الكتاب المرجعي: Artificial Intelligence: A Modern Approach لـ Stuart Russell و Peter Norvig (الطبعة الرابعة)
  • لغة التطبيق: Python في الغالب
  • المواضيع الرئيسية: الوكلاء الاذكياء، البحث غير المطلع، البحث المطلع و A*، البحث التنافسي و Minimax، مسائل اشباع القيود (CSP)، المنطق وتمثيل المعرفة، مقدمة في تعلم الالة
  • تقود الى: عال 462 تعلم الالة، الرؤية الحاسوبية، معالجة اللغة الطبيعية، مشروع التخرج

ليش عال 361 من اهم المواد في الخطة

اذا فتحت اي اعلان وظيفي في سدايا او NCAI او شركات مثل لوسيد و توابع ارامكو الرقمية، راح تشوف نمط يتكرر: اي وظيفة تذكر AI تطلب فهم اساسيات. عال 361 تغطي بالضبط هذي الاساسيات. خمس اسباب جوهرية ليش المادة تستاهل اهتمامك الكامل:

  • سوق العمل السعودي تغير: سدايا وحدها وظفت الاف المختصين خلال خمس سنوات. مقابلات هذي الشركات ما تطلب منك تبني GPT جديد، تطلب تشرح BFS و A* و Minimax. عال 361 هي اللي تدربك على هذا
  • تجهيزك لـ ML المتقدم: عال 462 تعلم الالة مادة كثيفة رياضيا. لو دخلتها بدون فهم انواع الوكلاء وانواع البيئات وفكرة Decision Tree، راح تتعب
  • مسار الدراسات العليا: ماجستير AI في كاوست، KFUPM، او جامعات الخارج كلها تقرا درجتك في مادة AI التعريفية بدقة. درجتك في عال 361 تفتح او تقفل ابواب
  • مشروع التخرج: اغلب المشاريع المتميزة في كلية علوم الحاسب والمعلومات اليوم فيها عنصر AI. عال 361 هي البنية اللي تبني عليها المشروع
  • التفكير الحسابي: المادة تعلمك تنمذج اي مشكلة كحالات وانتقالات وهدف. هذي طريقة تفكير تنفعك حتى لو ما اشتغلت في AI ابدا

نظرة عامة على خطة عال 361

المادة تتوزع عادة على 15 اسبوع. الجدول تقريبي وقد يختلف من شعبة لاخرى:

الاسابيعالموضوعالصعوبة
1-2مقدمة في AI، تاريخه، والوكلاء الاذكياءسهلة
3-4البحث غير المطلع: BFS، DFS، UCS، IDSمتوسطة
5-6البحث المطلع: Greedy و A*، الهيوريستكصعبة
7-8البحث التنافسي: Minimax و Alpha-Betaمتوسطة
9مسائل اشباع القيود (CSP)، AC-3متوسطة
10-11المنطق القضوي وقواعد الاستنتاجصعبة
12المنطق من الدرجة الاولى (FOL)صعبة
13-14مقدمة في تعلم الالةمتوسطة
15مراجعة شاملة ومشروع نهائي

ℹ️ الاختبار النصفي عادة قبل CSP

في اغلب الشعب، المنتصف يكون نهاية الاسبوع 7 او 8، اي يغطي الوكلاء، البحث غير المطلع، والبحث المطلع و Minimax. هذا يعني انك لازم تكون متقن A* وشروط Admissibility قبل المنتصف، لان نص الاختبار يدور حواليها.

1. الوكلاء الاذكياء (Intelligent Agents) و PEAS

اول مفهوم في المادة هو الوكيل (Agent): اي شيء يستقبل من بيئته عبر مستشعرات، ويتصرف فيها عبر محركات. هذا التعريف يغطي البشر، الروبوتات، والبرامج.

اطار PEAS

PEAS اختصار لاربع نقاط لازم تحددها قبل ما تصمم اي وكيل:

  • P (Performance): كيف تقيس نجاح الوكيل؟
  • E (Environment): ما هي البيئة اللي يشتغل فيها؟
  • A (Actuators): كيف يؤثر على البيئة؟
  • S (Sensors): كيف يستقبل من البيئة؟

مثال: سيارة ذاتية القيادة في الرياض

  • P: الوصول للوجهة بامان، توفير الوقود، احترام قواعد المرور، راحة الراكب
  • E: شوارع الرياض، اشارات، مشاة، سيارات اخرى، طقس متغير
  • A: المقود، الدواسات، الاشارات، الفرامل، البوق
  • S: كاميرات، رادار، GPS، عداد السرعة، مستشعرات الاطارات

انواع الوكلاء الاربعة

النوعكيف يقررمثال
Simple Reflexقاعدة شرطية مباشرة (if-then)مكيف ذكي يطفي عند 22 درجة
Model-based Reflexيحتفظ بحالة داخلية للبيئةروبوت يعرف ايش الغرف اللي زارها
Goal-basedيفكر في تسلسل خطوات لتحقيق هدفGPS يحسب مسار للوجهة
Utility-basedيوازن بين اهداف متعددة بقيمة منفعةتطبيق توصيل يوازن السرعة والتكلفة

في كل اختبار عال 361 يجي سؤال يعطيك تطبيق ويطلب منك تحلل PEAS وتصنف نوع الوكيل. تدرب على عشرة امثلة مختلفة (روبوت تنظيف، مساعد طبي، نظام توصيات نتفلكس، خصم في لعبة) قبل المنتصف. السؤال سهل اذا تدربت، وضايع اذا حاولت تفكر فيه اول مرة في الاختبار.

كل مسالة AI نقدر نحولها لمسالة بحث: عندنا حالة بداية، حالة هدف، ومجموعة عمليات تنقلنا بين الحالات. البحث غير المطلع يستكشف بدون اي معلومة عن قرب الهدف.

الخوارزميات الاربعة الاساسية

  • BFS (Breadth-First Search): يستكشف بالعرض، طبقة طبقة. يستخدم Queue. يضمن اقصر مسار بعدد الخطوات
  • DFS (Depth-First Search): يغوص للعمق ثم يرجع. يستخدم Stack. ذاكرة قليلة لكن قد لا يلقى الحل الامثل
  • UCS (Uniform Cost Search): يفضل المسار الاقل تكلفة فعلية. يستخدم Priority Queue على g(n)
  • IDS (Iterative Deepening Search): يكرر DFS بحدود عمق متزايدة. يجمع بين ذاكرة DFS وامثلية BFS

مثال تطبيقي: مسالة الوعاء (Water Jug)

عندك وعاءان سعتهم 4 لتر و 3 لتر. تبي تقيس بالضبط 2 لتر. الحالة عبارة عن (a, b) حيث a محتوى الوعاء الكبير و b محتوى الصغير. الحالة الابتدائية (0, 0) والهدف اي حالة فيها a=2 او b=2.

# ابحث عن مسار من (0,0) الى حالة فيها 2 لتر
from collections import deque

def water_jug_bfs():
    start = (0, 0)
    queue = deque([(start, [])])
    visited = {start}
    while queue:
        (a, b), path = queue.popleft()
        if a == 2 or b == 2:
            return path + [(a, b)]
        # كل العمليات الممكنة من الحالة الحالية
        for nxt in successors(a, b):
            if nxt not in visited:
                visited.add(nxt)
                queue.append((nxt, path + [(a, b)]))
    return None

دالة successors تولد الحالات التالية: تعبئة، تفريغ، صب من وعاء لاخر. هذا تمرين كلاسيكي ودكاترة عال 361 يعطونه في اول واجب.

مقارنة التعقيد

الخوارزميةالتعقيد الزمنيالتعقيد المكانيكاملة؟امثلية؟
BFSO(b^d)O(b^d)نعمنعم (اذا كل الخطوات بنفس التكلفة)
DFSO(b^m)O(b·m)لا (في فضاء لا نهائي)لا
UCSO(b^(1 + ⌊C*/ε⌋))كبيرنعمنعم
IDSO(b^d)O(b·d)نعمنعم (اذا التكاليف متساوية)

حيث b عامل التفرع، d عمق الحل، m اقصى عمق في الشجرة، C* تكلفة الحل الامثل، ε اقل تكلفة خطوة.

⚠️ فخ شائع: الفرق بين BFS و UCS

لو الخطوات كلها بنفس التكلفة، BFS = UCS تقريبا. لكن لو التكاليف مختلفة (طريق مختصر يكلف 5 وطريق طويل يكلف 1)، BFS قد يعطي حل غلط لانه يحسب عدد الخطوات لا تكلفتها. UCS هو اللي يضمن المسار الارخص. هذي النقطة بالذات تتكرر في الاختبار النصفي.

3. البحث المطلع و A*

هنا تبدا المادة تصير صعبة. الفكرة: نضيف دالة هيوريستية h(n) تقدر بعد العقدة عن الهدف، ونوجه البحث بناء عليها.

الخوارزميتان الاهم

  • Greedy Best-First: ياخذ h(n) فقط. سريع لكن غير امثل
  • A*: ياخذ f(n) = g(n) + h(n). امثل لو الهيوريستيك Admissible

A* على لعبة 8-Puzzle

8-Puzzle مسالة كلاسيكية: لوحة 3×3 فيها ارقام من 1 الى 8 ومربع فاضي. تحرك المربع الفاضي لتوصل لترتيب الهدف. عدد الحالات الممكنة 181440، يعني BFS يموت قبل ما يخلص. A* مع هيوريستيك ذكي يحلها في ميلي ثوان.

اشهر هيوريستيكين لـ 8-Puzzle:

  • h1: عدد القطع في غير مكانها (Misplaced Tiles). تعد كم قطعة موضوعة في خانة مو خانتها الصحيحة
  • h2: مجموع مسافات Manhattan. لكل قطعة، تحسب |dx| + |dy| الى موقعها الصحيح، ثم تجمع

كلاهما Admissible (لان كل قطعة على الاقل تحتاج خطوة واحدة لتوصل لمكانها). بس h2 اقوى لانه يعطي تقدير اقرب للحقيقة، وكل ما زاد قرب التقدير، تقلصت شجرة البحث اكثر.

Admissibility و Consistency

شرطان اساسيان للهيوريستيك في A*:

  • Admissible: لا يبالغ ابدا في التقدير. h(n) ≤ التكلفة الفعلية من n للهدف. هذا الشرط يضمن ان A* يلقى الحل الامثل
  • Consistent (Monotonic): h(n)c(n, n’) + h(n’) لكل جار n’. شرط اقوى من Admissible. لو الهيوريستيك Consistent، فهو تلقائيا Admissible، و A* ما يحتاج يعيد فتح العقد المغلقة

كود A* مبسط

import heapq

def a_star(start, goal, h):
    open_set = [(h(start), 0, start, [])]  # (f, g, node, path)
    closed = set()
    while open_set:
        f, g, node, path = heapq.heappop(open_set)
        if node == goal:
            return path + [node]
        if node in closed:
            continue
        closed.add(node)
        for nb, cost in neighbors(node):
            if nb in closed:
                continue
            new_g = g + cost
            heapq.heappush(open_set, (new_g + h(nb), new_g, nb, path + [node]))
    return None

كل ما عليك هو تمرير دالة هيوريستيك مناسبة للمسالة. لو المسالة شبكة (grid) والهدف نقطة محددة، h عبارة عن مسافة Manhattan او Euclidean.

⚠️ الخطا الذهبي: Greedy ليس A*

لو السؤال يطلب حل امثل (optimal)، لازم تستخدم A* الكامل بـ f = g + h. كثير من الطلاب في الاختبار يحسبون h فقط لانهم يلقونه اسهل، ويظنون النتيجة صحيحة. النتيجة: حل قد يكون قريب من الامثل لكن غير مضمون. الدكتور يخصم درجة كاملة على هذا.

خوارزميات البحث وحساب الـ heuristic ترهق الطلاب؟

A* وشروط Admissibility و Consistency من اصعب جزئيات عال 361. ارسل لنا مسالتك على واتساب، ونشرحها لك خطوة بخطوة على شجرة البحث مع تتبع كل تحديث في القيمتين g و h حتى تثبت الفكرة.

ارسل سؤالك على واتساب

4. البحث التنافسي (Adversarial Search) و Minimax

في الالعاب اللي فيها لاعبان متنافسان، لا نقدر نخطط بشكل احادي. لازم ناخذ بالحسبان حركات الخصم. هنا يدخل Minimax.

الفكرة الاساسية

اللاعب الاول (MAX) يحاول يعظم النتيجة، الخصم (MIN) يحاول يقللها. نبني شجرة من حالات اللعبة، ونحسب القيم من الاوراق للجذر بالتناوب: في طبقة MAX ناخذ الاكبر، في طبقة MIN ناخذ الاصغر.

Tic-Tac-Toe بالكامل

في Tic-Tac-Toe، دالة التقييم بسيطة: +1 لو X فاز، -1 لو O فاز، 0 لو تعادل. الكود التالي يلعب لعبة كاملة من حالة معطاة:

# Tic-Tac-Toe: X يعظم (+1)، O يقلل (-1)
def winner(board):
    lines = [board[i*3:(i+1)*3] for i in range(3)]  # صفوف
    lines += [board[i::3] for i in range(3)]        # اعمدة
    lines += [board[::4], board[2:7:2]]             # اقطار
    for line in lines:
        if line == ['X','X','X']: return +1
        if line == ['O','O','O']: return -1
    return 0 if '.' not in board else None  # None = اللعبة مستمرة

def minimax(board, is_max):
    score = winner(board)
    if score is not None:
        return score
    best = -10 if is_max else +10
    mark = 'X' if is_max else 'O'
    for i in range(9):
        if board[i] == '.':
            board[i] = mark
            val = minimax(board, not is_max)
            board[i] = '.'
            best = max(best, val) if is_max else min(best, val)
    return best

استدعاء minimax(board, True) يعطيك القيمة المثالية للاعب X من اي حالة. التعقيد O(9!) في اسوا حالة، لكن مع البطاقة الفارغة الكاملة يصير مقبول.

Alpha-Beta Pruning

Minimax بطيء على شجرات كبيرة. الفكرة: اذا اكتشفنا فرع ما راح يأثر على القرار النهائي، نتجاهله. نمرر قيمتين:

  • alpha: افضل قيمة مضمونة لـ MAX حتى الان
  • beta: افضل قيمة مضمونة لـ MIN حتى الان

لو في عقدة MAX وصلنا قيمة ≥ beta، نوقف (لان MIN ما راح يسمح بهذا الفرع). لو في عقدة MIN وصلنا قيمة ≤ alpha، نوقف.

في افضل حالة (ترتيب حركات مثالي)، Alpha-Beta يقلل التعقيد من O(b^d) الى O(b^(d/2)). يعني تقدر تبحث ضعف العمق بنفس الوقت. فرق هائل في الالعاب الحقيقية.

💡 الترتيب يصنع الفرق

كفاءة Alpha-Beta تعتمد بشكل جوهري على ترتيب الحركات. لو فحصت الحركات الواعدة اولا، التقليم يكون قوي. لو فحصت السيئة اولا، النتيجة نفس Minimax العادي. هذا يفسر ليش محركات الشطرنج الحديثة تستخدم تقنيات معقدة لترتيب الحركات (Killer Move، History Heuristic، Transposition Tables).

Minimax و Alpha-Beta على شجرة الاختبار محيرتك؟

تتبع شجرة Minimax يدويا مع التقليم من اصعب اسئلة الاختبار النصفي. ارسل لنا الشجرة على واتساب ونتبعها سطر بسطر مع شرح ليش كل فرع يقطع، حتى تطبق الطريقة بنفسك في الاختبار.

تواصل معنا الان

5. مسائل اشباع القيود (CSP)

CSP اطار عام لمسائل تحتوي ثلاث عناصر: متغيرات، نطاقات (الفيم الممكنة لكل متغير)، و قيود (شروط على المتغيرات).

Sudoku كمثال CSP

في Sudoku 9×9:

  • المتغيرات: 81 خانة
  • النطاقات: كل خانة ممكن تكون 1-9
  • القيود: كل صف، كل عمود، وكل صندوق 3×3 يحتوي ارقام مختلفة

كل خلية فاضية متغير. كل صف وعمود وصندوق يضيف قيد All-Different.

Backtracking البسيط

def solve_sudoku(board):
    empty = find_empty(board)
    if not empty:
        return True  # خلصنا
    row, col = empty
    for num in range(1, 10):
        if is_valid(board, row, col, num):
            board[row][col] = num
            if solve_sudoku(board):
                return True
            board[row][col] = 0  # تراجع
    return False

AC-3: Arc Consistency

Backtracking وحده يضيع وقت في فروع ميتة. AC-3 خوارزمية تنقي النطاقات قبل البحث: لكل قيد ثنائي بين متغيرين X و Y، تحذف من نطاق X اي قيمة ما لها قيمة موافقة في نطاق Y. لما يستقر النظام (ما يصير اي تغيير)، نقول الـ arcs consistent.

مثال ثاني: N-Queens

ضع n ملكات على رقعة n×n بدون ما تتهدد ملكتين بعضهم. هذي مسالة CSP كلاسيكية: المتغيرات الصفوف، النطاقات الاعمدة، القيود لا تشترك ملكتان في نفس العمود او القطر. Backtracking مع Forward Checking يحلها لـ n=8 في اجزاء من الثانية.

استراتيجيات اختيار المتغير والقيمة

في Backtracking، ترتيب المتغيرات والقيم يفرق:

  • MRV (Minimum Remaining Values): اختر المتغير اللي عنده اقل قيم ممكنة. يكشف الفشل بسرعة
  • Degree Heuristic: عند التعادل في MRV، اختر المتغير اللي يشارك في اكثر قيود
  • LCV (Least Constraining Value): اختر القيمة اللي تترك اكثر مرونة للمتغيرات الباقية

CSP اطار عملي جدا. كثير من المشاكل الواقعية CSPs بطبيعتها: جدولة الامتحانات في الجامعة، توزيع المهام على الموظفين، تخصيص بوابات الطائرات في المطار. حلال CSP عام يقدر يحل كل هذي بدون ما تكتب خوارزمية مخصصة لكل واحدة. مكتبات مثل OR-Tools من قوقل تعتمد على نفس المبادئ اللي تتعلمها هنا.

6. تمثيل المعرفة والمنطق

اصعب جزء نظري في المادة، لكن هو الاساس اللي بنى عليه الذكاء الاصطناعي قبل ظهور التعلم العميق.

المنطق القضوي (Propositional Logic)

نمثل العالم بعبارات بسيطة (P، Q، R) لها قيمة صح او خطا، ونربطها بمعاملات منطقية:

  • ¬P (نفي)
  • P ∧ Q (و)
  • P ∨ Q (او)
  • P → Q (ينتج عنه)
  • P ↔ Q (تكافؤ)

قواعد الاستنتاج الاساسية

القاعدةالصيغةالمعنى
Modus PonensP → Q، P ⊢ Qلو الشرط صح والمقدمة صح، النتيجة صح
Modus TollensP → Q، ¬Q ⊢ ¬Pلو النتيجة خطا، المقدمة خطا
And EliminationP ∧ Q ⊢ Pمن الـ”و” تستخرج طرف
ResolutionP ∨ Q، ¬P ∨ R ⊢ Q ∨ Rاساس الاثبات الالي

مثال على Resolution

نريد نثبت ان R صحيحة من المعطيات: {P ∨ Q، ¬Q ∨ R، ¬P}.

1. P ∨ Q              (معطى)
2. ¬Q ∨ R             (معطى)
3. ¬P                 (معطى)
4. Q                  (Resolution: 1 و 3)
5. R                  (Resolution: 2 و 4)

المنطق من الدرجة الاولى (FOL)

نضيف كميات ومتغيرات وعلاقات:

  • ∀x (لكل x)
  • ∃x (يوجد x)
  • علاقات مثل Father(x, y) و Loves(x, y)

مثال:

x (Student(x)TakesAI361(x)StudiesHard(x))
Student(Ahmed)
TakesAI361(Ahmed)
StudiesHard(Ahmed)

🔴 استراتيجية حل اسئلة المنطق

في كل اختبار يجي سؤال يطلب منك تترجم جمل عربية لـ FOL، ثم تستنتج. التسلسل: (1) عرف المسندات والثوابت بوضوح، (2) ترجم كل جملة لصيغة منطقية، (3) طبق قواعد الاستنتاج خطوة خطوة. لا تقفز خطوات. الدكتور يعطي نصف الدرجة على الخطوات حتى لو النتيجة غلط.

7. مقدمة في تعلم الالة

في اخر اسبوعين من المادة، تنفتح بوابة عالم تعلم الالة. عال 361 ما تتعمق فيه، الهدف يجهزك لـ عال 462 اللي تنزل في التفاصيل الرياضية.

الانواع الثلاثة للتعلم

  • التعلم المراقب (Supervised): بيانات مصنفة، النموذج يتعلم العلاقة بين المدخل والمخرج. امثلة: تصنيف الايميل (spam/not spam)، توقع سعر سيارة
  • التعلم غير المراقب (Unsupervised): بيانات بدون تصنيف، النموذج يكتشف انماط او مجموعات. امثلة: تجميع العملاء (K-Means)، تقليل الابعاد
  • التعلم المعزز (Reinforcement): الوكيل يتعلم بالمحاولة والخطا مع مكافات. امثلة: AlphaGo، انظمة التوصيات التفاعلية

تقسيم البيانات: Train/Test Split

اهم مفهوم عملي في الجزء الاخير من المادة. لا تقيم نموذج على نفس البيانات اللي دربته عليها، النتيجة راح تكون مغرورة. القاعدة:

  • مجموعة التدريب (Training Set): 70-80% من البيانات. النموذج يتعلم منها
  • مجموعة الاختبار (Test Set): 20-30%. تقيم عليها الاداء الحقيقي
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

Overfitting و Underfitting

  • Overfitting: النموذج حفظ بيانات التدريب لكن فشل على بيانات جديدة. علامة: دقة عالية على Train، منخفضة على Test
  • Underfitting: النموذج بسيط جدا ولم يتعلم النمط حتى من Train

ℹ️ عال 361 مقدمة، ليست تعلم الة كامل

الجزء الاخير من المادة سطحي بشكل مقصود. هدفه يفتح شهيتك ويعطيك مفردات. لو تبي تتعمق في الانحدار، الشبكات العصبية، SVM، Random Forest، والتعلم المعزز، عال 462 تعلم الالة هي المادة المخصصة، ومحتواها اضعاف عال 361 في هذا الجانب.

اخطاء شائعة في عال 361

اجمع لك اكثر الاخطاء اللي تخسر الطلاب درجات في كلية علوم الحاسب والمعلومات:

  1. خلط BFS و UCS: BFS يحسب عدد الخطوات، UCS يحسب التكلفة الفعلية. اذا التكاليف متفاوتة، النتائج تختلف
  2. استخدام Greedy بدل A*: Greedy ياخذ h(n) فقط، A* ياخذ g(n) + h(n). لو السؤال يقول optimal، لازم A* الكامل
  3. هيوريستيك يبالغ: اذا h(n) > التكلفة الحقيقية، A* قد يفشل في ايجاد الحل الامثل. شرط Admissible شرط حياة
  4. اهمال Alpha-Beta: الدكتور يتوقع منك تطبق التقليم لو السؤال يقول “efficient” او “optimized
  5. خلط Modus Ponens و Tollens: Ponens يستنتج Q من P→Q و P. Tollens يستنتج ¬P من P→Q و ¬Q
  6. استخدام FOL لما PL يكفي: FOL اكثر تعقيدا. لو المسالة قابلة للنمذجة بـ PL، استخدمها
  7. نسيان شرط نهاية CSP: Backtracking بدون فحص (No-attack او All-Different) يضيع وقت في فروع ميتة
  8. خلط Supervised و Unsupervised: البيانات مصنفة = Supervised، بدون تصنيف = Unsupervised. لو السؤال فيه labels، فهي Supervised

القاعدة الذهبية لمراجعة المادة قبل الاختبار: ارسم كل خوارزمية يدويا على ورقة قبل ما تكتب اي كود. شجرة A* لخمس مدن، شجرة Minimax لـ Tic-Tac-Toe ناقص، Backtracking على Sudoku 4×4. الرسم اليدوي يثبت المفهوم اقوى بكثير من قراءة الكود ثلاث مرات.

خطة مذاكرة عال 361

خطة عملية لاجتياز عال 361 بتقدير عالي

  1. الاسبوع 1-2 - التاسيس: اقرا الفصلين الاول والثاني من Russell & Norvig. تدرب على تحليل PEAS لعشرة تطبيقات مختلفة (روبوت تنظيف، سيارة ذاتية، مساعد صوتي، نظام توصيات). احفظ انواع الوكلاء الاربعة بامثلة
  2. الاسبوع 3-4 - البحث غير المطلع: نفذ BFS و DFS و UCS و IDS بـ Python على مسالة Water Jug او متاهة بسيطة. ارسم شجرة البحث لكل خوارزمية. حل ثلاث مسائل من تمارين الكتاب
  3. الاسبوع 5-6 - A*: ركز هنا اكثر من اي موضوع ثاني. تدرب على عشر مسائل A* بهيوريستيكات مختلفة. تاكد انك تفرق بين Admissible و Consistent بمثال عددي. هذي الاسبوعين هم الفرق بين A و C في المنتصف
  4. الاسبوع 7-8 - البحث التنافسي: ابني Tic-Tac-Toe كامل في Python بـ Minimax مع Alpha-Beta. قدر انت تربح اللعبة على نفسك. ارسم شجرة الـ Pruning يدويا لتفهم متى يقطع
  5. الاسبوع 9 - CSP: برمج حلال Sudoku بـ Backtracking + AC-3. حل N-Queens. تدرب على MRV و LCV
  6. الاسبوع 10-12 - المنطق: احفظ قواعد الاستنتاج الست الاساسية. حل خمس مسائل Resolution بالكامل. تدرب على ترجمة عشر جمل عربية لـ FOL

ربط عال 361 بمسارك الاكاديمي والمهني

عال 361 مادة محورية في خطة قسم علوم الحاسب بجامعة الملك سعود. علاقتها بالمواد الثانية:

  • اساس قوي من عال 212 تراكيب البيانات: Queue و Stack و Priority Queue اللي تستخدمها في BFS و DFS و UCS و A*. لو هذي الهياكل ضبابية، ارجع راجعها. الرسوم البيانية (Graphs) تحديدا اساس كل مواضيع البحث
  • اعادة استخدام مفاهيم عال 311 الخوارزميات: البرمجة الديناميكية تظهر مرة ثانية في تحليل بعض مسائل البحث. تحليل التعقيد بـ Big-O نفسه. الخوارزميات الجشعة (Greedy) في عال 311 توضح ليش Greedy Best-First لا يضمن الامثلية
  • التعمق في عال 462 تعلم الالة: اول مرة تشوف Decision Tree هنا، في 462 تتعمق في Random Forest و Gradient Boosting. مفهوم Train/Test يصير عمود فقري في كل ما تتعلمه بعد ذلك
  • مشروع التخرج: اي مشروع فيه لعبة، نظام توصيات، chatbot، او تخطيط مسارات يستفيد مباشرة من عال 361

خلاصة

عال 361 ليست اصعب مادة في الخطة، لكنها من اكثر المواد اللي تحدد لك الاتجاه المهني. الطلاب اللي يدخلونها بتركيز ويبنون مشروع شخصي فيها (لعبة Tic-Tac-Toe، حلال Sudoku، او نظام توصيات بسيط) يخرجون منها بشيء يضيفونه للسيرة الذاتية قبل التخرج. وهذا اقوى بكثير من معدل تراكمي مرتفع بدون مشاريع.

ركز على ثلاث نقاط: (1) ارسم قبل ما تكود، كل خوارزمية ابدا فيها بورقة وقلم. (2) افهم Admissibility و Consistency بعمق، لانهم ينقذونك في نص المادة. (3) اربط المفاهيم بالواقع: A* هو خرائط جوجل، Minimax هو محرك شطرنج، CSP هو جدول امتحاناتك. الربط يثبت المعلومة اكثر من الحفظ.

ولا تتحمس زيادة من اخر اسبوعين عن ML. عال 361 تفتح الباب، الرحلة الحقيقية تبدا في عال 462 وما بعدها.

تحتاج مساعدة في عال 361؟

الذكاء الاصطناعي مادة غنية لكن فيها اجزاء تحتاج تركيز عميق، خاصة A\* والمنطق و Minimax. فريقنا متخصص في مواد علوم الحاسب بجامعة الملك سعود. ارسل الواجب او المشروع على واتساب ونرد عليك بعرض سعر خلال ساعة.

ارسل واجبك على واتساب

أسئلة شائعة

هل لازم اخذ عال 311 الخوارزميات قبل عال 361؟ +

في خطة قسم علوم الحاسب بجامعة الملك سعود، عال 311 (الخوارزميات) متطلب سابق رسمي لـ عال 361. ولها سبب وجيه: نص المادة عبارة عن خوارزميات بحث (BFS، DFS، A*، Minimax) وتحليل تعقيدها. لو دخلت عال 361 قبل ما تخلص عال 311، راح تحس انك تركض ومحاولاتك معاك مشط. لو عندك مرونة في الجدول، خذ 311 الفصل الاول و 361 الفصل اللي بعده، النتيجة في الدرجتين تكون افضل.

ما الفرق بين عال 361 وعال 462 تعلم الالة؟ +

عال 361 مادة تعريفية شاملة لكل مجالات الذكاء الاصطناعي الكلاسيكي: البحث، المنطق، CSP، ومقدمة بسيطة لتعلم الالة. عال 462 تخصصية بالكامل في تعلم الالة: انحدار، شبكات عصبية، SVM، تجميع. عال 361 تعطيك الصورة الكبرى وتعلمك تفكر كـ AI agent، و 462 تنزلك في التفاصيل الرياضية لخوارزميات ML. الترتيب الطبيعي: 361 ثم 462.

هل المادة برمجية او نظرية؟ +

المزيج تقريبا 50/50. الجزء النظري كبير: تحليل خوارزميات البحث، اثبات Admissibility للهيوريستك، قواعد الاستنتاج المنطقي. الجزء العملي عادة بايثون: تنفذ A* ، Minimax مع Alpha-Beta، حلال CSP لـ Sudoku، وغالبا مشروع نهائي صغير. اختبارات الدكاترة في كلية علوم الحاسب والمعلومات تركز على التتبع اليدوي والبراهين، يعني لازم تقوي الجانبين.

ما الكتاب المرجعي وكيف اذاكر منه بكفاءة؟ +

الكتاب المعتمد عالميا هو Artificial Intelligence: A Modern Approach لـ Russell و Norvig (الطبعة الرابعة). الكتاب اكثر من 1100 صفحة، لكن منهج عال 361 يغطي عادة الفصول 1-2 (مقدمة ووكلاء)، 3-4 (البحث)، 5 (البحث التنافسي)، 6 (CSP)، 7-8 (المنطق)، و 18-19 (مقدمة ML). لا تقرا كل صفحة، ركز على الفصول اللي يشير لها الدكتور وحل تمارين نهاية الفصل.

كيف تفيدني عال 361 في سوق العمل السعودي؟ +

السعودية تستثمر بقوة في AI ضمن رؤية 2030. سدايا (الهيئة السعودية للبيانات والذكاء الاصطناعي)، NCAI، STC AI، وارامكو الرقمية كلها توظف خريجين يفهمون AI الكلاسيكي قبل التعلم العميق. مقابلات شركات مثل Google ومايكروسوفت في الرياض غالبا تسال عن BFS، A*، و Minimax. عال 361 ما تخليك مهندس AI، لكنها تجعل سيرتك الذاتية تقفز فوق كومة من المتقدمين اللي ما اخذوا المادة بجدية.

ما اصعب جزء في المادة وكيف اتعامل معه؟ +

التجربة العامة: A* مع شروط Admissibility و Consistency، ثم Resolution في المنطق من الدرجة الاولى. السبب انها مفاهيم مجردة تعتمد على البرهان مو على الكود. الحل: ارسم كل مثال يدويا قبل ما تكتب اي كود. تتبع شجرة A* على ورقة لخمس مدن مختلفة، وحل ثلاث مسائل Resolution بالكامل. لما تفهم البرهان يدويا، الكود يصير سطرين.

هل تحتاج خصوصي؟