Files
vibe-coding-college-specs/chapters/03-workspace-setup/08-quiz-workspace-setup/spec.md

196 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# مشخصات آزمون تستی: راه‌اندازی محیط کار و ابزارها (Workspace Setup Quiz)
- **شناسه در سیلابس:** `Q3.1`
- **فصل:** فصل ۳: راه‌اندازی محیط کار (Ch 3)
- **نوع محتوا:** 📝 آزمون تستی خودکار کوئرا کالج (Practical & Conceptual Multiple-Choice Quiz)
- **بارم امتیاز:** ۱۰۰ امتیاز (۱۰ سوال چهارگزینه‌ای کاربردی × ۱۰ امتیاز)
- **زمان تقریبی پاسخگویی:** ۱۵ دقیقه
- **پیش‌نیازهای مستقیم:** مطالعه کامل درس‌نامه‌های `L3.1` تا `L3.8`
---
## ۱. اهداف ارزیابی و توزیع سوالات (Assessment Objectives)
این آزمون برای سنجش تسلط عملی و مفهومی دانشجو بر راه‌اندازی سیستم، ویرایشگرهای دسکتاپ، ایجنت‌های ترمینال، ابزارهای وب، گیت، پروتکل MCP و معماری فایل‌های پروژه طراحی شده است. توزیع ۱۰ سوال آزمون به شرح زیر است:
| شماره سوال | درس مرجع | مفهوم مورد سنجش | سطح شناختی (Bloom) | بارم |
| :---: | :---: | :--- | :---: | :---: |
| **سوال ۱** | `L3.2` | نقش Node.js LTS و علت ارجحیت آن بر نسخه Current در محیط توسعه | Understand | ۱۰ |
| **سوال ۲** | `L3.2` | علت خطای اسکریپت در PowerShell ویندوز و فرمان رفع ایمن آن | Apply | ۱۰ |
| **سوال ۳** | `L3.3` | تفکیک حالت چت تک‌فایلی (`Ctrl+L`) از کامپوزر چندفایلی (`Ctrl+I`) در Cursor | Understand | ۱۰ |
| **سوال ۴** | `L3.3` | اهمیت مهاجرت تنظیمات و عملکرد ابزارهای دسکتاپ مانند Antigravity و ChatGPT | Understand | ۱۰ |
| **سوال ۵** | `L3.4` | سازوکار امنیتی ایجنت‌های ترمینال (Claude Code) و چرخه تایید دستورات شل | Evaluate | ۱۰ |
| **سوال ۶** | `L3.5` | پل ارتباطی استراتژی دومسیره: انتقال کد از Lovable/Bolt به GitHub و ادیتور محلی | Apply | ۱۰ |
| **سوال ۷** | `L3.6` | استعاره ماشین زمان در Git و چرخه ۳ گام اصلی ذخیره و ارسال تغییرات | Apply | ۱۰ |
| **سوال ۸** | `L3.6` | کارکرد حیاتی فایل `.gitignore` در محافظت از رمزها و پوشه‌های سنگین | Evaluate | ۱۰ |
| **سوال ۹** | `L3.7` | تفاوت مهارت‌ها (`.cursorrules`) با ابزارهای اجرایی تحت پروتکل MCP | Understand | ۱۰ |
| **سوال ۱۰** | `L3.8` | کالبدشکافی `package.json`، بازسازی `node_modules` و محرمانگی `.env` | Evaluate | ۱۰ |
---
## ۲. مشخصات و سناریوی سوالات ده‌گانه (Question Bank Specifications)
### سوال ۱: انتخاب نسخه استاندارد Node.js (`L3.2`)
* **صورت سوال:** هنگام نصب Node.js برای شروع توسعه وب و وایب کدینگ، چرا توصیه می‌شود حتماً نسخه LTS (پایدار) به جای نسخه Current (آخرین تغییرات) دانلود و نصب گردد؟
* الف) نسخه Current فاقد مدیر بسته npm است و باید آن را دستی نصب کرد.
* ب) نسخه LTS حداکثر پایداری، سازگاری با کتابخانه‌های اکوسیستم و کمترین خطاهای ناشناخته را برای پروژه‌ها فراهم می‌کند.
* ج) نسخه Current فقط روی سیستم‌عامل لینوکس قابل اجراست و روی ویندوز کار نمی‌کند.
* د) نسخه LTS مصرف اینترنت و حجم دانلود بسیار کمتری دارد.
* **گزینه صحیح:** **ب**
* **تحلیل گزینه‌های گمراه‌کننده:**
* گزینه الف نادرست است زیرا هر دو نسخه همراه با npm عرضه می‌شوند.
* گزینه ج غلط است؛ هر دو نسخه برای ویندوز، مک و لینوکس موجودند.
* گزینه د نادرست است؛ تفاوت در پایداری طولانی‌مدت (Long Term Support) و ثبات سازگاری پکیج‌هاست.
---
### سوال ۲: حل خطای دسترسی اسکریپت در ویندوز (`L3.2`)
* **صورت سوال:** کاربری در سیستم‌عامل ویندوز قصد اجرای دستورات خط فرمان یا ابزارهای پکیج را دارد اما با خطای قرمزرنگ `running scripts is disabled on this system` متوقف می‌شود. کدام اقدام استاندارد و امن این مشکل را حل می‌کند؟
* الف) حذف کامل پوشه ویندوز و نصب مجدد سیستم‌عامل.
* ب) اجرای دستور `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser` در محیط PowerShell.
* ج) تغییر نام فایل‌های پروژه به پسوند `.txt`.
* د) غیرفعال کردن همیشگی فایروال ویندوز و آنتی‌ویروس.
* **گزینه صحیح:** **ب**
* **تحلیل گزینه‌های گمراه‌کننده:**
* گزینه ب روش رسمی و امن مایکروسافت برای صدور اجازه اجرای اسکریپت‌های محلی برای کاربر جاری سیستم است. سایر گزینه‌ها نامربوط، مخرب یا خطرناک هستند.
---
### سوال ۳: پنل چت در برابر حالت کامپوزر در ادیتور Cursor (`L3.3`)
* **صورت سوال:** در ویرایشگر هوشمند Cursor، چه تفاوت کلیدی میان فشردن کلید میانبر `Ctrl+L` (پنل چت) و `Ctrl+I` (کامپوزر / ایجنت چندفایلی) وجود دارد؟
* الف) کلید `Ctrl+L` فایل‌ها را پاک می‌کند، اما `Ctrl+I` فایل جدید می‌سازد.
* ب) کلید `Ctrl+L` برای پرسیدن سوالات و تحلیل یک بخش مشخص از کد است؛ در حالی که `Ctrl+I` (کامپوزر) مانند یک ایجنت تمام‌عیار می‌تواند کدهای چندین فایل مختلف پروژه را هم‌زمان ایجاد یا ویرایش کند.
* ج) پنل چت به اینترنت متصل نیست، اما کامپوزر به اینترنت متصل است.
* د) کلید `Ctrl+I` تنها در نسخه مک‌اواس کار می‌کند و در ویندوز غیرفعال است.
* **گزینه صحیح:** **ب**
* **تحلیل گزینه‌های گمراه‌کننده:**
* گزینه ب تمایز بنیادین میان سوال/جواب موضعی با حالت ارکستراسیون چندفایلی ایجنت را بیان می‌کند. سایر گزینه‌ها کاملاً نادرست هستند.
---
### سوال ۴: اکوسیستم ادیتورها و همراهان هوشمند (`L3.3`)
* **صورت سوال:** ادیتورهای مدرن وایب کدینگ مانند Cursor و ابزارهایی چون Antigravity چه مزیتی نسبت به باز کردن یک تب چت‌بات در مرورگر وب دارند؟
* الف) آن‌ها حجم اینترنت کمتری مصرف می‌کنند چون از مدل‌های هوش مصنوعی قدیمی‌تر استفاده می‌نمایند.
* ب) آن‌ها به کل ساختار پروژه، درخت فایل‌ها، ترمینال و فایل‌های تنظیمات دسترسی محلی و یکپارچه دارند و کدهای تولیدشده را مستقیماً در محل صحیح فایل‌ها ذخیره می‌کنند.
* ج) آن‌ها نیازی به داشتن حساب کاربری یا اینترنت ندارند.
* د) آن‌ها فقط کدهای زبان HTML را ویرایش می‌کنند.
* **گزینه صحیح:** **ب**
* **تحلیل گزینه‌های گمراه‌کننده:**
* یکپارچگی با فایل‌های محلی و ادیت مستقیم سورس‌کد تفاوت اساسی ادیتور بومی هوش مصنوعی با چت‌بات‌های مرورگری است.
---
### سوال ۵: سازوکار امنیتی ایجنت‌های خط فرمان (`L3.4`)
* **صورت سوال:** هنگام استفاده از ابزار پیشرفته Claude Code در محیط ترمینال، چرا ایجنت پیش از اجرای برخی دستورات شل یا ویرایش فایل‌های حساس از شما تاییدیه (Approval Prompt) می‌خواهد؟
* الف) این یک باگ نرم‌افزاری است و باید فوراً برنامه را ببندید.
* ب) چون اجرای کدهای شل در ترمینال دسترسی مستقیم به سیستم شما دارد و برای جلوگیری از خطاهای ناخواسته (مانند حذف فایل‌ها یا تغییرات تخریبی)، کنترل نهایی همیشه باید با تایید انسان انجام شود.
* ج) چون سرعت اینترنت برای پردازش دستورات کافی نیست.
* د) چون ایجنت قادر به تشخیص زبان انگلیسی دستورات نیست.
* **گزینه صحیح:** **ب**
* **تحلیل گزینه‌های گمراه‌کننده:**
* نظارت و تایید انسان (Human-in-the-Loop) یک اصل ایمنی کلیدی در کار با ایجنت‌های دارای دسترسی شل است.
---
### سوال ۶: پل ارتباطی از وب به ادیتور محلی (`L3.5`)
* **صورت سوال:** در جریان کاری استراتژی دومسیره (Dual-Track)، پس از اینکه یک پروتوتایپ اولیه زیبا را در پلتفرم Lovable یا Bolt ساختید، بهترین اقدام برای تبدیل آن به یک محصول واقعی و پایدار چیست؟
* الف) رها کردن آن و نوشتن تمام کدها از ابتدا روی کاغذ.
* ب) کلیک بر روی دکمه Sync / Export to GitHub، انتقال ریپازیتوری به حساب گیت‌هاب شخصی، و سپس کلون کردن آن روی سیستم برای ادامه توسعه در Cursor با دیتابیس اختصاصی.
* ج) کپی کردن اسکرین‌شات سایت و ارسال آن از طریق ایمیل برای دوستان.
* د) پرداخت صدها دلار اشتراک ابری برای همیشه بدون دریافت فایل‌های پروژه.
* **گزینه صحیح:** **ب**
* **تحلیل گزینه‌های گمراه‌کننده:**
* گزینه ب دقیقاً پیاده‌سازی پل انتقال و فلسفه مالکیت کامل کد توسط کاربر است.
---
### سوال ۷: چرخه ذخیره و ماشین زمان در Git (`L3.6`)
* **صورت سوال:** توالی صحیح و استاندارد دستورات خط فرمان برای ثبت یک چک‌پوینت سالم از تغییرات پروژه و فرستادن آن به مخزن آنلاین گیت‌هاب کدام است؟
* الف) `git push` $\rightarrow$ `git status` $\rightarrow$ `git delete`
* ب) `git add .` $\rightarrow$ `git commit -m "پیام ثبت"` $\rightarrow$ `git push`
* ج) `git init` $\rightarrow$ `git clone` $\rightarrow$ `git exit`
* د) `git checkout` $\rightarrow$ `git format` $\rightarrow$ `git stop`
* **گزینه صحیح:** **ب**
* **تحلیل گزینه‌های گمراه‌کننده:**
* چرخه استاندارد گیت: اضافه کردن تغییرات به استیج (`add`)، ثبت محلی چک‌پوینت (`commit`) و در نهایت ارسال به سرور گیت‌هاب (`push`).
---
### سوال ۸: نقش حیاتی فایل `.gitignore` (`L3.6`)
* **صورت سوال:** چرا درج نام پوشه `node_modules` و فایل `.env` در فایل `.gitignore` یک الزام حیاتی در تمامی پروژه‌ها به شمار می‌رود؟
* الف) تا سرعت کامپایل کدهای پروژه در مرورگر سریع‌تر شود.
* ب) تا از آپلود غیرضروری هزاران فایل سنگین کتابخانه‌ها و از همه مهم‌تر، از افشای عمومی رمزها و کلیدهای محرمانه API در اینترنت جلوگیری شود.
* ج) تا گیت‌هاب پروژه شما را به عنوان اسپم شناسایی نکند.
* د) چون نرم‌افزار Git قادر به خواندن فایل‌های با پسوند متنی نیست.
* **گزینه صحیح:** **ب**
* **تحلیل گزینه‌های گمراه‌کننده:**
* تفکیک فایل‌های حجیم دانلودی و محافظت از اسرار محرمانه مهم‌ترین فلسفه وجودی فایل `.gitignore` است.
---
### سوال ۹: تفاوت مهارت‌ها با پروتکل MCP (`L3.7`)
* **صورت سوال:** کدام عبارت، تفاوت میان یک مهارت پروژه (مانند فایل `.cursorrules`) و یک ابزار تحت پروتکل MCP (Model Context Protocol) را به درستی توضیح می‌دهد؟
* الف) `.cursorrules` ابزاری برای اتصال به پایگاه داده است، اما MCP فقط سرعت تایپ را زیاد می‌کند.
* ب) `.cursorrules` قوانین و سبک فکری مورد نظر را به هوش مصنوعی دیکته می‌کند (تزریق دانش)، در حالی که MCP مانند یک کابل USB-C به ایجنت دسترسی اجرایی به ابزارها و داده‌های زنده بیرونی (مثل جستجوی وب یا دیتابیس) می‌دهد.
* ج) هر دوی آن‌ها دقیقاً یک کار را انجام می‌دهند و تفاوتی ندارند.
* د) پروتکل MCP تنها روی مرورگر موبایل کارایی دارد.
* **گزینه صحیح:** **ب**
* **تحلیل گزینه‌های گمراه‌کننده:**
* تفاوت بنیادین بین Skill (دستورالعمل و ضوابط) و MCP (دسترسی زنده به ابزارهای بیرونی) در گزینه ب کاملاً تبیین شده است.
---
### سوال ۱۰: کالبدشکافی فایل `package.json` و پوشه `node_modules` (`L3.8`)
* **صورت سوال:** اگر پوشه پرحجم `node_modules` به اشتباه از روی کامپیوتر شما پاک شود، چگونه می‌توان بدون هیچ‌گونه نگرانی کل پروژه را مجدداً به وضعیت کارکرد سالم بازگرداند؟
* الف) پروژه برای همیشه نابود شده و باید از اول شروع کرد.
* ب) با باز کردن ترمینال در ریشه پروژه و اجرای یک‌باره دستور `npm install`، پکیج‌ها بر اساس لیست ثبت‌شده در فایل `package.json` مجدداً دانلود و ساخته می‌شوند.
* ج) باید تک‌تک کدهای پروژه را با دست دوباره نوشت.
* د) باید با شرکت سازنده کامپیوتر تماس گرفت تا پوشه را ریکاوری کنند.
* **گزینه صحیح:** **ب**
* **تحلیل گزینه‌های گمراه‌کننده:**
* فایل `package.json` شناسنامه وابستگی‌هاست و دستور `npm install` در کسری از زمان تمام فایل‌های پاک‌شده پوشه `node_modules` را از اینترنت بازسازی می‌نماید.
---
## ۳. فرمت خروجی و ساختار تحویل سوالات
آزمون پس از نگارش نهایی، در پوشه درس به صورت فایل `questions.json` (برای سامانه کوئرا کالج) و هم‌چنین با مستندات تحلیلی در `README.md` با ساختار استاندارد قرار خواهد گرفت:
```json
[
{
"id": 1,
"title": "انتخاب نسخه استاندارد Node.js",
"question": "متن فارسی سوال...",
"options": ["گزینه الف", "گزینه ب", "گزینه ج", "گزینه د"],
"correct_index": 1,
"score": 10,
"explanation": "تحلیل علمی پاسخ صحیح و بررسی خطای سایر گزینه‌ها..."
}
]
```
---
## ۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders)
1. **تصویر کاور آزمون:** `images/cover.png`
* **موضوع:** کاور با تم تیره و مدال ۱۰۰ امتیازی سنجش آمادگی محیط کار با چک‌لیست سبز ابزارهای Node, Git, Cursor, MCP و Claude.
2. **اینفوگرافیک نقشه ارزیابی فصل ۳:** `images/quiz-evaluation-matrix.png`
* **موضوع:** دیاگرام ساختاری که پوشش آزمون روی تمام ارکان محیط کار (سیستم، ادیتور، خط فرمان، وب، گیت، MCP، آناتومی پروژه) را نمایش می‌دهد.
---
## ۵. معیارهای قبولی و سیستم امتیازدهی (Grading Rubric)
- **کل امتیاز:** ۱۰۰ امتیاز.
- **حد نصاب قبولی پایه در گواهی کوئرا:** ۵۰ امتیاز (پاسخ صحیح به حداقل ۵ سوال).
- **سطوح گواهی برای این آزمون:**
* ۱۰۰ امتیاز: ثبت حداکثر سهمیه جهت رتبه **Perfect** در پایان دوره.
* ۹۰ امتیاز: سطح **Very Good**.
* ۷۰ تا ۸۰ امتیاز: سطح **Good**.
* ۵۰ تا ۶۰ امتیاز: سطح **Fair**.
---
## ۶. معیارهای پذیرش سند آزمون (Acceptance Criteria for Reviewer)
- [ ] دقیقا ۱۰ سوال چهارگزینه‌ای کاربردی با سناریوهای ملموس روزمره تدوین شده باشد.
- [ ] سوالات تمام دروس ۳.۱ تا ۳.۸ را به شکل متوازن و متناسب پوشش دهند.
- [ ] پاسخ‌های صحیح و خطاهای مفهومی گزینه‌های گمراه‌کننده با دقت تحلیل شده باشند.
- [ ] هیچ سوالی صرفاً بر مبنای حفظ کردن اعداد بی‌فایده طراحی نشده باشد و کاربرد عملی ملاک باشد.