مقدمه:
مسابقات کد نویسی مبهم رویداد هایی در راستای تخمین مهارت شرکت کنندگان در نوشتن کد های ناخوانا یا در اصطلاح برنامه نویسان همان کد کثیف (Dirty Code) است. یک برنامه را هنگامی ناخوانا می نامیم که اگر کد برنامه در اختیار برنامه نویس دیگر قرار دهیم و او معنای تک تک دستورات برنامه را بداند، شیوه کنار هم چیده شدن دستورات و پرش های تو در توی میان آنها به حدی پیچیده و گیج کننده باشد که برنامه نویس بدون اجرای این برنامه، نتواند تشخیص دهد که خروجی برنامه چیست؟
نحوه ورود به مسابقه:
هر تیم برای شرکت در مسابقه باید به ناخوانا ترین شکل ممکن، برنامه ای به زبان c++ بنویسد که با هر بار اجرا شدن، رشته ای معین به طول حداقل یک و حداکثر سه کاراکتر را روی صفحه نمایش چاپ کند.این رشته میبایست همواره ثابت باشد، نه آنکه در هر بار اجرا رشته ای متفاوت چاپ کند، و یا اینکه با انتقال به کامپیوتری دیگر، خروجی متفاوتی بدهد. تمام کاراکترهای این رشته باید روی صفحه کلید موجود و قابل تایپ باشند.
تیم ها می بایست کد های خود را تا یک هفته قبل از برگزاری رویداد برای تیم داوری ارسال کنند. کد ها توسط تیم داوری بررسی شده و در صورت تایید کد، مجوز حضور در رویداد صادر خواهد شد.
در طول مدت بررسی کد ها توسط تیم داوری، شرکت کنندگان با تیم داوری در تماس هستند و در صورت شناسایی ایراد در کد ها ، این موضوع توسط تیم داوری به شرکت کنندگان اطلاع داده می شود و تیم ها موظف هستند تا ایرادات کد های خود را برطرف کنند تا مجوز ورود به مسابقه را دریافت نمایند.
نحوه برگزاری مسابقات:
تیم هایی که مجوز ورود به مسابقات را دریافت کردند می توانند در مرحله حضوری رویداد که در یک روز و به مدت ۸ ساعت برگزار می شود شرکت نمایند.
در روز برگزاری مسابقه در ابتدا کلیه کد های تایید شده در یک دفترچه چاپ شده و بین کلیه تیم های شرکت کننده توزیع می شود.
در این مرحله هر تیم هشت ساعت فرصت دارد تا خروجی کد های تیم دیگر را حدس بزند. شکستن هر کد برای تیم یک امتیاز در بر دارد و هر تیمی که تعداد بیشتری کد مبهم را شناسایی کند امتیاز بیشتری دریافت خواهد کرد. البته این نکته قابل ذکر است که در صورتی که کد یک تیم توسط تیم دیگری شکسته شود یک امتیاز منفی برای تیم صاحب کد در نظر گرفته می شود ( البته این امتیاز منفی فقط در اولین بار شکسته شدن کد مد نظر قرا گرفته می شود و اگر تیم های دیگر هم کد تیم را شناسایی کردند دیگر امتیاز منفی برای تیم در نظر گرفته نمی شود).
بین تیم هایی که برنامه هایشان از این نظر امتیاز مساوی دارند تیمی برنده است که تعداد کد بیشتری را شکافته باشد و در صورت مساوی بودن تعداد مسائل حل شده، تیمی برنده است که مجموع زمان حل مسائلش کمتر باشد.
در مدت مسابقه، هر تیمی که خروجی یک برنامه را حدس بزند باید حدسش را با داور گروه در میان بگذارد تا داور درستی یا نادرستی حدس را اعلام کند. در صورت درست بودن پاسخ امتیاز برای تیم در نظر گرفته می شود و در صورت عدم پاسخ صحیح کد مورد به تیم برگردانده می شود تا مجددا برای شکستن کد اقدام نمایند. تیم ها بهتر است در هنگام اعلام خروجی یک برنامه دقت کنند زیرا به ازای هر حدس نادرست، مجموع زمان حل مسائلشان ده دقیقه افزوده میشود!
در کل مدت مسابقه امتیازات کسب شده توسط تیم ها بر روی یک نمایشگر بزرگ قابل مشاهده است و تیم ها رتبه خود را در این نمایشگر مشاهده می کنند. البته در یک ساعت پایانی مسابقه نمایشگر خاموش می شود تا نتیجه نهایی مسابقه در اختتامیه رویداد اعلام شود.
اعضای هر تیم در حین مسابقه حق مشورت با یکدیگر یا استفاده از انواع کتاب جزوه، ماشین حساب و خط کش و … را دارند اما استفاده از هرگونه کامپیوتر یا موبایل در حین مسابقه ممنوع میباشد.
هدف مسابقه
Spaghetti Contestیک مسابقه برنامه نویسی است. هدف از برگزاری این مسابقه صرفاً یک رقابت فنی بین افراد نیست، بلکه قرار است در این رویداد دانش و مهارت برنامه نویسی شرکت کنندگان افزایش یابد و مهارت و دانش کسب شده در صنعت فناوری اطلاعات کشور مورد استفاده قرار گیرد و شرکت کنندگان مسابقه بعد از این رویداد وارد بازار کار کشور شوند. به این منظور سعی کردیم مسابقه را به سمتی سوق دهیم که حداکثر تعداد مخاطبین را از جامعهی فنی و برنامه نویسان کشور داشته باشیم.
مزایای شرکت در مسابقات برای برنامه نویسان
۱-یادگیری
بررسی کدهای مختلف، نوشتن کد جدید و ارتباط مستمر با تیم داوری، باعث افزایش سطح علمی و مهارت افراد میشود.
۲- تمرین
ارسال کدها مبهم برای تیم داوری، مشاوره و گرفتن تایید فرصتی را برای محک زدن توانایی افراد فراهم میآورد.
۳- رقابت
آزمون انتخابی و آزمون نهایی محل اصلی رقابت بین افراد برتر هستند و نشاندهنده مهارت افراد در برنامهنویسی میباشند.
۴- استخدام در شرکت های معتبر
پس از برگزاری مسابقات، برای تیم های برتر امکان استخدام در شرکت های معتبر فعال در حوزه فناوری اطلاعات که از برگزاری این رویداد حمایت کرده اند وجود دارد.
دبیرخانه دائمی جشنواره:
گروه Sharif ICT از زیر مجموعه های شرکت آریا راد شریف به عنوان طراح و مجری رویداد و با همکاری مرکز نوآوری فناوری اطلاعات و ارتباطات دانشگاه صنعتی شریف و باشگاه کسب و کار دانش بنیان فعالیت خود را جهت برگزاری دوره سوم مسابقات کد نویسی مبهم از اردیبهشت ماه سال ۱۳۹۸ آغاز نمود.
این گروه در طول مدت ۸ ماه به انجام فعالیت های زیر مشغول بود:
- اطلاع رسانی به علاقه مندان این حوزه در دانشگاه ها، مراکز آموزشی، شرکت ها و سازمان ها جهت تشویق به شرکت در مسابقات
- برگزاری جلسات متعدد با سازمان ها، ارگان ها و شرکت های خصوصی و دولتی جهت شناسایی چالش های اصلی موجود در بازار و ارائه این چالش ها در مسابقات
- جذب انواع مشارکت های مالی و معنوی از مجموعه های خصوصی و دولتی
- سازماندهی افراد علاقه مند به شرکت در رویداد
- انجام کلیه امور گرافیکی و تبیلغاتی رویداد
- انجام کلیه امور دبیرخانه ای
- انجام امور آماده سازی و اجرایی رویداد
- اجرای نظر سنجی کلی، مستند سازی و تهیه گزارش های برگزاری رویداد
برگزار کنندگان:
- مرکز نوآوری فناوری اطلاعات و ارتباطات دانشگاه صنعتی شریف
- شرکت آریا راد شریف
- باشگاه کسب و کار دانش بنیان
حامیان اصلی:
- شرکت علوم سبز
- شرکت مهسان
- شرکت راهکار های متن اول آریا
- شرکت ساعیان ارتباط
حامیان استراتژیک
- سازمان نظام صنفی رایانه ای کشور
- معاونت علمی و فناوری ریاست جمهوری
- سازمان فناوری اطلاعات ایران
- پارک علم و فناوری دانشگاه صنعتی شریف
سازماندهی کنفرانس:
- دبیرکل رویداد: جناب آقای دکتر ربیعی، رئیس مرکز نوآوری فناوری اطلاعات و ارتباطات دانشگاه صنعتی شریف
- دبیر اجرایی و مسئول برگزاری: جناب آقای مهندس روزی طلب، مدیرعامل شرکت آریا راد شریف
- کمیته علمی و داوری: احسان احسانی مقدم (سرپرست تیم داوری) و بهنام قلی پور
- مدیر پشتیبانی: سید محمد رضا حسینی، مدیر عامل باشگاه کسب و کار دانش بنیان
روند برگزاری مسابقات:
این رویداد در روز پنجشنبه ۱۴ آذر ماه سال ۱۳۹۸ و در محل باشگاه کسب و کار دانش بنیان برگزار شد. روند برگزاری رویداد دقیقا مطابق با توضیحات بخش نحوه برگزاری رویداد اجرا شد.
طبق برنامه ریزی قبلی تیم از ساعت ۸:۰۰ صبح وارد سالن مسابقات شدند. محل استقرار تیم ها از قبل مشخص شده بود و تیم ها پس از پر کردن فرم ها و انجام مراحل پذیرش در محل مشخص شده مستقر شدند.
بر ساس قوانین مسابقه شرکت کنندگان گوشی های تلفن همراه و سایر وسایل الکترونیکی خود را به تیم پذیرش تحویل دادند و فقط مجاز به استفاده از کاغذ چرک نویس، خودکار و ماشین حساب غیر مهندسی بودند.
لازم به ذکر است ثبت نام ۱۴۰ نفر در قالب ۴۵ تیم در این دوره مسابقات مورد تایید قرار گرفته شد. البته از ۴۵ تیم حاضر کد ۳۰ تیم مورد تایید تیم داوری قرار گرفت و مابقی تیم ها بدون کد وارد مسابقات شدند.
حدود ساعت ۹ صبح پذیرش به اتمام رسید و کتابچه کد های مبهم به همراه اطلاعات لازم بین تیم ها توزیع شد و بدین ترتیب مسابقه رسما آغاز شد.
در کتابچه سوالات هر کد مبهم بر روی یک برگه چاپ شده بود و پشت برگه محلی برای نوشتن خروجی کد مورد نظر قرار داده شده بود. تیم ها پس از بررسی هر پاسخ مورد نظر خود را به تیم داوری می دادند.
تیم داوری و مشاوران به صورت کامل در کل مدت مسابقه بر عملکرد تیم ها نظارت داشتند و علاوه بر بررسی کارکرد تیم ها و درج امتیازات تیم ها در سامانه داوری مسابقات، به آنها مشاوره هم می دادند. تیم مشاوران متشکل از نمایندگان حامیان مسابقه بودند.
در کل مدت مسابقه یک نمایشگر به صورت آنلاین نتایج مسابقه و رتبه بندی تیم ها را نشان میداد.
پذیرایی نهار و میان وعده برای کلیه شرکت کنندگان در کل مدت مسابقه در نظر گرفته شده بود.
بر ساس زمان بندی اعلام شده مسابقه راس ساعت ۱۷:۰۰ به پایان رسید و شرکت کنندگان جهت برگزاری اختتامیه رویداد وارد سالن اختتامیه شدند.
اختتامیه راس ساعت ۱۷:۱۵ دقیقه با ارائه توضیحات نماینگان حامیان رویداد و تیم داوری آغاز شد و در انتها سه تیم برتر مسابقه معرفی شدند و جوایز خود را دریافت کردند.


























































