انجمن علمی دانشگاه صنعتی همدان در نظر دارد در تاریخ 23 فروردین ماه 1397 به برگزاری چهارمین دوره استانی از مسابقات ACM در این دانشگاه بپردازد. به همین ترتیب از دانشگاه های استان های همدان دعوت می شود تیم های خود را در این مسابقه ثبت نام کنند تا در کنار یکدیگر شاهد مسابقه ای سالم و پرهیجان، که زمینه های پیشرفت در این زمینه را برای همه ی ما مهیا می سازد، باشیم.
جوایز تیم های برتر:
- تیم اول 1,000,000 تومان
- تیم دوم 700,000 تومان
- تیم سوم 500,000 تومان
هزینه ثبت نام:
- دانشجویان دانشگاه صنعتی همدان 30,000 تومان
- دانشجویان سایر دانشگاه ها 60,000 تومان
در ضمن برای دو تیم اول از سایر دانشگاه ها هزینه ثبت نام 30,000 تومان می باشد. برای دریافت این تخفیف با مدیر گروه کامپیوتر دانشگاه خود جهت معرفی تیم تان صحبت کنید.
جهت ثبت نام به صفحه ثبت نام مسابقه مراجعه کنید.
همچنین امکان اسکان برای دانشجویان خارج از شهر همدان نیز فراهم می باشد.
زمان بندی مسابقه به شرح زیر است:
قوانین ششمین دوره مسابقات برنامه نویسی ACM – ICPC دانشگاه صنعتی همدان
- مدت مسابقه 3 ساعت است.
- در روز مسابقه 6 تا 8 مسئله به زبان انگلیسی داده خواهد شد.
- هر تیم میتواند حداکثر شامل 3 عضو از دانشجویان دانشگاه باشد.
- حضور سر گروه تیم شرکت کننده در جلسه ی توجیهی اجباری می باشد.
- در روز مسابقه یک سیستم با سیستم عامل Windows 7 در اختیار هر تیم قرار داده می شود که اعضاء تیم می بایست به صورت مشترک از آن استفاده نمایند.
- تیم های شرکت کننده در مسابقه می توانند با یکی از پنج زبان برنامه نویسی آمده در فرم ثبت نام ( جاوا ، سی ، سی ++ ، پایتون 2 و پایتون 3 ) به سوالات پاسخ دهند.
- تیم ها بر اساس تعداد مسئله های حل شده توسط آن ها مرتب می شوند.
- رتبه تیم هایي که به تعداد مساوی مساله حل کرده اند ، بر اساس مجموع زمان صرف شده برای حل مسائل (از کوچک به بزرگ) مرتب می شود.
- زمان صرف شده برای حل یک مسئله از ابتدای مسابقه تا زمان حل موفق آن مسئله حساب می شود. هر ارائه غلط حل، 20 دقیقه جریمه (Penalty) به این زمانمی افزاید. البته این جریمه وقتی محاسبه می شود که آن مسئله جواب صحیح بگیرد.
- در صورت برابر بودن تیم ها با شرایط قانون 5 تیمی که تعداد جریمه کمتری داشته باشد در اولویت بهتری خواهد داشت.
- محیط برگزاری مسابقه نرم افزاری به نام PC2 است که محصول شرکت IBM است. این محیط امکان ارسال راه حل تیم ها به داوران، ارسال پرسش از صورت مساله و ارائه نتیجه کار و رتبه بندی تیم ها را به همه فراهم می کند.
- راه حل ها از طریق شبکه به داوران ارسال می شود و پس از زمان کوتاهی درستی یا نادرستی راه حل به اطلاع تیم ارسال کننده رسانده می شود.
- براي هر مسئله يک رنگ خاص در نظر گرفته شده و هر تيمي که سوالي را حل کند بادکنکي به رنگ سوال مربوطه دريافت مي کند.
- در محل مسابقه يک برد قرار دارد که نتيجه لحظه به لحظه در آن نمايش داده مي شود. در يک ساعت پاياني مسابقه اين برد Update نمي گردد.
- در 30 دقیقه پایانی براي افزايش هيجان مسابقه به تيم ها بادکنک داده نمي شود.
- اتصال کول دیسک (flash memory ) یا سی دی به کامپیوترهای مسابقه ممنوع است و در صورت کشف موجب محروميت تيمها خواهد شد .
- استفاده از هر وسیله غیر الکترونیکی(کتاب ،جزوه و…) در روز مسابقه بلامانع است.
- در صورت هر گونه تخلف ، داوران حق دارند که با شخص یا تیم خاطی بنا به صلاح دید خود برخورد نمایند.
- تیم ها میتوانند حداکثر 3 بار در طول مدت مسابقه از داوران بخواهند که کد ارسالی آن ها را بازبینی کند. البته باید قبل از ارسال راه حل بعدی به داوران اطلاع دهند. در صورت اعتراض بیش تر با آنها برخورد خواهد شد و از امتیاز آنها کسر میشود.
نرم افزار های برنامه نویسی نصب شده در جدول زیر آمده است.
نرم افزار برنامه نویسی (IDE) | زبان برنامه نویسی | کامپایلر پیشفرض |
code blocks | C/C++ | MinGW(GCC) |
dev c++ | C/C++ | MinGW(GCC) |
Eclipse | Java | open jdk 8 |
Netbeans | Java | jdk 8 |
PyCharm | Python | cython |
Notepad++ | All | no compiler |
مختصری درباره ی مسابقات ACM
ACM International Collegiate Programming Contest یا به اختصار ACM-ICPC مسابقه سالانهی برنامهنویسی میان دانشگاههای جهان است. این رقابت تحت حمایت انجمن ماشینهای کامپیوتری (ACM) و با مدیریت دانشگاه Baylor و پشتیبانی مالی IBM برگزار میشود و دارای حوزههای منطقهای در هر شش قاره است. مدیر اجرایی ارشد مسابقه پروفسور William B. Poucher از دانشگاه Baylor می باشند. در این نوشته به بررسی تاریخچه و نحوه برگزاری این مسابقات، قوانین حاکم بر آن و آمادگی برای این مسابقات خواهیم پرداخت و در انتها در مورد نحوه عضویت در تیم ICPC دانشکده توضیحاتی را ارائه می کنیم.
- تاریخچه
پیشینهی مسابقات برنامهنویسی دانشگاهی بینالمللی ICPC به رقابتی که در سال 1970 توسط واحد آلفای انجمن افتخاری علوم کامپیوتری UPE در دانشگاه Texas A&M برگزار شد باز میگردد. این رقابت در سال 1977 به شکل چند مرحلهای کنونی خود در آمد و اولین دورهی نهایی در ضمن کنفرانس علوم کامپیوتر ACM برگزار شد. از 1977 تا 1989 غالبا تیمهای آمریکایی و کانادایی در مسابقه شرکت داشتند. با استقرار در دانشگاه Baylor از سال 1989 و راه اندازی مسابقات منطقهای در اتحادیهی دانشگاههای جهان، حمایت ACM و پشتیبانی صنایع مختلف، ICPC تبدیل به یک رویداد معتبر جهانی با شرکت تیمهایی از 84 کشور جهان در 2005 شده است.
از زمان شروع پشتیبانی مالی IBM در سال 1997، میزان حضور در رقابت به طور گستردهای افزایش یافته است. در 1997، 840 تیم از 560 دانشگاه در رقابت شرکت کردند که این تعداد در 2007 به 6700 تیم از 1821 دانشگاه مختلف رسید. تعداد تیمها هر سال %20-10 افزایش مییابد.
- مسابقات Regional و World Final
این رقابت شامل چندین مرحله است. دانشگاههای بسیاری برای تعیین شرکت کنندگان مرحلهی منطقهای مسابقات محلی برگزار میکنند. سپس، دانشگاهها در مسابقهی منطقهای رقابت میکنند. برندگان این رقابتها به فینال جهانی ACM-ICPC راه مییابند. در مسابقهی منطقهای امکان حضور بیش از یک تیم از هر دانشگاه وجود دارد، اما در مرحله ی فینال فقط یک تیم از هر دانشگاه رقابت خواهد کرد. از هر منطقه، حداقل یک تیم به مرحلهی فینال راه مییابد. مناطق با تعداد زیاد تیم، چندین تیم (گاهی تا 6 تیم) به مرحلهی فینال اعزام میکند.
- قوانین مربوط به مسابقه جهانی
ICPC رقابتی تیمی است. قوانین کنونی تصریح میکنند که هر تیم باید از سه دانشجو که تا پیش از مسابقه کمتر از 5 سال از تحصیل آنها در دانشگاه گذشته باشد، تشکیل شود. هیج دانشجویی حق حضور در بیش از دو دوره مسابقهی World Final و 5 دوره Regional را ندارد.در حین مسابقه هر تیم در حدود ۵ ساعت زمان خواهد داشت تا ۸-۱۲مسئلهی برنامهنویسی را حل کرده و راه حل خود را بصورت برنامههایی به زبانهایی از جمله C، C++ ، Pascal و یا Java ثبت کنند. سپس این برنامهها با دادههای آزمون توسط نرم افزاری موسوم به PC2 اجرا میشوند. اگر برنامه ای قادر به ارائهی پاسخ صحیح نباشد، تیم ارسال کننده مطلع شده و به تصحیح آن میپردازد. همچنین شما می توانید تعدادی برگه (عموما 15 برگ A4) را با خود به امتحان ببرید که محتوای آن به هیچ عنوان مد نظر نیست و می تواند هر چیزی اعم از کد، کتاب، فرمول و … باشد.
برندهی نهایی تیمی است که بیشترین تعداد مسئله را حل کند. در صورت الزام به رتبهبندی تیمها برای مدالها و جوایز، رتبهی هر تیم بر اساس مجموع زمانهای صرف شده تا ارائهی پاسخ صحیح بعلاوهی 20 دقیقه جریمه به ازای هر مرتبه ارائهی پاسخ نادرست مسئلهی حل شده مشخص میشود.در مقایسه با سایر رقابتهای برنامهنویسی، در ICPC با تعداد مسئلهی زیاد آن (۸یا بیشتر) در مدت زمان محدود (5 ساعت) ICPC رقابتی سخت تر و البته با هیجان بالاتری می باشد. همچنین علی رغم این موضوع که هر تیم شامل سه نفر است، اما هر تیم میتواند تنها از یک کامپیوتر استفاده کند که این نکته فشار زمان را بیشتر میکند.
- وضعیت مسابقات در ایران
این مسابقات هر سال در اوایل آذر ماه برگزار می شود و دو یا 3 تیم ابتدایی (با توجه به اینکه تنها یک تیم از یک دانشگاه می تواند به World Final صعود کند) به مسابقات World Final اعزام می شوند. در این مسابقات تیم دانشگاه شریف در هر 10 سال گذشته به عنوان یکی از نمایندگان ایران در این مسابقات بوده است. همچنین تیم دانشگاه امیر کبیر در 8 دوره (به جز سالهای 2001 و 2006)، دانشگاه فردوسی مشهد 1 دوره(سال 2001) ، دانشگاه شهید بهشتی 1 دوره (سال 2006)،دانشکده علوم تهران 1 دوره(سال 2008) و … به عنوان نمایندگان ایران در این مسابقات بودند.بهترین نتیجه ایرانیان تا به حال رتبه 9 امی این مسابقات در سال 2001 بوده که توسط دانشگاه شریف بدست آمده است.
- تاثیر ICPC در آینده علمی
با توجه به تئوری بودن اکثریت مباحث در دانشگاه و توجه کمتر مسئولان به فعالیت های عملی در دنیای واقعی، ICP فرصت بسیار خوبی برای بکارگیری این دانش تئوری و تبدیل آن به مهارت می باشد. در هرصورت موضوع مشخص این است که ICPC چیزی جز درس یک مهندس ;امپیوتر نیست و تنها به صورت عملی و رقابتی در ICPC مطرح می گردد و مسلما بنیه علمی شما را تقویت می کند. همچنین عموما هر سال در مسابقات Regional و World final به 10 الی 15 تیم ابتدایی لوح افتخاری با تایید شرکت IBM به شرکت کنندگان اهدا می گردد که تاثیر بسیار خوبی در رزومه علمی شما و عملا ادامه تحصیلات عالیه خواهد داشت.
- تاثیر ICPC در آینده کاری در ایران
در چند سال اخیر مسابقات برنامه نویسی متفاوتی در سطح کشور برگزار شده است که مورد توجه شرکت های فعال کشور بوده است و از رتبه های برتر مسابقات نیز برای کار در شرکت های مختلف دعوت به عمل آمده است. افرادی که تجربه شرکت در چنین مسابقاتی را دارند و یا رتبه نیز آورده اند معمولا در محیط کاری موفق تر بوده اند.
- چگونه برای مسابقه آماده شویم؟
بهترین راه برای آمادگی برای مسابقات شرکت کردن در یک مسابقه برنامه نویسی و آشنایی با جو حاکم بر مسابقات می باشد . همچنین آشنایی با نوع سوالات ، الگوریتم های برنامه نویسی و یادگیری یک زبان برنامه نویسی این مسیر را برای شما هموار تر خواهد کرد. می توانید برای آمادگی بیشتر نمونه سوالات دوره قبل را از لینک زیر دانلود کنید:
انجمن علمی مهندسی کامپیوتر دانشگاه صنعتی همدان در نظر دارد با برگزاری مسابقات متعدد به صورت پیوسته و همچنین برگزاری کلاس های آموزشی شما را در رسیدن به سطوح بالاتر همراهی نماید.
در صورت برخورد با هرگونه سوال یا مشکل با ایمیل zareehassan118@gmail.com تماس بگیرید.