برگزاری ششمین دوره مسابقات برنامه نویسی ACM

 

انجمن علمی دانشگاه صنعتی همدان در نظر دارد در تاریخ ۲۸ اردیبهشت ماه ۱۳۹۶ در محل سایت دانشگاه صنعتی همدان به برگزاری ششمین دوره از مسابقات ACM بپردازد. جوایز نفیسی برای این دوره از مسابقات در نظر گرفته شده است که به شرح زیر است:

  1. نفر اول ۵۰۰۰۰۰۰ ریال
  2. نفر دوم ۳۰۰۰۰۰۰ ریال
  3. نفر سوم ۲۰۰۰۰۰۰ ریال                                

همچنین جهت تشویق دانشجویان ورودی، به برترین تیم از این دانشجویان مبلغ ۱۰۰۰۰۰۰ ریال جایزه اهدا می گردد.

جهت ثبتنام به دفتر انجمن کامپیوتر مراجعه کنید.            

         

 

               

قوانین ششمین دوره مسابقات برنامه نویسی ACM – ICPC دانشگاه صنعتی همدان

  1. مدت مسابقه ۳ ساعت است.
  2. در روز مسابقه ۵ مسئله به زبان انگلیسی داده خواهد شد.
  3. هر تیم میتواند شامل ۲ یا ۳ عضو از دانشجویان دانشگاه باشد.
  4. حضور سر گروه تیم شرکت کننده در جلسه ی توجیهی اجباری می باشد.
  5. در روز مسابقه یک سیستم با سیستم عامل Windows 7 در اختیار هر تیم قرار داده می شود که اعضاء تیم می بایست به صورت مشترک از آن استفاده نمایند.
  6. تیم های شرکت کننده در مسابقه می توانند با یکی از پنج زبان برنامه نویسی آمده در فرم ثبت نام ( جاوا ، سی ، سی ++ ، پایتون ۲ و پایتون ۳ ) به سوالات پاسخ دهند.
  7. تیم ‌ها بر اساس تعداد مسئله های حل شده توسط آن ها مرتب می ‌شوند.
  8.  رتبه تیم‌ هایی که به تعداد مساوی مساله حل کرده اند ، بر اساس مجموع زمان صرف شده برای حل مسائل (از کوچک به بزرگ) مرتب می ‌شود.
  9. زمان صرف شده برای حل یک مسئله از ابتدای مسابقه تا زمان حل موفق آن مسئله حساب می ‌شود. هر ارائه غلط حل، ۲۰ دقیقه جریمه (Penalty) به این زمانمی ‌افزاید. البته این جریمه وقتی محاسبه می ‌شود که آن مسئله جواب صحیح بگیرد.
  10. در صورت برابر بودن تیم ها با شرایط قانون ۵ تیمی که تعداد جریمه کمتری داشته باشد در اولویت بهتری خواهد داشت.
  11. محیط برگزاری مسابقه نرم ‌افزاری به نام PC2 است که محصول شرکت IBM است. این محیط امکان ارسال راه حل تیم ها به داوران، ارسال پرسش از صورت مساله و ارائه نتیجه کار و رتبه ‌بندی تیم ‌ها را به همه فراهم می کند.
  12. راه ‌حل ‌ها از طریق شبکه به داوران ارسال می شود و پس از زمان کوتاهی درستی یا نادرستی راه ‌حل به اطلاع تیم ارسال کننده رسانده می ‌شود.
  13. برای هر مسئله یک رنگ خاص در نظر گرفته شده و هر تیمی که سوالی را حل کند بادکنکی به رنگ سوال مربوطه دریافت می کند.
  14. در محل مسابقه یک برد قرار دارد که نتیجه لحظه به لحظه در آن نمایش داده می شود. در یک ساعت پایانی مسابقه این برد Update نمی گردد.
  15. در ۳۰ دقیقه پایانی برای افزایش هیجان مسابقه به تیم ها بادکنک داده نمی شود.
  16. اتصال کول دیسک (flash memory ) یا سی دی به کامپیوترهای مسابقه ممنوع است و در صورت کشف موجب محرومیت تیم‌ها خواهد شد .
  17. استفاده از هر وسیله غیر الکترونیکی(کتاب ،جزوه و…) در روز مسابقه بلامانع است.
  18. در صورت هر گونه تخلف ، داوران حق دارند که با شخص یا تیم خاطی بنا به صلاح دید خود برخورد نمایند.
  19. تیم ها میتوانند حداکثر ۳ بار در طول مدت مسابقه از داوران بخواهند که کد ارسالی آن ها را بازبینی کند. البته باید قبل از ارسال راه حل بعدی به داوران اطلاع دهند. در صورت اعتراض بیش تر با آن­ها برخورد خواهد شد و از امتیاز آنها کسر میشود.
  20. شرکت کنندگان نمی توانند در کد­ های خود از فایل بخوانند یا در فایل بنویسند.

 

نرم افزار های برنامه نویسی نصب شده در جدول زیر آمده است.

نرم افزار برنامه نویسی (IDE) زبان برنامه نویسی کامپایلر پیشفرض
code blocks C/C++ MinGW(GCC)
dev c++ C/C++ MinGW(GCC)
Eclipse Java open jdk 7
Netbeans Java jdk 7
Python IDLE Python cython
Notepad++ All no compiler

 

 

 

مختصری درباره ی مسابقات ACM

ACM International Collegiate Programming Contest یا به اختصار ACM-ICPC مسابقه‌‏ سالانه‌‏ی برنامه‌‏نویسی میان دانشگاه‏‌های جهان است. این رقابت تحت حمایت انجمن ماشین‌‏های کامپیوتری (ACM) و با مدیریت دانشگاه Baylor و پشتیبانی مالی IBM برگزار می‏شود و دارای حوزه‌‏های منطقه‏‌ای در هر شش قاره است. مدیر اجرایی ارشد مسابقه پروفسور William B. Poucher از دانشگاه Baylor می باشند. در این نوشته به بررسی تاریخچه و نحوه برگزاری این مسابقات، قوانین حاکم بر آن و آمادگی برای این مسابقات خواهیم پرداخت و در انتها در مورد نحوه عضویت در تیم ICPC دانشکده توضیحاتی را ارائه می کنیم.

  • تاریخچه

پیشینه‌‏ی مسابقات برنامه‌‏نویسی دانشگاهی بین‌‏المللی ICPC به رقابتی که در سال ۱۹۷۰ توسط واحد آلفای انجمن افتخاری علوم کامپیوتری UPE در دانشگاه Texas A&M برگزار شد باز می‌‏گردد. این رقابت در سال ۱۹۷۷ به شکل چند مرحله‌‏ای کنونی خود در آمد و اولین دور‌ه‌‏ی نهایی در ضمن کنفرانس علوم کامپیوتر ACM برگزار شد. از ۱۹۷۷ تا ۱۹۸۹ غالبا تیم‏های آمریکایی و کانادایی در مسابقه شرکت داشتند. با استقرار در دانشگاه Baylor از سال ۱۹۸۹ و راه ‏اندازی مسابقات منطقه‌‏ای در اتحادیه‌‏ی دانشگاه‌‏های جهان، حمایت ACM و پشتیبانی صنایع مختلف، ICPC تبدیل به یک رویداد معتبر جهانی با شرکت تیم‌‏هایی از ۸۴ کشور جهان در ۲۰۰۵ شده است.

از زمان شروع پشتیبانی مالی IBM در سال ۱۹۹۷، میزان حضور در رقابت به طور گسترده‌‏ای افزایش یافته است. در ۱۹۹۷، ۸۴۰ تیم از ۵۶۰ دانشگاه در رقابت شرکت کردند که این تعداد در ۲۰۰۷ به ۶۷۰۰ تیم از ۱۸۲۱ دانشگاه مختلف رسید. تعداد تیم‏ها هر سال %۲۰-۱۰ افزایش می‏یابد.

  • مسابقات Regional و World Final

این رقابت شامل چندین مرحله است. دانشگاه‌‏های بسیاری برای تعیین شرکت ‏کنندگان مرحله‏‌ی منطقه‌‏ای مسابقات محلی برگزار می‌‏کنند. سپس، دانشگاه‌‏ها در مسابقه‌‏ی منطقه‌‏ای رقابت می‏کنند. برندگان این رقابت‌‏ها به فینال جهانی ACM-ICPC راه می‏یابند. در مسابقه‌‏ی منطقه‌‏ای امکان حضور بیش از یک تیم از هر دانشگاه وجود دارد، اما در مرحله‏ ی فینال فقط یک تیم از هر دانشگاه رقابت خواهد کرد. از هر منطقه، حداقل یک تیم به مرحله‏‌ی فینال راه می‌‏یابد. مناطق با تعداد زیاد تیم، چندین تیم (گاهی تا ۶ تیم) به مرحله‌‏ی فینال اعزام می‏کند.

  • قوانین مربوط به مسابقه جهانی

ICPC رقابتی تیمی است. قوانین کنونی تصریح می‌‏کنند که هر تیم باید از سه دانشجو که تا پیش از مسابقه کمتر از ۵ سال از تحصیل آنها در دانشگاه گذشته باشد، تشکیل شود. هیج دانشجویی حق حضور در بیش از دو دوره مسابقه‌‏ی World Final و ۵ دوره Regional را ندارد.در حین مسابقه هر تیم در حدود ۵ ساعت زمان خواهد داشت تا ۸-۱۲مسئله‌‏ی برنامه‌‏نویسی را حل کرده و راه ‏حل خود را بصورت برنامه‌‏هایی به زبان‏هایی از جمله C، C++ ، Pascal و یا Java ثبت کنند. سپس این برنامه‌‏ها با داده‌‏های آزمون توسط نرم افزاری موسوم به PC2 اجرا می‌‏شوند. اگر برنامه‏ ای قادر به ارائه‌‏ی پاسخ صحیح نباشد، تیم ارسال کننده مطلع شده و به تصحیح آن می‌‏پردازد. همچنین شما می توانید تعدادی برگه (عموما ۱۵ برگ A4) را با خود به امتحان ببرید که محتوای آن به هیچ عنوان مد نظر نیست و می تواند هر چیزی اعم از کد، کتاب، فرمول و … باشد.

برنده‏‌ی نهایی تیمی است که بیشترین تعداد مسئله را حل کند. در صورت الزام به رتبه‏‌بندی تیم‏ها برای مدال‏‌ها و جوایز، رتبه‌‏ی هر تیم بر اساس مجموع زمان‏‌های صرف شده تا ارائه‌‏ی پاسخ صحیح بعلاوه‌‏ی ۲۰ دقیقه جریمه به ازای هر مرتبه ارائه‌‏ی پاسخ نادرست مسئله‌‏ی حل ‏شده مشخص می‌‏شود.در مقایسه با سایر رقابت‌‏های برنامه‌‏نویسی، در  ICPC با تعداد مسئله‌‏ی زیاد آن (۸یا بیشتر) در مدت زمان محدود (۵ ساعت) ICPC رقابتی سخت تر و البته با هیجان بالاتری می باشد. همچنین علی رغم این موضوع که هر تیم شامل سه نفر است، اما هر تیم می‌‏تواند تنها از یک کامپیوتر استفاده کند که این نکته فشار زمان را بیشتر می‏کند.

  • وضعیت مسابقات در ایران

این مسابقات هر سال در اوایل آذر ماه برگزار می شود و دو یا ۳ تیم ابتدایی (با توجه به اینکه تنها یک تیم از یک دانشگاه می تواند به World Final صعود کند) به مسابقات World Final اعزام می شوند. در این مسابقات تیم دانشگاه شریف در هر ۱۰ سال گذشته به عنوان یکی از نمایندگان ایران در این مسابقات بوده است. همچنین تیم دانشگاه امیر کبیر در ۸ دوره (به جز سالهای ۲۰۰۱ و ۲۰۰۶)، دانشگاه فردوسی مشهد ۱ دوره(سال ۲۰۰۱) ، دانشگاه شهید بهشتی ۱ دوره (سال ۲۰۰۶)،دانشکده علوم تهران ۱ دوره(سال ۲۰۰۸) و … به عنوان نمایندگان ایران در این مسابقات بودند.بهترین نتیجه ایرانیان تا به حال رتبه ۹ امی این مسابقات در سال ۲۰۰۱ بوده که توسط دانشگاه شریف بدست آمده است.

  • تاثیر ICPC در آینده علمی

با توجه به تئوری بودن اکثریت مباحث در دانشگاه و توجه کمتر مسئولان به فعالیت های عملی در دنیای واقعی، ICP فرصت بسیار خوبی برای بکارگیری این دانش تئوری و تبدیل آن به مهارت می باشد. در هرصورت موضوع مشخص این است که ICPC چیزی جز درس یک مهندس ;امپیوتر نیست و تنها به صورت عملی و رقابتی در ICPC مطرح می گردد و مسلما بنیه علمی شما را تقویت می کند. همچنین عموما هر سال در مسابقات Regional و World final به ۱۰ الی ۱۵ تیم ابتدایی لوح افتخاری با تایید شرکت IBM به شرکت کنندگان اهدا می گردد که تاثیر بسیار خوبی در رزومه علمی شما و عملا ادامه تحصیلات عالیه خواهد داشت.

  • تاثیر ICPC در آینده کاری در ایران

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

  • چگونه برای مسابقه آماده شویم؟
  • بهترین راه برای آمادگی برای مسابقات شرکت کردن در یک مسابقه برنامه نویسی و آشنایی با جو حاکم بر مسابقات می باشد . همچنین آشنایی با نوع سوالات ، الگوریتم های برنامه نویسی و یادگیری یک زبان برنامه نویسی این مسیر را برای شما هموار تر خواهد کرد. می توانید برای آمادگی بیشتر نمونه سوالات دوره قبل را از لینک زیر دانلود کنید:

 

انجمن علمی مهندسی کامپیوتر دانشگاه صنعتی همدان در نظر دارد با برگزاری مسابقات متعدد به صورت پیوسته و همچنین برگزاری کلاس های آموزشی شما را در رسیدن به سطوح بالاتر همراهی نماید.

 

 

 
 

آخرین مطالب منتشر شده در سایت


دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *