در درس برنامه‌سازی پیشرفته شریف چه گذشت؟ قسمت ۳

در نوشته قبل گزارش ترم بهار ۹۷ را بررسی کردیم و در این نوشته می‌خواهیم به گزارش ترم پاییز بپردازیم:

گزارش تحلیلی پروژه برنامه‌سازی پیشرفته ترم پاییز ۹۷ و مستند تجربیات ما برای دستیاران آموزشی ترم‌های آینده

در این پروژه تلاش کردیم اهداف مربوط به یادگیری را در دو بخش یادگیری‌های فنی و یادگیری‌های غیر فنی دنبال کنیم.


نمونه پروژه یکی از تیم‌های کاندید جذاب ترین پروژه
نمونه پروژه یکی از تیم‌های کاندید جذاب ترین پروژه


اهداف مرتبط با یادگیری‌های فنی:

1) آشنایی با برنامه‌نویسی شی گرا - OOP در زبان جاوا (توانایی طراحی کلاس‌ها و استفاده از پترن MVC)

2) استفاده از github

3) انجام ریفکتور کد

4) آشنایی با گرافیک در جاوا

5) آشنایی با برنامه‌نویسی چند ریسه‌ای و دیباگ آن

6) انجام انواع Serialization

7) آشنایی با Socket و برنامه‌نویسی شبکه در جاوا

8) طراحی و انجام تست


اهداف مرتبط با یادگیری‌های غیر فنی:

1) توانایی کار کردن در تیم

2) تقسیم کار درست و درگیر بودن همه‌ی اعضای تیم

3) زمان‌بندی و تخمین درست

4) مدیریت شرایط بحرانی و توانایی اولویت بندی کار‌ها



در راستای محقق شدن اهداف بالا اقدامات اجرایی زیر صورت گرفت:

* الزام ساختن Repository در github

* اضافه شدن قابلیت‌های جدید در فاز‌های بعد باعث می‌شد کد قبلی مرتباً نیاز به ریفکتور داشته باشد

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


نقاط ضعف پروژه این ترم:

1) جدی نبودن ددلاین‌های رلیز و اتمام فاز

2) لاتک نبودن داک هیچ یک از فاز ها

3) نبود مکانیزمی برای جلوگیری از کم‌کاری نفر سوم در بعضی از تیم‌ها

4) نبود الزام در استفاده از continuous integration

5) عدم پرداختن به Unit Test

6) فرد بودن ترم که باعث می‌شد وقت بچه ها محدود باشد و درس های سنگینی مثل ساختار و آمار باعث می‌شد فرصت دانشجویان و پشتیبان ها کم تر باشد، همین موضوع باعث افزایش مشکلات زمانبندی نیز می‌شد

7) کیفیت پایین بعضی از کارگاه ها


از موارد بالا، موارد 3 و 4 و 5 در ترم بهار ۹۷ نیز به عنوان مشکل وجود داشت، به این نتیجه رسیدیم که تا گروهی انگیزه کافی نداشته باشد این کار انجام نمی شود و می توان گفت دست تی ای ها برای الزام کردن این موارد تا حدودی بسته است و یادگیری این مطالب باید خواست خود تیم باشد، و راه های اجرا کردن آن را در طول ترم (نه آخر ترم) از پشتیبان ها پیگیری کند.


نقاط قوت و مواردی که اجرای آن‌ها با نتایج بسیار خوبی همراه بود: (بخشی از این موارد برای اولین‌بار اجرا می‌شدند)


1) حفط 7 مورد از 8 مورد نقطه قوت ترم بهار 97 که در گزارش تحلیلی ترم بهار ۹۷ به آن اشاره شده است. با این که ترم فرد بود و وقت بسیار محدود تر از ترم زوج اما حفط اکثر موفقیت های ترم بهار بزرگترین دستاورد ترم پاییز بود.


2) برگزاری چالش TW برای اولین بار که برای تعامل بیشتر اعضای تیم و پشتیبان ها و همچنین راه اندازی زیرساخت های اولیه تیم ها مثل گیت و تفکر جمعی روی یک طراحی در نظر گرفته شده بود، البته اشکالاتی نیز در این رویداد بود اما بر اساس بازخورد های مختلفی که گرفتیم روی هم رفته اقدام مثبت و موثری بود.


3) تاکید بر انجام اصل بازی farm frenzy به جای خواندن داک های پیچیده، این مورد باعث شد که دانشجویان یک چشم انداز مناسب از خروجی نهایی داشته باشند و باعث شد کیفیت پروژه ها بسیار بالا رود. من به این نتیجه رسیدم اگر خود بازی مد نظر رلیز شود، تاثیری بسیار بهتری از نوشتن ده ها صفحه داک دقیق برای پروژه دارد. البته برای بخش شبکه که جزء خود بازی نبود داک خوبی رلیز شد که معماری شبکه مورد نظر را توضیح می‌داد.


4) با توجه رضایت دانشجویان ترم بهار از پشتیبانان پروژه، در این ترم وظایف پشتیبانان گسترده تر شد و آنان در تمرین ها نیز به دانشجویان کمک کردند و به طور کلی تلاش شد کیفیت رائه درس برنامه سازی پیشرفته نسبت به ترم های قبل افزایش یابد.


بر اساس بازخورد‌های دریافت شده از افراد مختلف و همچنین ارزیابی‌های انجام شده کیفیت خروجی نهایی پروژه‌ی دانشجویان این دو ترم اخیر به طور محسوسی از ترم‌های گذشته بالاتر بوده است که اصلاحات بالا و همچنین تلاش جدی خود دانشجویان در جهت یادگیری از دلایل اصلی آن است.


کاندید‌های جذاب ترین پروژه ترم پاییز ۹۷ برنامه‌سازی پیشرفته دانشکده مهندسی کامپیوتر شریف:

(بسیاری از پروژه ها کیفیت فنی بالایی داشتند اما فقط پروژه هایی که فیلم فرستادند را کاندید کرده‌ایم)


گروه 1:

https://www.aparat.com/v/RKrqx


گروه 5:

https://www.namasha.com/v/ab2QCCad


گروه 10:

https://www.aparat.com/v/IDido


گروه 11:

https://www.aparat.com/v/59HVU


گروه 17:

https://www.aparat.com/v/2N10Y

در نهایت طبق نظرسنجی گروه 5 برنده این چالش بود!

در پایان لازم می دانم از همه‌ی دستیاران آموزشی و دانشجویان عزیز به خاطر همراهی‌شان تشکر کنم و همچنین تشکری ویژه از استاد مصطفی زاده دارم که با حمایت و میدان دادن به تیم پروژه باعث شدند بتوانیم اصلاحات بالا را انجام دهیم. ان شاء الله که نقاط مثبت این گزارش در ترم‌های آینده با قدرت ادامه پیدا کند و نقاط منفی آن بر طرف شود.


محمد حقیقت، مسئول پروژه درس برنامه‌سازی پیشرفته ترم پاییز ۹۷

۱۰ اسفند ۹۷