پروژه NumPy

این صفحه حاوی جزئیات یک پروژه نگارش فنی است که برای فصل اسناد Google پذیرفته شده است.

خلاصه ی پروژه

سازمان منبع باز:
NumPy
نویسنده فنی:
cooperrc
نام پروژه:
اسناد NumPy برای آموزش جامعه
طول پروژه:
طول استاندارد (3 ماه)

شرح پروژه

معرفی

NumPy محاسبات مبتنی بر آرایه تمیز و سریع را در یک کتابخانه نرم افزار منبع باز رایگان ارائه می دهد. این یک بسته اساسی در پشته SciPy برای محاسبات علمی است [1]. بیش از 370 هزار پروژه برای محاسبات آرایه کارآمد استفاده می شود [2]. کاربران NumPy توسط یک وب سایت جدید با برنامه های کاربردی و مطالعات موردی استقبال می شوند [1]. وقتی یک کاربر جدید صفحه مستندات را پیدا می‌کند، با چندین پیوند «از اینجا شروع کنید» و آموزش‌های مقدماتی مواجه می‌شود که می‌تواند برای یک مبتدی خسته‌کننده باشد، مانند NumPy Basics/Byte-swatch. من ده سال پیش در مقطع کارشناسی ارشد شروع به استفاده از NumPy کردم. متوجه شدم که پست‌های وبلاگ، یادداشت‌های سخنرانی و پاسخ‌های StackExchange را کنار هم می‌چینم تا از مرور اسناد NumPy اجتناب کنم. در حال حاضر بیش از 360 هزار مکالمه StackExchange وجود دارد که با NumPy سروکار دارند. تصور می کنم سایر کاربران مسیرهای مشابهی برای موفقیت در NumPy داشته اند. واحدهای سازنده ابزار آموزشی ارتباطات و اجتماع است [4]. مستندات نیاز به ایجاد جامعه ای دارد که اهداف مورد نظر پروژه را منعکس کند. مستندات باید یک راهنمای ثابت و واضح برای یک کاربر جدید باشد. این آموزش‌ها باید به کاربران جدید مراحلی را ارائه دهند که به راحتی می‌توانند آن‌ها را دنبال کنند و راحتی را با کتابخانه ایجاد کنند [3]. مستندات باید از یک کاربر جدید در انجمن NumPy استقبال کند. ساختار، سرعت و نویسندگان مستندات همگی نیاز به ایجاد مکانی دارند که از کاوش و ارتباط استقبال کند. این پیشنهاد شکاف های موجود در اسناد NumPy فعلی را سازماندهی و پر می کند تا کاربران جدید در جامعه آموزش ببینند و از آنها استقبال شود.

دانشی که کاربران با آنها ارتباط برقرار می کنند با آزمایش و آزمایش به دست می آید [4،5]. دانش به روش آزمایش و ارزیابی بستگی دارد. محتوایی که اهداف و کاربردهای روشنی را در نحوه کار ارائه می دهد، به کاربران امکان می دهد ایده ها و روش های جدید را آزمایش و ارزیابی کنند. جامعه می تواند یک پایگاه دانش ایجاد کند تا مهارت ها، حقایق و کاربردها را افزایش دهد. فضای نحوه ارائه یک مزیت دو برابری دارد. اول، کاربران جدید و با تجربه مجموعه ای از اهداف روشن برای آزمایش و ساخت آزمایش دارند. دوم، مشارکت کنندگان بالقوه مستندات فضایی برای برقراری ارتباط با اهداف، روش ها و راه حل های خود دارند. فضای نحوه انجام، نیاز فوری برای دسترسی بیشتر به اسناد NumPy برای کاربران جدید و مشارکت‌کنندگان احتمالی را برطرف می‌کند. دانش فعلی

جان دیویی گفت که اساس یادگیری یک تجربه واقعی است [4]. انجمن NumPy دارای مقدار فوق العاده ای از تجربه واقعی است که می تواند با سایر کاربران به اشتراک گذاشته شود. آموزش بر اساس اجتماع و ارتباطات بنا شده است. یک صفحه اسناد سازمان یافته راه را برای کاربران جدید برای تجربه NumPy باز می کند. همچنین یک الگوی ساختار یافته برای مشارکت کنندگان بالقوه ایجاد می کند تا تجربیات خود را در NumPy به اشتراک بگذارند.

چهار فضای گروه بندی گسترده برای مستندسازی نرم افزار [3] وجود دارد: فضای آموزشی، فضای آموزشی، فضای توضیحی، و فضای مرجع. اسناد NumPy دارای تعدادی سند در فضای آموزشی است که توضیحات و نحوه قرار دادن محتوا را در آموزش ترکیب می کند. فضای آموزشی باید بر آموزش کاربر متمرکز باشد و از مراحل آسان برای انتقال ایده ها استفاده کند. فضای چگونه روش‌های هدف‌محور بیشتری را فراهم می‌کند که کاربران می‌توانند در برنامه‌های کاربردی دنیای واقعی اعمال کنند. فضای توضیح اطلاعات دقیق رشته های مستند را در هر تابع ارائه می دهد. فضاهای آموزشی فعلی و نحوه کار به وضوح مشخص نشده اند و گاهی وارد فضای توضیح و مرجع می شوند. یک آموزش عالی برای "مبتدی مطلق" وجود دارد و یک مرجع عالی برای کاربران Matlab برای ساخت کد NumPy در "Numpy برای کاربران Matlab" وجود دارد. مشخص کردن واضح این چهار فضا اسناد را واضح تر می کند.

شکاف در پایگاه دانش/نیاز برآورده نشده

مستندات فعلی بسیاری از موضوعات ضروری را پوشش می دهد، اما فاقد تمایز واضح بین فضاهای آموزشی، نحوه انجام، توضیح و مرجع است. این منجر به سردرگمی برای مشارکت کنندگان بالقوه می شود. کاربران جدید می توانند با توضیحات و مطالب مرجع در بخش آموزشی غرق شوند و مشارکت کنندگان بالقوه برای مشارکت با موانعی مواجه می شوند. من طرح‌بندی در دسترس‌تری را برای تازه‌واردها و مشارکت‌کنندگان اسناد احتمالی با یک جریان منطقی در اسناد و مدیریت درخواست‌های کشش برای اسناد نحوه ارائه توسط کاربر توسط مشارکت‌کنندگان جدید پیشنهاد می‌کنم. هدف بلندمدت من ایجاد جامعه مستندسازی است به طوری که یادگیری از مستندات یک تجربه آموزش و برقراری ارتباط دادن و گرفتن باشد. این مدل برای مستندسازی، آموزش را در تجربه واقعی برای تازه واردان و مشارکت کنندگان بالقوه پایه گذاری می کند.

بنیاد و پایه

این پیشنهاد Google Summer of Docs برای اهداف آموزشی و شغلی من مهم است. من در تمام دوره هایم از NumPy و SciPy استفاده می کنم. مدارک فعلی برای دانش آموزان من دشوار است. من می‌خواهم از تجربیاتم در آموزش رشته‌های غیر CS نحوه کدنویسی برای کمک به سازمان‌دهی، ویرایش و پر کردن شکاف‌های آموزش‌های فعلی استفاده کنم. سپس می توانم از مستندات به عنوان کتاب درسی و مرجع برای دوره های خود استفاده کنم. من ده ها آموزش، تمرین و مثال با استفاده از پایتون و . من می‌خواهم برخی از این مطالب را به آموزش و روش‌های آموزشی تبدیل کنم. من بیش از 800 دانشجو داشته ام که از NumPy (به عنوان بخشی از پشته Scipy) استفاده می کنند و چندین دانش آموز دارم که علاقه مند هستند برای ترم پاییز مشارکت کنندگان اسناد باشند. من به مدت 4 سال در دانشگاه کانکتیکات مهندسی مکانیک تدریس کرده ام و بیش از 30 واحد درسی دوره تدریس کرده ام.

اهداف خاص

من سه هدف خاص برای این پیشنهاد تابستانی Google Docs دارم: 1. سازماندهی اسناد فعلی، 2. ویرایش آموزش های فعلی (راهنمای مبتدیان، ایجاد آرایه، نمایه سازی، جبر خطی، و NumPy برای Matlab) برای انتقال اطلاعات مرجع به توضیح فضا، و 3. با دانش آموزان مواد لازم را بسازید. هر هدف خاص یک نتیجه مورد انتظار برای پیشنهاد دارد.

این سه هدف خاص به این منظور است که مستندات را برای کاربران جدید خوشایندتر کرده و ساختاری را برای مشارکت کنندگان بالقوه فراهم می کند. این اهداف همچنین به پیشبرد هدف بلندمدت ادامه رشد جامعه اسناد NumPy کمک می کند. نتایج مورد انتظار

من سه نتیجه مورد انتظار را دارم: 1. یک صفحه وب اسناد اصلاح شده که به وضوح چهار فضا را از هم جدا می کند: آموزش، نحوه انجام، توضیح و مرجع، 2. آموزش های جدید برای: خواندن و نوشتن آرایه ها، ایجاد آرایه (np.zeros، np.ones، np.block، و غیره)، و عملیات جبر خطی در مقابل عنصر عاقلانه در NumPy، و 3. یک فضای راهنمای انتخاب شده.

این نتایج مورد انتظار به کاربران جدید کمک می‌کند تا از طریق اسناد پیشرفت کنند، مشارکت‌کنندگان بالقوه مستندات را با سبک‌ها و قالب‌های واضح ارائه کنند، آموزش‌های فعلی را کوتاه‌تر و راحت‌تر دنبال کنند، توضیحات را به بخش جداگانه منتقل کنند، و مشارکت‌کنندگان اسناد جدید می‌توانند موارد استفاده کوچک را به اشتراک بگذارند. بخش چگونه بدون ساخت کل مستندات ابوالهول. ما می خواهیم به ایجاد جامعه آموزشی و یادگیری خود ادامه دهیم.

مشارکت‌کنندگان اسناد جدید می‌توانند موارد استفاده کوچک را بدون ساختن کل اسناد Sphinx به میلیون‌ها کاربر کمک کنند. ما می خواهیم به ایجاد جامعه آموزشی و یادگیری خود ادامه دهیم. این مستندات پیشنهادی مستندات منبع باز فعلی مانند Matplotlib، Divio و غیره را تقلید می‌کند. کاربران جدید و مشارکت‌کنندگان بالقوه زمان آسان‌تری برای یادگیری کاربرد NumPy در زمینه‌ها و نرم‌افزارهای خود خواهند داشت.

جدول زمانی پروژه 14/9-11/30 می باشد. اولین قدم این است که مستندات را بسازید و محتوای آموزش های فعلی را به محتوای آموزشی، نحوه انجام و توضیح جدا کنید. این به ترتیب در پنج هفته اول پروژه به عنوان بخشی از نتایج 1 و 2 - بازنگری وب سایت و آموزش ها انجام می شود. سازمان اسناد پیشنهادی در مستندات پیشنهادی زیر نشان داده شده است.

اسناد پیشنهادی:

i.آموزش:

  • اصول اولیه برای مبتدیان (نصب را حذف کنید، آیا می توان پانداها را با numpy.loadtxt جایگزین کرد؟)
  • پیوند به "چیست ناتوانی"
  • پیوند به دستورالعمل های نصب اولیه در اینجا
  • آموزش شروع سریع (برای ادامه آموزش پایتون)
  • کار با آرایه های NumPy
  • ایجاد آرایه (np.zeros، np.ones، np.block، و غیره) (نوشتن: med-low priority)
  • عملیات عنصری (+،-،*،/) و عملیات جبر خطی (+،-،@، linalg.solve) (write:med priority)
  • خواندن و نوشتن داده ها با استفاده از Numpy (نوشتن: اولویت بالا)
  • نمایه سازی

ii نحوه انجام:

  • جبر خطی در آرایه‌های n بعدی (می‌خواهد عناوین و توضیحات را ویرایش کنید و شاید عنوان را به «پردازش تصویر با جبر خطی Numpy» تغییر دهید)
  • پیوند به محتوای آموزشی numpy-tutorials (کار در حال انجام)

III. توضیح:

  • انواع داده ها
  • I/O با Numpy
  • نمایه سازی
  • صدا و سیما
  • تعویض بایت
  • آرایه های ساخت یافته
  • نوشتن ظروف آرایه سفارشی
  • زیر کلاس بندی ndarray
  • متفرقه

IV فضای مرجع:

  • واژه نامه
  • مرجع Numpy API
  • Numpy برای کاربران Matlab (جدول معادل یک جدول مرجع عالی است، اما بحث آرایه/ماتریس حواس پرتی است و به نظر منسوخ شده است)

پس از تکمیل این فصل Google Docs، من نتایج زیر را پیشنهاد می‌کنم:

  • یک صفحه وب اسناد اصلاح شده که به وضوح چهار فضا را از هم جدا می کند: آموزش، نحوه انجام، توضیح و مرجع
  • آموزش های جدید برای: ایجاد آرایه (np.zeros، np.ones، np.block، و غیره)، عملیات عنصری (+,-,*,/) و عملیات جبر خطی (+,-,@, linalg.solve) ، و خواندن و نوشتن داده ها با استفاده از Numpy (اولویت بالا)
  • نحوه ارائه اسناد را برای افزایش مشارکت کاربران و کمک به پیشبرد اهداف جامعه در آموزش و یادگیری توصیه کرد

هر نتیجه دارای تعدادی مرحله است که در جدول های زیر برای نتایج 1-3 مشخص شده است. در حالی که اسناد پیشنهادی برای بررسی ارسال می‌شود، آموزش «خواندن/نوشتن آرایه‌ها» با اولویت بالا برای ارسال به عنوان یک درخواست کشش به عنوان بخشی از نتیجه 2 نوشته می‌شود. در طول بررسی وب‌سایت اصلاح‌شده و آموزش «خواندن/نوشتن آرایه‌ها» به‌روز شده ، من شروع به نوشتن یک آموزش برای ایجاد آرایه با استفاده از توابع NumPy می کنم، مانند np.ones، np.zeros، np.diag. زمان باقیمانده برای پاسخ به مسائل مربوط به درخواست pull و شروع به نوشتن آموزش رتبه 3 استفاده می شود: عملیات جبر خطی و عنصری در پایتون.

سومین نتیجه، توصیه به دانشجویان دانشگاه کانکتیکات برای ایجاد اسناد در مخزن numpy-tutorials است. آموزش های ارسالی یا مدارک نحوه ارائه، نوت بوک های Jupyter خواهند بود که از NumPy برای حل مشکلات مهندسی استفاده می کنند. من از برخی از یادداشت ها/نمونه های دوره خود برای ارائه یک دفترچه نمونه استفاده خواهم کرد. من به دانش‌آموزان توصیه می‌کنم که در حین ساختن یک طرح قالب و چارچوب، از چیدمان و ساختار پیروی کنند. این نتیجه یک تجربه واقعی را برای دانش‌آموزان ارائه می‌کند تا مفاهیم و راه‌حل‌ها را به مخاطبان وسیع‌تری منتقل کنند. این یک فرصت عالی برای دانش آموزان است تا با جامعه NumPy درگیر شوند و یاد بگیرند.

نتیجه 1: بازبینی وب سایت Deliverable Date Fork Repository و ساخت اسناد با Sphinx 9/21 ساخت صفحه وب با چهار فاصله تعریف شده و پیوند داده شده 10/1 انتقال آموزش های فعلی به فضاهای مناسب و ساخت اسناد 10/10 ارسال روابط عمومی به github با تغییرات پیشنهادی 11/1 پاسخ به نظرات/پیشنهادات و تجدید نظر در روابط عمومی در حال انجام با نتیجه 2 وب سایت تجدید نظر شده 11/30

نتیجه 2: بازنگری آموزش ها تاریخ تحویل بررسی آموزش ها رتبه بندی ویرایش 9/21 جداسازی محتوای آموزشی فعلی به فضاهای آموزشی و توضیحی 10/1 نوشتن رتبه 1: خواندن/نوشتن آرایه ها 10/10 ارسال PR به github برای جداسازی و ویرایش 10/2 رتبه 2: ایجاد آرایه PR 11/15 رتبه 3 را بنویسید: عملیات جبر خطی و عنصری PR 11/30

رتبه‌بندی پیشنهادی تجدیدنظرهای آموزشی (مشروط به تغییر با توجه به مربیان/جامعه):

  1. خواندن/نوشتن آرایه هایی که در حال حاضر صفحه خالی هستند

  2. ایجاد آرایه (np.zeros، np.ones، np.block، و غیره) وجود ندارد: به کاربران جدید کمک می کند تا ابزارهای ایجاد آرایه/تعامل مشترک را توضیح و نشان دهند.

  3. عملیات جبر از نظر عنصر و خطی (+،-،*،/ و +،-@،linalg.solve) وجود ندارد: این به ویژه برای 1. کاربران Matlab و 2. افرادی که جبر خطی را اتخاذ می کنند (یادگیری ماشینی، رگرسیون خطی و غیره)

نتیجه 3: انتخاب شده نحوه فضاسازی تاریخ تحویل پیوند خارجی (مسئله/مثال) ساخت مثال نحوه انجام (نامزد: نحوه یافتن فرکانس های طبیعی سیم های گیتار 10/20
ایجاد الگوی نحوه کار برای مشارکت‌کنندگان جدید 10/1 در حال انجام الگوی آموزشی PR & Framing مشارکت‌های احتمالی برای ساختن دفترچه یادداشت‌های آموزش نحوه جذب دانشجویان UConn و سایر اعضای جامعه وضعیت 7/1: مطالعه کار تأیید شده و درخواست‌ها رسیده است، کار کنید

اهمیت مورد انتظار

این پیشنهاد Google Summer of Docs اسناد NumPy را ایجاد می‌کند، آموزش‌های گمشده را از وب‌سایت پر می‌کند و مشارکت‌کنندگان اسناد را به دست می‌آورد. به عنوان یک استاد در مهندسی مکانیک، من قصد دارم اسناد را به گونه‌ای تقسیم کنم که دانشجویانم بتوانند اسناد را مرور کنند و به راحتی آموزش‌های مقدماتی را در مقابل راهنماهای عملی بیابند. مستندات تقسیم‌بندی شده: آموزش، نحوه، مرجع و توضیح، نمونه‌های ساختاری به مشارکت‌کنندگان بالقوه برای ساخت منابع جدید ارائه می‌دهد. مستندات پیشنهادی به کاربران جدید و باتجربه امکان داد و ستد از طریق آموزش و برقراری ارتباط را می دهد. سند پیشنهادی برای مشاوره با دانشجویان دانشگاه کانکتیکات این ایده آموزش و برقراری ارتباط را عملی خواهد کرد. ما می خواهیم همه کاربران فضایی برای آزمایش، یادگیری و پیوستن به انجمن NumPy پیدا کنند.

منابع

  1. وب سایت NumPy.org در تاریخ 07/2020 قابل دسترسی است.
  2. مخزن NumPy GitHub.
  3. سیستم اسناد و مدارک Divio.com در 07/2020 مشاهده شد.
  4. دیویی، جان. دموکراسی و آموزش. پروژه گوتنبرگ، آگوست 2015.
  5. دیویی، جان. تلاش برای اطمینان جورج آلن و آنوین محدود. 06/2005.