كل الأنشطة
- الساعة الماضية
-
Sherif Nour Eldin اشترك بالأكاديمية
-
Yousry Ibrahaim اشترك بالأكاديمية
-
Rasha Rasha2 اشترك بالأكاديمية
-
ساره العتيبي7 اشترك بالأكاديمية
- اليوم
-
Zeyad Abdelwahab اشترك بالأكاديمية
-
وعليكم السلام ورحمة الله وبركاته. نعم إن دالت find_parent و check متشابهتان إلى حد كبير لأنهما تؤديان نفس العملية الأساسية وهو إجتياز شجرة البحث الثنائية (BST) فكلاهما يبدأ من الجذر (root) ويبدا التحرك يسارا أو يميناً بناء على مقارنة القيمة. ولكن بالرغم من هذا التشابه فإنهما يستخدمان لهدفين مختلفين تماما: فدالة check هدفها هو العثور على تطابق تام وهي تسأل هل القيمة X موجودة في الشجرة أم لا وتتوقف إما عند العثور على القيمة وتعيد true أو عند الوصول إلى نهاية فرع فارغ (NULL) وتعيد false. وأما دالة find_parent هدفها هو العثور على المكان المناسب لإدراج عقدة جديدة وهي تسأل أين يجب أن يتم وضع القيمة X إذا لم تكن موجودة .وإنها لا تبحث عن تطابق بل تبحث عن آخر عقدة في المسار (الأب) التي سيتفرع منها الابن الجديد. ولذلك فإن محاولة دمجهما مباشرة كما تقول من خلال تخزين الأسطر المتشابهة ستجعل الكود أكثر تعقيدا وليس أبسط ولن يكون سهل القراءة والفهم وأيضا ستحتاج إلى إضافة شروط كثيرة أو أعلام (flags) داخل الدالة المشتركة لتقرر ما إذا كانت في وضع البحث أم وضع إيجاد الأب وهذا يتعارض مع مبدأ الفصل بين الاهتمامات (Separation of Concerns) في البرمجة. حيث هذا المبدأ أساسي جدا وهو أن يكون لكل جزء من الكود وظيفة حادة وليس أكثر من وظيفة وذلك لجعل التعديل سهل في المستقبل وعدم إعتماد الأكواد على بعضها البعض .
-
فاطمة ايمن صبرى اشترك بالأكاديمية
-
من ناحية الدينلو الصورة عليها حقوق ملكية يجب ان تستأذن من صاحبها لو الغرض تجاري ولتحمي نفسك ايضا من اى شكوى ضدك
-
من ناحية الدينلو الصورة عليها حقوق ملكية يجب ان تستأذن من صاحبها طالما الغرض تجاري ولتحمي نفسك ايضا من اى شكوى
-
مرتضى الزعيل اشترك بالأكاديمية
-
الإجابة بإختصار هي يجب عليك دائما إجراء تقسيم التدريب/الاختبار على مستوى السجل العملاء أو الزلازل وليس على مستوى السجل الفرعي المعاملات أو القراءات. وقلقك بشأن تسرب البيانات (Data Leakage) صحيح تماما وإليك السبب بالتفصيل: وإليك كيفية فهم تسرب البيانات في البيانات الهرمية حيث ما تصفه هو حالة كلاسيكية من تسرب البيانات تعرف أحيانا بتسرب المجموعة (Group Leakage) والهدف من مجموعة الاختبار هو محاكاة أداء النموذج عند مواجهة بيانات جديدة تماما وغير مرئية في العالم الحقيقي. في السيناريو الخاطئ وهو التقسيم حسب السجل الفرعي (المعاملات) : هنا يتم خلط جميع المعاملات أو قراءات الزلازل من جميع العملاء معا بشكل عشوائي ثم يتم تقسيمها 80% للتدريب و 20% للاختبار. المشكلة تكمن في أن مثلا العميل "أ" لديه 10 معاملات ومن المحتمل أن تقع 8 معاملات في مجموعة التدريب و 2 في مجموعة الاختبار. وعندما يتدرب النموذج فإنه لا يتعلم فقط الأنماط العامة للمعاملات بل يتعلم أيضا الأنماط الخاصة بالعميل أ مثل عادات إنفاقه ومواعيده المفضلةوهكذا . وعندما يرى النموذج المعاملتين المتبقيتين للعميل أ في مجموعة الاختبار فإنه يتذكره جزئيا. والنتيجة انه النموذج يحقق أداء جيدا بشكل مبالغ فيه (حيث يكون متفائل بشكل خاطئ) في مجموعة الاختبار وأنت لا تختبر قدرته على التنبؤ بعملاء جدد بل تختبر قدرته على التنبؤ بمعاملات إضافية لعملاء يعرفهم بالفعل. أما في السيناريو الصحيح وهو التقسيم حسب السجل (العملاء) : فهنا أنت لا تقسم المعاملات بل تقسم العملاء (أو الزلازل). فمثلا : تحدد 80% من العملاء بشكل عشوائي وجميع معاملات هؤلاء العملاء تذهب إلى مجموعة التدريب. وال 20% المتبقية من العملاء جميع معاملاتهم تذهب إلى مجموعة الاختبار. هنا النموذج يتدرب على مجموعة كاملة من العملاء. ويتم اختبار النموذج على مجموعة مختلفة تماما من العملاء لم يرهم من قبل. وهذا يحاكي بدقة ما سيحدث في الواقع حيث سيطلب منك التنبؤ بسلوك عميل جديد ليس في قاعدة بياناتك التدريبية.
-
Abdullah Alhawa اشترك بالأكاديمية
-
لا حاجة لشراء جهاز جديد حاليا إذا لم ترد ذلك فيمكنك أثناء التعلم أن تقوم بالتدرب على google colab كما تم الشرح في الدورة حيث يتم توفير موارد مجانية لك وقوية لن تحتاج إلى جهاز قوي لتشغيله عليها . ولكن إذا أردت جهاز جديد فيمكنك تحديد الميزانية التي تناسبك لتحديد أفضل جهاز في تلك الفئة . أولا يجب عليك أن يكون لديك RAM أقل سعة مناسبة هي 16GB وكلما كانت أكبر فهي أفضل وستساعدك في تحميل وتشغيل النماذج الكبيرة. أيضا يجب عليك البحث عن معالج processor قوي لتسريع العمليات وأيضا أن تبحث عن كارت شاشة قوى وأن يكون من شركة NVIDIA والتي كروت الشاشة الخاصة بها تدعم الذكاء الإصطناعي بشكل كبير .
-
بعد أن تتخرج منها ستكون مطور ذكاء اصطناعي قادر على: تحليل المشكلة وتحديد النهج المناسب سواء تعلم آلة تقليدي، تعلم عميق، استخدام LLM.\ جمع البيانات ومعالجتها. بناء وتدريب وتخصيص النماذج باستخدام أحدث المكتبات والأدوات بواسطة Transformers أو TensorFlow دمج تلك النماذج في تطبيقات حقيقية عبر واجهات برمجية APIs.
-
بعد الإنتهاء من الدورة وإجتيازها والحصول على الشهادة فإن هنا الأكاديمية سمنحك باقة كتابة السيرة الذاتية في موقع بعيد بقيمة 99$ مجانًا وسيجري لك فريق أخصائي التوظيف مقابلة صوتية يتعرف فيها على مهاراتك ويكتب لك أفضل سيرة ذاتية مخصصة لك ثم سيتابع معك لضبط حسابك على مستقل وبعيد ويقدم لك نصائح مخصصة للحصول على عملك الأول. حيث أكاديمية حسوب لا تقدم لك عمل أو وظيفة مباشرة ولكن تساعدك في العثور على عمل وأيضا منحة موقع بعيد لكتابة السيرة الذاتية وتهيئة حسابك بشكل جيد على موقع مستقل ونصائح لك للوصول إلى العميل الأول لك وكيفية أختيار العميل والعمل المناسب.
-
توجد أفكار كثيرة حولك يمكنكِ البحث عن فكرة جيدة تناسبك وتجدين أنها ستفيدك في مشروعك وفي مجال تعلمك . الأفكار تأتي من المشاكل التي نواجها أو يواجهها الأشخاص الأخرين ويريدون حل لها . مثلا يمكنكِ إنشاء موقع خاص بالتعليم مثلا موقع للدروس الإلكترونية الخاصة بالكلية فمثلا يتم إنشاء فصول وتضمين الطلاب بها وتوفير إختبارات لهم وتقيمات وغيرها من المميزات الأخرى . ويمكنكِ دمج الذكاء الإصطناعي في المشروع لديكِ لتتبع مستوى الطلاب مثلا وإرسال نصائح وإشعارات لهم.
-
وعليكم السلام ورحمة الله وبركاته. هذا أمر شائع في LearnPress حيث يعتمد التسجيل بشكل أساسي على إعدادات WordPress نفسه بينما يتطلب الشراء خاصة للدورات المدفوعة إعدادات إضافية أو تكامل مع إضافات مثل WooCommerce وإليك الحلول التالية لإصلاح ذلك: أولا تمكين التسجيل التلقائي للطلاب (Registration) : إن LearnPress لا يدير التسجيل بنفسه بل يعتمد على نظام التسجيل في WordPress وإذا لم يكن التسجيل مفعلا لن يتمكن الزوار من إنشاء حسابات جديدة من الواجهة الأمامية لذلك : اذهب إلى لوحة التحكم في WordPress: Dashboard ثم Settings ثم General. في قسم Membership فعل الخيار Any one can register (أي شخص يمكنه التسجيل). اختر دور المستخدم الافتراضي للمستخدمين الجدد مثل "Subscriber" أو "Student" وهذا إذا كان متوفراً عبر LearnPress. وأهير قم بحفظ التغييرات. بعد ذلك، يجب أن يظهر نموذج التسجيل على صفحة الدخول أو الملف الشخصي وإذا كنت تريد تمكين نموذج تسجيل خاص ب LearnPress: اذهب إلى LearnPress ثم Settings ثم Pages وقم بتفعيل ال Enable Register Form في إعدادات الملف الشخصي وهذا يجعل النموذج يظهر على الصفحة الافتراضية للملف الشخصي. والآن جرب التسجيل كزائر جديد من خلال صفحة الدورات أو الدخول. إذا ظهر خطأ مثل "Access Denied" قم بالتأكد من عدم وجود تعارض مع الإضافات الأخرى مثل Membership plugins أو قم بمسح الكاش في المتصفح. ثانيا إعداد عملية الشراء والدفع (Purchase) : إذا كانت دوراتك مدفوعة فإن LearnPress لا يدير الدفع بمفرده بشكل افتراضي ولكنه يحتاج إلى إعداد بوابات دفع أو تكامل مع WooCommerce لمعالجة الطلبات والالتحاق التلقائي بعد الدفع وإليك الخطوات التالية في LearnPress: اذهب إلى LearnPress ثم Settings ثم Payment. فعل بوابات الدفع المتاحة مثل PayPal واضغط على اسم البوابة لتكوينها مثل إدخال ال API keys. تأكد من إنشاء صفحة الدفع (Checkout) وإذا لم تكن موجودة أنشئ صفحة جديدة وأضف shortcode [learn_press_checkout] ثم حددها في الإعدادات. للدورات المدفوعة في إعدادات الدورة من LearnPress ثم Courses ثم Edit Course ثم Course Settings حدد سعر أكبر من 0 وفعل خيارات مثل Repurchase إذا أردت إعادة الشراء. للشراء بدون تسجيل (Guest Checkout) فعل Enable Guest Checkout في إعدادات الدفع حيث الزوار يدخلون بريدهم الإلكتروني ويتلقون مفتاح طلب (Order Key) عبر البريد للوصول إلى الدورة.
-
في الكود المرفق لا يوجد أى مشكلة فهو يعمل في الشاشات الصغيرة والكبيرة دون ظهور هذا الجزء الأبيض. هل المشكلة تظهر لك عندما تقوم بتغير الحجم وتصغير الشاشة ؟ أم حتى لو لم تغير حجم الشاشة وكانت صغيرة بمجرد فتح الصفحة ؟ إذا كان الجزء الأبيض يظهر عند تصغير الشاشة أثناء التصفح فغالبا هذه مشكلة في المتصفح نفسه وليس الكود . أيضا قم بفتح الموقع من خلال Microsoft Edge أو أى متصفح أخر وانظر هل المشكلة موجودة أم لا . إذا لم تكن موجودة فإذا المشكلة في المتصفح لديك أو في إضافة من الإضافات . إذا ظلت المشكلة يرجى عمل inspect للعنصر وإرسال صورة لما يظهر لك.
-
حلمى عبدالمنعم اشترك بالأكاديمية
-
مصطفى محمد41 اشترك بالأكاديمية
-
ستجد أسفل فيديو الدرس صندوق للتعليقات كما هنا يرجى طرح سؤالك أسفل الدرس وليس هنا حيث هنا قسم الأسئلة العامة ولا نقوم بإجابة الأسئلة الخاصة بمحتوى الدورة أو الدرس، وذلك لمعرفة الدرس الذي توجد به مشكلتك و لمساعدتك بشكل أفضل. إذا لم يكن هذا السؤال خاص بإحدى الدورات إليك رابط التحميل التالي: https://scratch.mit.edu/download
-
مرحبا كيف ننزل تطبيق سكراتش شكرا جزيلا
- 1 جواب
-
- 1
-
- البارحة
-
طيب بعد ما اخلص الدوره وش ممكن اشتغل فيه او مادا اكون محلل بينات او مادا هو المسار الي بكون اشتغل فيه واكون جاهز له ؟؟؟؟؟؟
-
الدورة ليست مخصصة بشكل كبير لمجال تحليل البيانات و للعمل بوظيفة محلل بيانات Data Analyst ستحتاج إلى تعلم أمور أخرى بجانب الدورة وإليك الإجابات التالية لمزيد من التفاصيل حول هذا المجال وما ينبغي عليك فعله : أما بعد الإنتهاء من الدورة وإجتيازها والحصول على الشهادة فإن هنا الأكاديمية سمنحك باقة كتابة السيرة الذاتية في موقع بعيد بقيمة 99$ مجانًا وسيجري لك فريق أخصائي التوظيف مقابلة صوتية يتعرف فيها على مهاراتك ويكتب لك أفضل سيرة ذاتية مخصصة لك ثم سيتابع معك لضبط حسابك على مستقل وبعيد ويقدم لك نصائح مخصصة للحصول على عملك الأول. حيث أكاديمية حسوب لا تقدم لك عمل أو وظيفة مباشرة ولكن تساعدك في العثور على عمل وأيضا منحة موقع بعيد لكتابة السيرة الذاتية وتهيئة حسابك بشكل جيد على موقع مستقل ونصائح لك للوصول إلى العميل الأول لك وكيفية أختيار العميل والعمل المناسب.
-
وعليكم السلام ورحمة الله وبركاته. إذا كنت قد انقطعت عن الدورة لفترة طويلة فقد تحتاج بالفعل إلى إعادة النظر إلى الدورة من الصفر وهذا بسبب أنك بالطبع ستكون نسيت ما قمت بمذاكرته ولذلك إستكمال الدورة من حيث المكان الذي توقفت عنده لن يكون جيدا وبما أنك ستنقطع سنة كاملة للدراسة فسوف تقوم بنسيان ما قمت بتعلمته في البرمجة وأيضا يجب الإنتباه إلى أن هذا الأمر يعتمد على مدى خبرتك وتقدمك في البرمجة فالمبتدئين الذين فقط لديهم الأساسيات ولم يقوموا بالتطبيق فمن الممكن الإبتعاد عن البرمجة لمدة طويلة ينسيهم كل ما تعلموه وهكذا ينبغي عليهم مراجعة ما تعلموه قبل ذلك. وأما إذا كانت مدة الإنقطاع ليست كبيرة فيمكنك مراجعة الدروس سريعا فقط مشاهدتها مع المدرب حتى تستطيع الإستذكار السريع للأمور وبعد ذلك يمكنك إستكمال التعلم من الدرس الذي توقفت عنه . ويمكنك مراجعة الإجابة التالية لتفاصيل أكثر حول كيفية مذاكرة الدورة :
-
المشكلة في ملف app\api\todos\route.ts حيث تقوم بإعادة البيانات كما هي ولكنك في الواجهة الأمامية تستقبلها من todo.todos ولهذا تحدث المشكلة . لذلك يجب إعادة البيانات بداخل كائن json لديه todos . في سطر 20 و 49 يجب ان يكونا كالتالي : return NextResponse.json({todos}, {status:200}); return NextResponse.json({todo}, {status:201}); وهذا هو الملف . route.ts
-
السلام عليكم و رحمة الله و بركاته انا طالب ثانوي وحاليا انا ادرس و دراستي سوف تنتهي خلال سنة لكن اشعر اني نسيت بعض المهارات التي اكتسبتها في رحلة تعلمي للبرمجة أريد نظام لاستعادة هذه المهارات بعد الدراسة
- 1 جواب
-
- 1
-
-
-
نعم بالفعل لقد وصلت رسالتك الى مركز المساعده ما دام ظهر لديك انه تم تسليم الرسالة . بالفعل حاليا يوجد ضغط على مركز المساعدة ومن الممكن أنه الآن يتم مراجعة مشروعك الذي قمت برفعه وسيتم تحديد موعد لمناقشة المشروع بمجرد الإنتهاء من تقيمه ومراجعته. لذلك يرجى الإنتظار قليلا لحين الرد عليك.
-
هل رسالتي وصلت الى مركز مساعدة ام يوجد ضغط اصبح ثلاث ايام من تسليم مستودع مشروع تخرج لكن لحد الان لم يتم رد
- 1 جواب
-
- 1
-
-
الاختلاف في الـ IDs بين النظامين طبيعي جدًا، والحل الأمثل هو إنشاء عمود مخصص في قاعدة البيانات داخل Laravel في جدول users أضف عمود إسمه مثلاً external_id : $table->string('external_id')->nullable()->index(); والفكرة وين : أنه عند إنشاء المستخدم في Laravel، لا تُعتبر العملية مكتملة إلا بعد إرسال البيانات إلى النظام الخارجي واسترجاع معرفه وتخزينه للمرة الاولى في هذا الحقل وبهيك بيكون عندك مفتاح مرجعي لكل عمليات المستخدم المستقبلية.
- آخر أسبوع
-
السلام عليكم. في الكود التالي: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> // global variables & constants #define NEXT 2 // represent a tree typedef struct node { int number; struct node* next[NEXT]; // [0] for left subtree and [1] for the one on right } node; // functions prototypes node* allocate_node(int number); node* find_parent(node* tree, int number); bool check(node* tree, int number); int main(void) { // tree: the root of tree - n: to allocate new memory for nodes node* tree = NULL; node* n = NULL; // array to insert const int SIZE = 7; const int numbers[SIZE] = {5, 7, 2, 6, 8, 2, 4}; // insert items automatically for (int i = 0; i < SIZE; i++) { n = allocate_node(numbers[i]); // n is the root if tree empty if (!tree) { tree = n; } else { // temp holds the address of the right parent of n node* temp = find_parent(tree, numbers[i]); // insert right or left if (numbers[i] > temp->number) { temp->next[1] = n; } else { temp->next[0] = n; } } } // try checking x int x = 50; printf("%sFound\n", check(tree, x) ? "" : "Not "); // well done! return 1; } // func1: allocating new memory node* allocate_node(int number) { node* new = NULL; new = malloc(sizeof(node)); if (!new) { exit(0); } new->number = number; for (int i = 0; i < NEXT; i++) { new->next[i] = NULL; } return new; } // func2: find the parent of a node node* find_parent(node* tree, int number) { if (!tree) { return NULL; } node* temp = tree; while (temp->next[0] || temp->next[1]) { if (number > (temp->number)) { if (temp->next[1]) { temp = temp->next[1]; continue; } return temp; } else { if (temp->next[0]) { temp = temp->next[0]; continue; } return temp; } } return temp; } // func3: search in BST bool check(node* tree, int number) { // iterative for goes through the tree for (node* temp = tree; temp; ) { // found? if (number == temp->number) { // yeah :) return true; } // go right if target greater than temp->number else if (number > (temp->number)) { temp = temp->next[1]; continue; } // go left if not temp = temp->next[0]; } // not found :( return false; } كلا دالتي البحث و إيجاد الأب للعقد الجديدة متشابهين لحد كبير. هل يمكن بطريقة أو بأخري تقليل عدد أسطر الكود. أو بمعني اَخر, هل يمكن تخزين الأسطر المتشابهة بين الدالتين في مكان ما ثم أستدعاء تلك الأسطر في كلا الدالتين أو شيئ من هذا القبيل.
- 1 جواب
-
- 1
-
-
طيب هل بعد ما اخلص الدوره الدكاء الاصطناعي استطيع انشتغل في السوق كمحلل بينات وبالاخص من البيت كبزنس او وظيفة عن بعد بحم اني طالب جامعي وهل سوف تساعدوني في دالك ؟؟؟؟
- 3 اجابة
-
- 1
-
-
طيب هل بعد ما اخلص الدوره استطيع انشتغل في السوق كمحلل بينات وبالاخص من البيت كبزنس او وظيفة عن بعد وهل سوف تساعدوني في دالك ؟؟؟؟