|
| 1 | +<!-- |
| 2 | +CO_OP_TRANSLATOR_METADATA: |
| 3 | +{ |
| 4 | + "original_hash": "cc2e18ab65df63e75d3619c4752e9b22", |
| 5 | + "translation_date": "2025-10-03T11:02:42+00:00", |
| 6 | + "source_file": "AGENTS.md", |
| 7 | + "language_code": "ar" |
| 8 | +} |
| 9 | +--> |
| 10 | +# AGENTS.md |
| 11 | + |
| 12 | +## نظرة عامة على المشروع |
| 13 | + |
| 14 | +"علم البيانات للمبتدئين" هو منهج شامل لمدة 10 أسابيع و20 درسًا تم إنشاؤه بواسطة Microsoft Azure Cloud Advocates. المستودع هو مورد تعليمي يشرح مفاهيم علم البيانات الأساسية من خلال دروس قائمة على المشاريع، بما في ذلك دفاتر Jupyter، اختبارات تفاعلية، وتكليفات عملية. |
| 15 | + |
| 16 | +**التقنيات الرئيسية:** |
| 17 | +- **دفاتر Jupyter**: الوسيلة التعليمية الأساسية باستخدام Python 3 |
| 18 | +- **مكتبات Python**: pandas، numpy، matplotlib لتحليل البيانات وتصويرها |
| 19 | +- **Vue.js 2**: تطبيق الاختبارات (مجلد quiz-app) |
| 20 | +- **Docsify**: مولد مواقع التوثيق للوصول دون اتصال |
| 21 | +- **Node.js/npm**: إدارة الحزم لمكونات JavaScript |
| 22 | +- **Markdown**: جميع محتويات الدروس والتوثيق |
| 23 | + |
| 24 | +**الهيكلية:** |
| 25 | +- مستودع تعليمي متعدد اللغات مع ترجمات واسعة النطاق |
| 26 | +- مُنظم في وحدات دروس (من 1-Introduction إلى 6-Data-Science-In-Wild) |
| 27 | +- كل درس يتضمن README، دفاتر، تكليفات، واختبارات |
| 28 | +- تطبيق اختبارات مستقل باستخدام Vue.js لتقييم ما قبل/ما بعد الدرس |
| 29 | +- دعم GitHub Codespaces وحاويات التطوير في VS Code |
| 30 | + |
| 31 | +## أوامر الإعداد |
| 32 | + |
| 33 | +### إعداد المستودع |
| 34 | +```bash |
| 35 | +# Clone the repository (if not already cloned) |
| 36 | +git clone https://github.com/microsoft/Data-Science-For-Beginners.git |
| 37 | +cd Data-Science-For-Beginners |
| 38 | +``` |
| 39 | + |
| 40 | +### إعداد بيئة Python |
| 41 | +```bash |
| 42 | +# Create a virtual environment (recommended) |
| 43 | +python -m venv venv |
| 44 | +source venv/bin/activate # On Windows: venv\Scripts\activate |
| 45 | + |
| 46 | +# Install common data science libraries (no requirements.txt exists) |
| 47 | +pip install jupyter pandas numpy matplotlib seaborn scikit-learn |
| 48 | +``` |
| 49 | + |
| 50 | +### إعداد تطبيق الاختبارات |
| 51 | +```bash |
| 52 | +# Navigate to quiz app |
| 53 | +cd quiz-app |
| 54 | + |
| 55 | +# Install dependencies |
| 56 | +npm install |
| 57 | + |
| 58 | +# Start development server |
| 59 | +npm run serve |
| 60 | + |
| 61 | +# Build for production |
| 62 | +npm run build |
| 63 | + |
| 64 | +# Lint and fix files |
| 65 | +npm run lint |
| 66 | +``` |
| 67 | + |
| 68 | +### خادم توثيق Docsify |
| 69 | +```bash |
| 70 | +# Install Docsify globally |
| 71 | +npm install -g docsify-cli |
| 72 | + |
| 73 | +# Serve documentation locally |
| 74 | +docsify serve |
| 75 | + |
| 76 | +# Documentation will be available at localhost:3000 |
| 77 | +``` |
| 78 | + |
| 79 | +### إعداد مشاريع التصوير |
| 80 | +بالنسبة لمشاريع التصوير مثل meaningful-visualizations (الدرس 13): |
| 81 | +```bash |
| 82 | +# Navigate to starter or solution folder |
| 83 | +cd 3-Data-Visualization/13-meaningful-visualizations/starter |
| 84 | + |
| 85 | +# Install dependencies |
| 86 | +npm install |
| 87 | + |
| 88 | +# Start development server |
| 89 | +npm run serve |
| 90 | + |
| 91 | +# Build for production |
| 92 | +npm run build |
| 93 | + |
| 94 | +# Lint files |
| 95 | +npm run lint |
| 96 | +``` |
| 97 | + |
| 98 | + |
| 99 | +## سير العمل التطويري |
| 100 | + |
| 101 | +### العمل مع دفاتر Jupyter |
| 102 | +1. تشغيل Jupyter في جذر المستودع: `jupyter notebook` |
| 103 | +2. الانتقال إلى مجلد الدرس المطلوب |
| 104 | +3. فتح ملفات `.ipynb` للعمل على التمارين |
| 105 | +4. الدفاتر مكتفية ذاتيًا مع شروحات وخلايا أكواد |
| 106 | +5. معظم الدفاتر تستخدم pandas، numpy، وmatplotlib - تأكد من تثبيتها |
| 107 | + |
| 108 | +### هيكلية الدرس |
| 109 | +كل درس يحتوي عادةً على: |
| 110 | +- `README.md` - محتوى الدرس الرئيسي مع النظرية والأمثلة |
| 111 | +- `notebook.ipynb` - تمارين عملية باستخدام دفاتر Jupyter |
| 112 | +- `assignment.ipynb` أو `assignment.md` - تكليفات عملية |
| 113 | +- مجلد `solution/` - دفاتر الحلول والأكواد |
| 114 | +- مجلد `images/` - مواد بصرية داعمة |
| 115 | + |
| 116 | +### تطوير تطبيق الاختبارات |
| 117 | +- تطبيق Vue.js 2 مع إعادة تحميل فوري أثناء التطوير |
| 118 | +- الاختبارات مخزنة في `quiz-app/src/assets/translations/` |
| 119 | +- لكل لغة مجلد ترجمة خاص بها (en، fr، es، إلخ) |
| 120 | +- ترقيم الاختبارات يبدأ من 0 ويصل إلى 39 (40 اختبارًا إجمالاً) |
| 121 | + |
| 122 | +### إضافة الترجمات |
| 123 | +- الترجمات تُضاف في مجلد `translations/` في جذر المستودع |
| 124 | +- لكل لغة هيكلية دروس كاملة مشابهة للإنجليزية |
| 125 | +- ترجمة تلقائية عبر GitHub Actions (co-op-translator.yml) |
| 126 | + |
| 127 | +## تعليمات الاختبار |
| 128 | + |
| 129 | +### اختبار تطبيق الاختبارات |
| 130 | +```bash |
| 131 | +cd quiz-app |
| 132 | + |
| 133 | +# Run lint checks |
| 134 | +npm run lint |
| 135 | + |
| 136 | +# Test build process |
| 137 | +npm run build |
| 138 | + |
| 139 | +# Manual testing: Start dev server and verify quiz functionality |
| 140 | +npm run serve |
| 141 | +``` |
| 142 | + |
| 143 | +### اختبار الدفاتر |
| 144 | +- لا يوجد إطار اختبار تلقائي للدفاتر |
| 145 | +- التحقق اليدوي: تشغيل جميع الخلايا بالتسلسل للتأكد من عدم وجود أخطاء |
| 146 | +- التحقق من الوصول إلى ملفات البيانات وتوليد المخرجات بشكل صحيح |
| 147 | +- التأكد من عرض التصورات بشكل صحيح |
| 148 | + |
| 149 | +### اختبار التوثيق |
| 150 | +```bash |
| 151 | +# Verify Docsify renders correctly |
| 152 | +docsify serve |
| 153 | + |
| 154 | +# Check for broken links manually by navigating through content |
| 155 | +# Verify all lesson links work in the rendered documentation |
| 156 | +``` |
| 157 | + |
| 158 | +### فحوصات جودة الأكواد |
| 159 | +```bash |
| 160 | +# Vue.js projects (quiz-app and visualization projects) |
| 161 | +cd quiz-app # or visualization project folder |
| 162 | +npm run lint |
| 163 | + |
| 164 | +# Python notebooks - manual verification recommended |
| 165 | +# Ensure imports work and cells execute without errors |
| 166 | +``` |
| 167 | + |
| 168 | + |
| 169 | +## إرشادات نمط الأكواد |
| 170 | + |
| 171 | +### Python (دفاتر Jupyter) |
| 172 | +- اتباع إرشادات نمط PEP 8 لأكواد Python |
| 173 | +- استخدام أسماء متغيرات واضحة تشرح البيانات التي يتم تحليلها |
| 174 | +- تضمين خلايا Markdown مع شروحات قبل خلايا الأكواد |
| 175 | +- التركيز على مفاهيم أو عمليات محددة في خلايا الأكواد |
| 176 | +- استخدام pandas لمعالجة البيانات، matplotlib للتصور |
| 177 | +- نمط الاستيراد الشائع: |
| 178 | + ```python |
| 179 | + import pandas as pd |
| 180 | + import numpy as np |
| 181 | + import matplotlib.pyplot as plt |
| 182 | + ``` |
| 183 | + |
| 184 | + |
| 185 | +### JavaScript/Vue.js |
| 186 | +- اتباع دليل نمط Vue.js 2 وأفضل الممارسات |
| 187 | +- تكوين ESLint في `quiz-app/package.json` |
| 188 | +- استخدام مكونات Vue ذات الملف الواحد (.vue files) |
| 189 | +- الحفاظ على هيكلية قائمة على المكونات |
| 190 | +- تشغيل `npm run lint` قبل تقديم التغييرات |
| 191 | + |
| 192 | +### توثيق Markdown |
| 193 | +- استخدام تسلسل واضح للعناوين (# ## ### إلخ) |
| 194 | +- تضمين كتل الأكواد مع محددات اللغة |
| 195 | +- إضافة نصوص بديلة للصور |
| 196 | +- الربط بالدروس والموارد ذات الصلة |
| 197 | +- الحفاظ على طول السطور معقولًا لسهولة القراءة |
| 198 | + |
| 199 | +### تنظيم الملفات |
| 200 | +- محتوى الدروس في مجلدات مرقمة (01-defining-data-science، إلخ) |
| 201 | +- الحلول في مجلدات فرعية مخصصة `solution/` |
| 202 | +- الترجمات تعكس الهيكلية الإنجليزية في مجلد `translations/` |
| 203 | +- الاحتفاظ بملفات البيانات في `data/` أو مجلدات خاصة بالدروس |
| 204 | + |
| 205 | +## البناء والنشر |
| 206 | + |
| 207 | +### نشر تطبيق الاختبارات |
| 208 | +```bash |
| 209 | +cd quiz-app |
| 210 | + |
| 211 | +# Build production version |
| 212 | +npm run build |
| 213 | + |
| 214 | +# Output is in dist/ folder |
| 215 | +# Deploy dist/ folder to static hosting (Azure Static Web Apps, Netlify, etc.) |
| 216 | +``` |
| 217 | + |
| 218 | +### نشر تطبيقات Azure Static Web |
| 219 | +يمكن نشر quiz-app على Azure Static Web Apps: |
| 220 | +1. إنشاء مورد Azure Static Web App |
| 221 | +2. الاتصال بمستودع GitHub |
| 222 | +3. تكوين إعدادات البناء: |
| 223 | + - موقع التطبيق: `quiz-app` |
| 224 | + - موقع الإخراج: `dist` |
| 225 | +4. سير عمل GitHub Actions سيقوم بالنشر تلقائيًا عند الدفع |
| 226 | + |
| 227 | +### موقع التوثيق |
| 228 | +```bash |
| 229 | +# Build PDF from Docsify (optional) |
| 230 | +npm run convert |
| 231 | + |
| 232 | +# Docsify documentation is served directly from markdown files |
| 233 | +# No build step required for deployment |
| 234 | +# Deploy repository to static hosting with Docsify |
| 235 | +``` |
| 236 | + |
| 237 | +### GitHub Codespaces |
| 238 | +- المستودع يتضمن تكوين حاوية التطوير |
| 239 | +- Codespaces يقوم تلقائيًا بإعداد بيئة Python وNode.js |
| 240 | +- فتح المستودع في Codespace عبر واجهة GitHub |
| 241 | +- تثبيت جميع التبعيات تلقائيًا |
| 242 | + |
| 243 | +## إرشادات طلبات السحب |
| 244 | + |
| 245 | +### قبل التقديم |
| 246 | +```bash |
| 247 | +# For Vue.js changes in quiz-app |
| 248 | +cd quiz-app |
| 249 | +npm run lint |
| 250 | +npm run build |
| 251 | + |
| 252 | +# Test changes locally |
| 253 | +npm run serve |
| 254 | +``` |
| 255 | + |
| 256 | +### تنسيق عنوان طلب السحب |
| 257 | +- استخدام عناوين واضحة وواصفة |
| 258 | +- التنسيق: `[المكون] وصف مختصر` |
| 259 | +- أمثلة: |
| 260 | + - `[Lesson 7] إصلاح خطأ استيراد في دفتر Python` |
| 261 | + - `[Quiz App] إضافة ترجمة ألمانية` |
| 262 | + - `[Docs] تحديث README بمتطلبات جديدة` |
| 263 | + |
| 264 | +### الفحوصات المطلوبة |
| 265 | +- التأكد من تشغيل جميع الأكواد دون أخطاء |
| 266 | +- التحقق من تنفيذ الدفاتر بالكامل |
| 267 | +- التأكد من بناء تطبيقات Vue.js بنجاح |
| 268 | +- التحقق من عمل روابط التوثيق |
| 269 | +- اختبار تطبيق الاختبارات إذا تم تعديله |
| 270 | +- التحقق من الحفاظ على هيكلية الترجمات |
| 271 | + |
| 272 | +### إرشادات المساهمة |
| 273 | +- اتباع نمط الأكواد والأنماط الموجودة |
| 274 | +- إضافة تعليقات تفسيرية للمنطق المعقد |
| 275 | +- تحديث التوثيق ذي الصلة |
| 276 | +- اختبار التغييرات عبر وحدات الدروس المختلفة إذا كان ذلك ممكنًا |
| 277 | +- مراجعة ملف CONTRIBUTING.md |
| 278 | + |
| 279 | +## ملاحظات إضافية |
| 280 | + |
| 281 | +### المكتبات الشائعة الاستخدام |
| 282 | +- **pandas**: معالجة وتحليل البيانات |
| 283 | +- **numpy**: الحوسبة العددية |
| 284 | +- **matplotlib**: التصور ورسم البيانات |
| 285 | +- **seaborn**: التصور الإحصائي للبيانات (بعض الدروس) |
| 286 | +- **scikit-learn**: التعلم الآلي (الدروس المتقدمة) |
| 287 | + |
| 288 | +### العمل مع ملفات البيانات |
| 289 | +- ملفات البيانات موجودة في مجلد `data/` أو مجلدات خاصة بالدروس |
| 290 | +- معظم الدفاتر تتوقع ملفات البيانات في مسارات نسبية |
| 291 | +- ملفات CSV هي تنسيق البيانات الأساسي |
| 292 | +- بعض الدروس تستخدم JSON لأمثلة البيانات غير العلائقية |
| 293 | + |
| 294 | +### دعم متعدد اللغات |
| 295 | +- أكثر من 40 ترجمة لغوية عبر GitHub Actions تلقائيًا |
| 296 | +- سير عمل الترجمة في `.github/workflows/co-op-translator.yml` |
| 297 | +- الترجمات في مجلد `translations/` مع رموز اللغات |
| 298 | +- ترجمات الاختبارات في `quiz-app/src/assets/translations/` |
| 299 | + |
| 300 | +### خيارات بيئة التطوير |
| 301 | +1. **التطوير المحلي**: تثبيت Python، Jupyter، Node.js محليًا |
| 302 | +2. **GitHub Codespaces**: بيئة تطوير سحابية فورية |
| 303 | +3. **VS Code Dev Containers**: تطوير محلي قائم على الحاويات |
| 304 | +4. **Binder**: تشغيل الدفاتر في السحابة (إذا تم تكوينه) |
| 305 | + |
| 306 | +### إرشادات محتوى الدروس |
| 307 | +- كل درس مكتفٍ ذاتيًا ولكنه يبني على المفاهيم السابقة |
| 308 | +- اختبارات ما قبل الدرس تختبر المعرفة السابقة |
| 309 | +- اختبارات ما بعد الدرس تعزز التعلم |
| 310 | +- التكليفات توفر ممارسة عملية |
| 311 | +- الرسومات التخطيطية تقدم ملخصات بصرية |
| 312 | + |
| 313 | +### استكشاف المشكلات الشائعة |
| 314 | + |
| 315 | +**مشكلات Kernel في Jupyter:** |
| 316 | +```bash |
| 317 | +# Ensure correct kernel is installed |
| 318 | +python -m ipykernel install --user --name=datascience |
| 319 | +``` |
| 320 | + |
| 321 | +**فشل تثبيت npm:** |
| 322 | +```bash |
| 323 | +# Clear npm cache and retry |
| 324 | +npm cache clean --force |
| 325 | +rm -rf node_modules package-lock.json |
| 326 | +npm install |
| 327 | +``` |
| 328 | + |
| 329 | +**أخطاء الاستيراد في الدفاتر:** |
| 330 | +- التحقق من تثبيت جميع المكتبات المطلوبة |
| 331 | +- التحقق من توافق إصدار Python (يوصى بـ Python 3.7+) |
| 332 | +- التأكد من تنشيط البيئة الافتراضية |
| 333 | + |
| 334 | +**Docsify لا يعمل:** |
| 335 | +- التحقق من أنك تقدم الخدمة من جذر المستودع |
| 336 | +- التحقق من وجود `index.html` |
| 337 | +- التأكد من الوصول الصحيح للشبكة (المنفذ 3000) |
| 338 | + |
| 339 | +### اعتبارات الأداء |
| 340 | +- قد تستغرق مجموعات البيانات الكبيرة وقتًا للتحميل في الدفاتر |
| 341 | +- عرض التصورات قد يكون بطيئًا للرسومات المعقدة |
| 342 | +- خادم التطوير في Vue.js يتيح إعادة تحميل فوري للتكرار السريع |
| 343 | +- بناء الإنتاج يتم تحسينه وتصغيره |
| 344 | + |
| 345 | +### ملاحظات الأمان |
| 346 | +- لا يجب تقديم أي بيانات حساسة أو بيانات اعتماد |
| 347 | +- استخدام متغيرات البيئة لأي مفاتيح API في دروس السحابة |
| 348 | +- قد تتطلب دروس Azure بيانات اعتماد حساب Azure |
| 349 | +- الحفاظ على تحديث التبعيات لتصحيحات الأمان |
| 350 | + |
| 351 | +## المساهمة في الترجمات |
| 352 | +- الترجمات التلقائية تُدار عبر GitHub Actions |
| 353 | +- التصحيحات اليدوية مرحب بها لتحسين دقة الترجمة |
| 354 | +- اتباع هيكلية مجلدات الترجمة الموجودة |
| 355 | +- تحديث روابط الاختبارات لتضمين معلمة اللغة: `?loc=fr` |
| 356 | +- اختبار الدروس المترجمة للتأكد من عرضها بشكل صحيح |
| 357 | + |
| 358 | +## الموارد ذات الصلة |
| 359 | +- المنهج الرئيسي: https://aka.ms/datascience-beginners |
| 360 | +- Microsoft Learn: https://docs.microsoft.com/learn/ |
| 361 | +- مركز الطلاب: https://docs.microsoft.com/learn/student-hub |
| 362 | +- منتدى المناقشة: https://github.com/microsoft/Data-Science-For-Beginners/discussions |
| 363 | +- مناهج Microsoft الأخرى: ML للمبتدئين، AI للمبتدئين، تطوير الويب للمبتدئين |
| 364 | + |
| 365 | +## صيانة المشروع |
| 366 | +- تحديثات منتظمة للحفاظ على المحتوى محدثًا |
| 367 | +- مساهمات المجتمع مرحب بها |
| 368 | +- تتبع المشكلات على GitHub |
| 369 | +- مراجعة طلبات السحب بواسطة مشرفي المنهج |
| 370 | +- مراجعات وتحديثات شهرية للمحتوى |
| 371 | + |
| 372 | +--- |
| 373 | + |
| 374 | +**إخلاء المسؤولية**: |
| 375 | +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. |
0 commit comments