اذهب إلى المحتوى

عبد الوهاب بومعراف

الأعضاء
  • المساهمات

    1288
  • تاريخ الانضمام

  • تاريخ آخر زيارة

كل منشورات العضو عبد الوهاب بومعراف

  1. هذا الرمز ليس موجودا في لوحة المفاتيح لكن يمكنك كتابته من خلال التوجه إلى VSCode ثم إلى File بعدها انزل واختر Settings وفي خانة البحث قم بكتابة Font Ligatures بعدها سيظهر لك مثل الصورة: قم بالضغط على Edit in settings.json ثم سيظهر لك الملف وفي الجزء الأخير التالي: }, "terminal.integrated.defaultProfile.windows": "Command Prompt", "github.copilot.editor.enableAutoCompletions": true, "git.autofetch": true, "javascript.validate.enable": false, "github.copilot.enable": { "*": false, "plaintext": false, "markdown": false, "scminput": false, "javascript": false }, "files.autoSave": "afterDelay", "editor.fontLigatures": false } نقوم بتغيير قيمة editor.fontLigatures من False إلى True، لذا استبدل السطر التالي: "editor.fontLigatures": false بهذا السطر: "editor.fontLigatures": true هكذا سيتم استبدال الرمز != تلقائيا عند كتابتك له بالرمز هذا ≠ في VSCode. في حال كان السؤال متعلقا بإحدى الدروس في إحدى الدورات أرجو في المرة القادمة كتابة سؤالك أسفل صندوق التعليقات هناك وليس هنا في قسم الأسئلة العامة.
  2. حسب التشفير فهو نصّ طويل جدا ويتكون من مجموعة من الأحرف (A-Z, a-z, 0-9) بالإضافة إلى الرموز + و / وهي الرموز التي تستخدم عادة في ترميز Base64 كما أنّ ترميز Base64 غالبا ما يستخدم في ترميز البيانات الثنائية مثل المفاتيح أو الرسائل المشفرة، وهو يعطي مخرجات قابلة للقراءة ولكنها غير مفهومة في حال تم عرضها بشكل مباشر كما أرسلتها، فهذا النوع من الترميز لا يستخدم للتشفير بحد ذاته فهو ترميز يستخدم لتحويل البيانات الثنائية إلى نص يمكن نقله بسهولة عبر أنظمة أو بروتوكولات تحتاج لنصوص فقط مثل البريد الإلكتروني أو النصوص في JSON أو XML وهو عادة ما يكون الجزء الأخير بعد التشفير الثنائي مثل AES أو RSA، إذ يتم تحويل الناتج النهائي من التشفير إلى Base64 لنقله بشكل آمن ولهذه الأسباب يمكن معرفة أن النص قد يكون نتيجة تشفير باستخدام خوارزمية مثل AES أو RSA ثم تم تحويل الناتج إلى Base64.
  3. يتم تغيير الصورة بشكل تلقائي في حال قمت بتتبّع الخطوات الصحيحة لذلك، فأرجو اتباع الخطوات في هذه المقالة: تعديل الملف الشخصي. وفي حال استمرت المشكلة لا تتردّد في طرح المشكلة على مركز مساعدة أكاديمية حسوب من هنا: مركز المساعدة.
  4. لا تحلّ مشكلة واحدة فقط، بل العديد من المشاكل، كما أنها توفر حلولا للمشاكل الشائعة في البرمجة ممّا يسمح أيضا بإعادة استخدام الأكواد بسهولة، كما تجعل الكود أكثر تنظيما وسهل الفهم، مما يسهل صيانته وتطويره وتسمح بإضافة وظائف جديدة دون تغيير الكود الموجود بشكل كبير أعتبر أنها توفر لغة مشتركة للمطورين لوصف حلول البرمجة كما تقدم حلولا مجربة للمشاكل المعقدة في تصميم البرامج. لذا وبغض النظر عن التخصص أو اللغة التي تختارها كمبرمج، فإن تعلم Design patterns مفيد جدا وأنصح بها لأنها ستساعدك على: فهم أفضل لهيكلة البرامج. حل المشاكل بطريقة أكثر فعالية. كتابة كود أفضل وأكثر قابلية للصيانة. التواصل بشكل أفضل مع المطورين الآخرين. تحسين مهاراتك في تصميم البرمجيات. فعلى الرغم من أنه قد يكون ممكنا البرمجة دون معرفة عميقة بها إلا أن تعلمها يمكن أن يحسن مهاراتك بشكل كبير ويجعلك مبرمجا أفضل، بغض النظر عن مجال تخصصك أو اللغة التي تستخدمها.
  5. التعلم المعزز هو فرع من فروع تعلم الآلة حيث يتعلم نظام يطلق عليه "الوكيل" كيفية اتخاذ قرارات من خلال التفاعل مع بيئة معينة والهدف من هذا النوع من التعلم هو تعظيم المكافآت على المدى الطويل. أهم الجزئيات الأساسية فيه هي: الوكيل (Agent): هو الكيان الذي يتخذ القرارات بناءً على المعلومات المتاحة لديه. البيئة (Environment): هي السياق الذي يتفاعل معه الوكيل، وتتأثر حالته بالقرارات التي يتخذها الوكيل. الإجراءات (Actions): هي الخيارات المتاحة للوكيل في كل حالة. الحالة (State): هي المعلومات المتاحة للوكيل في لحظة معينة، والتي تحدد كيف يتفاعل مع البيئة. المكافأة (Reward): وهي القيمة التي يحصل عليها الوكيل نتيجة لإجراء معين، والتي تحدد مدى جودة هذا الإجراء. عند بدأ عملية التعلم نركز على هذه الخطوات: الاختيار: يبدأ الوكيل في حالة معينة ويختار إجراء بناء على استراتيجية أو سياسة معينة. التنفيذ: يتم تنفيذ الإجراء، مما يؤدي إلى تغيير في حالة البيئة. الحصول على المكافأة: بعد تنفيذ الإجراء، يحصل الوكيل على مكافأة تعكس جودة الإجراء المتخذ. التحديث: يستخدم الوكيل المعلومات المكتسبة (الحالة الجديدة والمكافأة) لتحديث استراتيجيته في اتخاذ القرارات المستقبلية. التكرار: يكرر الوكيل هذه العملية لتحسين أدائه مع مرور الوقت. والهدف هو تحقيق أقصى قدر من المكافآت عبر الزمن، مما يعني تحسين استراتيجيات الوكيل مع تزايد التجارب فالتعلم المعزز هو إطار تعلم يعتمد على التجربة والاختبار، حيث يتعلم الوكيل كيفية اتخاذ قرارات أفضل بناء على المعلومات التي يجمعها من تفاعلاته مع البيئة.
  6. البيانات النوعية (Qualitative Data) تمثل الخصائص أو الصفات التي لا يمكن قياسها بالأرقام يتم جمعها غالبا من خلال المقابلات، الاستبيانات المفتوحة، أو الملاحظات كالألوان، المشاعر، الآراء، التصنيفات أما البيانات الكمية (Quantitative Data) فتمثل القيم العددية التي يمكن قياسها وتحليلها إحصائيا يتم جمعها غالبا من خلال الاستبيانات المغلقة أو التجارب كالطول، الوزن، العمر وعدد المبيعات. البيانات الكمية تستخدم بشكل أكبر في تدريب نماذج تعلم الآلة، لأنها تسمح بإجراء تحليلات إحصائية دقيقة وتطبيق خوارزميات تعلم الآلة بشكل فعال بينما البيانات النوعية يمكن تحويلها إلى بيانات كمية مثل الترميز لتستخدم في بعض التطبيقات، لكن البيانات الكمية تظل الأكثر شيوعا في النماذج الإحصائية والتعلم الآلي.
  7. بالتأكيد يمكنك ذلك فهي مشاريع حقيقية يمكنك الإعتماد عليها في إيجاد وظائف معينة كما أنها ليست بالمشاريع البسيطة، و إنما تعتبر مشاريع متاكملة، كما يمكنك وضعها على Github و إضافتها في الportfolio الخاص بك.
  8. ليست لغة برمجة تقليدية مثل بايثون أو جافا، بل هي لغة استعلام مخصصة للتعامل مع قواعد البيانات، و تستخدم لإدارة البيانات، بما في ذلك عمليات الإدخال، التعديل، الحذف، والاستعلام عن البيانات من قاعدة البيانات، يعني SQL مصممة خصيصا لإجراء عمليات على البيانات المخزنة في قواعد البيانات العلائقية، و تحتوي على بعض الخصائص الشبيهة بلغة البرمجة، مثل الحلقات والشروط، ولكنها لا تستخدم لتطوير تطبيقات برمجية كاملة بحد ذاتها.
  9. هذه المشكلة معروفة خاصة في الإصدارات الحديثة من Android Studio وعلى الأغلب متعلقة بالجهاز، لذا قم: بفتح Android Virtual Device Manager. ثم اختر جهاز المحاكاة الخاص بك (AVD)، ثم اختر "Edit this AVD". وفي النافذة الجديدة (Virtual Device Configuration)، انتقل إلى Emulated Performance > Graphics واختر خيار Software (GLS). كما قد تكون هذه المشكلة ناتجة عن برامج تشغيل بطاقة الرسوميات إذا كانت قديمة ولا تدعم بشكل صحيح برامج التشغيل العامة لنظام Windows 8 (أو الأحدث).
  10. تلك الشهادة تعتبر من أهم الشهادات التي تقدمها جوجل في مجال دعم تكنولوجيا المعلومات (IT Support) فالشهادة مصممة للأشخاص الذين يريدون الدخول إلى مجال تكنولوجيا المعلومات بدون الحاجة إلى خبرة سابقة. ودراسة الشبكات مفيدة حتى لو لم تعمل مباشرة في مجال تكنولوجيا المعلومات للأسباب التالية: اكتساب المعرفة الأساسية فالفهم الأساسي للشبكات يساعد في فهم كيفية عمل الأنظمة التقنية المختلفة في أي مجال. تحسين مهارات التواصل من خلال فهم الشبكات فهذا سيساعدك في التفاعل مع فرق IT إذا كنت تعمل في أي بيئة تعتمد على التكنولوجيا. التطبيقات العملية لأن الكثير من الشركات تعتمد على الشبكات بشكل كبير، لذا معرفة كيفية تشغيل وصيانة الشبكات قد يكون ميزة إضافية في أي وظيفة مستقبلية. دراسة الأمن السيبراني لأن فهم الشبكات أمر ضروري للحماية من أي تهديدات أمنية. لهذا كنصيحة حتى إذا لم تخطط للعمل في مجال ال IT، فإن المعرفة الأساسية في الشبكات يمكن أن تكون قيمة جدا في التعامل مع أي بيئة تقنية متقدمة قد تندمج فيها مستقبلا.
  11. بالنسبة لبايثون تعتبر لغة عامة الاستخدام وسهلة التعلم، وتستخدم في مجموعة متنوعة من المجالات، بما في ذلك علم البيانات، تطوير البرمجيات، وتطبيقات الويب. تحتوي على مكتبات قوية مما يجعلها مفضلة في مجالات تحليل البيانات والتعلم الآلي. أما لغة R تم تصميمها خصيصا للإحصاء وتحليل البيانات، و تحتوي على مجموعة واسعة من الحزم الإحصائية وهي مشهورة في الأوساط الأكاديمية والبحثية، خاصة في تحليل البيانات الإحصائية، و كلا اللغتين تتمتعان بمجتمع قوي ودعم كبير، لكن بايثون قد تكون لها ميزة في تنوع التطبيقات بسبب استخدامها في مجالات أخرى. تستخدم google لغة R لأنها تعتبر الأفضل حاليا في التحليل الإحصائي، مما يجعله مثاليا للتعلم في سياقات تتطلب مهارات تحليلية قوية، كما تستخدم على نطاق واسع في الأبحاث والدراسات الأكاديمية، لذا قد يكون استخدامها في الكورسات مرتبطا بمحتوى أكاديمي أكثر عمقا، و تفضل بعض الشركات استخدام R في الكورسات لأنها تستهدف المتعلمين الذين يرغبون في تطوير مهارات تحليل البيانات بشكل خاص.
  12. قد تكون ملفات النظام الأساسية مفقودة أو معطوبة، مما يتسبب في عدم تحميل سطح المكتب والبرامج بشكل صحيح، أو قد يكون هناك مشكلة في تعريفات الجهاز، خصوصا كرت الشاشة أو مكونات أخرى. جرب تشغيل الوضع الآمن للتأكد من أن الملفات الأساسية للنظام ليست معطوبة: أعد تشغيل الكمبيوتر، واضغط باستمرار على F8 قبل بدء تشغيل Windows، ثم اختر الوضع الآمن مع الشبكة Safe Mode with Networking، و إذا تم تحميل النظام بشكل صحيح في الوضع الآمن، قد يكون السبب برنامج خارجي أو تعريف معطوب، و من هناك يمكنك فحص النظام باستخدام برنامج مكافحة الفيروسات أو إلغاء تثبيت البرامج المثيرة للمشاكل. يوجد أيضا حل آخر، قم بإعادة تشغيل الكمبيوتر وأدخل قرص التثبيت الخاص بـ Windows 7 أو استخدم وحدة USB قابلة للتشغيل، و اختر Repair your Computer بعد بدء التثبيت واختر أداة Startup Repair لإصلاح أي مشاكل تتعلق ببدء التشغيل. إذا استمرت المشكلة، قد تحتاج إلى إعادة تثبيت Windows 7 كحل أخير.
  13. بالنسبة ل Data Analytics فهو تحليل البيانات التحليلي و يعتبر مفهوم أوسع يشمل العديد من التقنيات والمنهجيات لتحليل البيانات، ويتضمن Data Analysis كجزء منه، فهو يشمل Data Analysis: تحليل البيانات للوصول إلى استنتاجات معينة. Predictive Analytics: التنبؤ بما قد يحدث في المستقبل بناء على البيانات الحالية. Prescriptive Analytics: تقديم توصيات بناء على التحليلات. أما مجال Data Analysis أو تحليل البيانات فهو يركز بشكل رئيسي على معالجة وفهم البيانات لإيجاد أنماط أو استخلاص نتائج معينة، و هو جزء من Data Analytics ولكنه أقل شمولا، حيث يركز فقط على تفسير البيانات الحالية. و في تعلم الآلة والتعلم العميق، التركيز الرئيسي عادة يكون على Data Analytics بشكل أوسع، حيث أنه يتطلب معالجة البيانات لضمان أن البيانات جاهزة للاستخدام في تدريب النماذج، و تحليلها لفهم الأنماط والعلاقات داخل البيانات التي تساعد في بناء النموذج، وكذا استخدام التقنيات التحليلية مثل الخوارزميات التنبؤية للتنبؤ أو التصنيف بناء على البيانات.
  14. الخطأ في هذا السطر: if arr[i] == arr[i+=1]: إذا كنت ترغب في مقارنة العنصر الحالي بالعنصر التالي، يجب تعديل الكود ليصبح بالشكل التالي: if arr[i] == arr[i + 1]:
  15. من أهم النقاط في شراء الدورات في الأكاديمية هي توفيرها مدى الحياة للطالب و بالتالي لا تحتاج الدفع مرة أخرى، لذا ففكرة التدريب لفترة محدودة غير متوفرة حاليا في الأكاديمية و لكن لازال بإمكانك الإطلاع على المسار الأول من كل دورة و الذي ربما سيكون مفيد لك لتذكر اللغات التي تريدينها، كما يمكنك في أي وقت تصفح مقالات الأكاديمية و التي تساعدك على فهم هذه اللغات أيضا.
  16. صحيح يمكنك إنشاء عناصر label وinput بدون الحاجة إلى استخدام عنصر form، حيث يمكن استخدامهما بشكل مستقل، لكن يجب أن تعرف أن استخدام form يوفر لك مزايا إضافية مثل إمكانية إرسال البيانات إلى خادم، فعندما تستخدم label وinput بمفردهما، سيكون لديك تفاعل أساسي بين المستخدم والعناصر، فإذا كنت بحاجة فقط إلى جمع البيانات محليا أو التعامل معها باستخدام JavaScript دون إرسالها إلى الخادم، يمكنك الاستغناء عن form، أما إذا كنت بحاجة إلى إرسال البيانات، فالأفضل استخدامها لاحتواء input وlabel.
  17. نعم الدالة round في مكتبة NumPy تستخدم لتقريب الأرقام إلى أقرب عدد عشري وفقا لعدد محدد من المنازل العشرية بهذا الشكل: import numpy as np arr = np.array([1.234, 2.678, 3.456]) rounded_arr = np.round(arr, decimals=2) print(rounded_arr) و الناتج سيكون : [1.23 2.68 3.46] حيث أن هذا المثال يقرب الأرقام إلى منزلتين عشريتين.
  18. الغرض من predict فهي لتوقع النتائج بناء على مدخلات جديدة، حيث تأخذ النموذج المدرب وتطبق البيانات الجديدة التي لم تستخدم أثناء التدريب للحصول على التنبؤات، و يعطي مخرجات النموذج مثل القيم المتوقعة أو الفئات المتوقعة. أما evaluate فهي لتقييم أداء النموذج على مجموعة بيانات، حيث تأخذ النموذج المدرب وتطبقه على مجموعة بيانات و التي تكون بيانات اختبار لحساب المقاييس مثل الدقة، الخسارة، وغيرها.
  19. بالنسبة لمصطلح Epoch هو عبارة عن مرور واحد كامل على جميع بيانات التدريب، حيث إذا كان لديك مجموعة بيانات مكونة من 5000 عينة، فإن Epoch واحدة تعني أن الشبكة مرت على كل هذه العينات مرة واحدة. أما Batch Size هو عدد العينات التي تمررها إلى الشبكة في خطوة واحدة قبل تحديث الأوزان، فإذا كان لديك Batch Size = 100، فإن الشبكة ستعالج 100 عينة في كل خطوة قبل أن تقوم بعملية تحديث الأوزان. والعلاقة بينهما هو أنه عندما يكون لديك عدد معين من العينات في مجموعة التدريب، فإن عدد الخطوات داخل كل Epoch يساوي عدد العينات مقسوما على Batch Size، فمثلا لو كان لديك 5000 عينة وBatch Size = 100، فسيكون لديك 50 خطوة في كل Epoch. و هما مهمان في في بناء الشبكة العصبية ف Batch Size يؤثر على الذاكرة المستخدمة وسرعة التدريب، و القيم الصغيرة تجعل التدريب بطيئا ولكن أكثر دقة في تقدير التدرجات، بينما القيم الكبيرة قد تسرع التدريب ولكنها تحتاج إلى ذاكرة أكبر وتقديرات أقل دقة للتدرجات. أما Epochs يحدد عدد المرات التي سترى فيها الشبكة كامل البيانات، و زيادة عدد Epochs يمكن أن يؤدي إلى تحسين دقة النموذج، ولكن قد يؤدي أيضا إلى الإفراط في التكيف أو overfitting إذا كان العدد كبيرا جدا.
  20. حل المشاكل باستخدام الخوارزميات يعد جزءا مهما من البرمجة وتطوير البرمجيات و يتعبر تعلم الخوارزميات القاعدة الأساسية لدخول عالم البرمجة و عالم علوم الحسوب، و هناك عدة مراحل يجب عليك إتباعها لحل هذه المشاكل، حيث يتعين عليك فهم المشكلة قبل محاولة حلها، ثم تقسم المشكلة إلى أجزاء أصغر يمكن التحكم فيها، و حاول تحديد الأنماط أو الحلول المتكررة، كما أن رسم مخطط تدفق أو استخدام طريقة أخرى لتوضيح خطوات الحل قبل كتابة الكود يعتبر أمر جيد لتسهيل كتابة الكود فيما بعد، و بعد الإنتهاء اختبر الحل الخاص بك للتأكد من أنه يعمل بشكل صحيح وقم بتحسينه لتحسين الأداء إذا لزم الأمر. و يمكنك الإطلاع على هذه المقالات التي ستفيدك و تعطيك فكرة أفضل عن الخوازميات: https://wiki.hsoub.com/Algorithms
  21. تأكد من أن كلمة المرور التي وضعتها صحيحة و فيحالة لم تضع كلمة مرور عند التثبيت، يمكنك تعديل الكود ليكون بدون كلمة مرور كما يلي: mydb = mysql.connector.connect( host="localhost", user="root" ) و أيضا تأكد من أن خادم MySQL يعمل بالفعل على جهازك.
  22. امتحانات مايكروسوفت تشمل مجموعة متنوعة من الشهادات التي تركز على مهارات وتقنيات مختلفة، بعض الشهادات البارزة تشمل: Microsoft Certified: Azure Fundamentals Microsoft Certified: Azure Administrator Associate Microsoft Certified: Azure Solutions Architect Expert Microsoft Certified: Power Platform Fundamentals Microsoft Certified: Microsoft 365 Fundamentals هذه الشهادات تغطي مواضيع تتعلق بالحوسبة السحابية، وإدارة الأنظمة، وتحليل البيانات، وغيرها من المجالات التقنية، و يمكنك اختيار الشهادة التي تناسب اهتماماتك واحتياجاتك المهنية.
  23. من المهم بعد أن تكمل المشروع حاول كتابة توثيق جيد له يوضح الهدف منه، البيانات المستخدمة، طريقة معالجة البيانات، النماذج المطبقة، والنتائج، مع توضيح الأفكار بشكل جيد فهذا يساعد في تسهيل فهم الآخرين لمشروعك ويساعدك أيضا عند العودة للمشروع لاحقا. بالنسبة لمشاركة المشروع إذا كان عبارة عن كود ومخطط عام لتطبيق تعلم الآلة GitHub هو الخيار المثالي، حيث يمكنك نشر المشروع مع كود المصدر، وربما إضافة README جيد يوضح كيفية استخدام المشروع وتطبيقه، كما يمكنك مشاركة Notebook يشرح خطوات تنفيذ المشروع بشكل تفصيلي على Kaggle، و بهذه الطريقة يمكنك الحصول على تعليقات من المجتمع وتحسين مشروعك بناء على ذلك. و أهم شيء لا تنسى إضافته في معرض أعمالك على موقع مستقل فهذا الأمر يزيد من فرص توظيفك أكثر في المستقبل.
  24. foreach و fetch هما طريقتان مختلفتان للتعامل مع البيانات المسترجعة من قاعدة البيانات، ولكن لهما استخدامات ومزايا مختلفة فمثلا fetch تستخدم لاسترجاع صف واحد من نتائج الاستعلام في قاعدة البيانات وغالبا ما تستخدم هذه الدالة في حلقات while أو مع for لاسترجاع جميع الصفوف وعندما نريد معالجة صف واحد في كل مرة، مما يجعلها مناسبة عندما تكون لديك استعلامات تعيد صفوفا واحدة تلو الأخرى. أما foreach فنستخدمها لتكرار مجموعة من العناصر (مثل array أو object) كما يمكن استخدامها مع البيانات التي تم تحويلها إلى array بعد استرجاعها من قاعدة البيانات وهي مناسبة عندما نريد التعامل مع جميع العناصر في مجموعة دفعة واحدة، مما يجعلها مناسبة للبيانات التي تم تخزينها في مصفوفة.
  25. بالنسبة للكود الأول الطريقة place() تعمل لكن لا يتم تحديد الحجم الإجباري للإطار (Frame) وبدون تحديد الحجم، لن يظهر الإطار حتى لو تم تعيين الموقع والحل في إضافة الحجم للإطار باستخدام الخاصية width و height: from tkinter import * moha = Tk() moha.geometry("300x200") frame = Frame(moha, bg="red", width=300, height=200) frame.place(x=1, y=1) moha.mainloop() وسيظهر هكذا: بالنسبة للكود الثاني فالطريقة pack() تقوم بترتيب العناصر تلقائيا ولكنها تعتمد على ما إذا كان هناك محتوى داخل Frame وفي حال كان الإطار فارغا، قد لا يظهر شيء لأن pack() لا تعين حجما تلقائيا والحل أيضا مثل الكود السابق يجب تحديد الحجم للإطار لضمان ظهور: from tkinter import * moha = Tk() moha.geometry("300x200") frame = Frame(moha, bg="red", width=300, height=200) frame.pack() moha.mainloop() بينما الكود الأخير هناك خطأ مطبعي فالكتابة الصحيحة هي grid() وليس grad() وأيضا كلمة culomn خاطئة يجب أن تكون column لذا نصححه إلى: from tkinter import * moha = Tk() moha.geometry("300x200") frame = Frame(moha, bg="red", width=300, height=200) frame.grid(row=0, column=0) moha.mainloop()
×
×
  • أضف...