گروه ACM موسسه غیرانتفاعی هاتف زاهدان

آپلود عکس
آپلود عکس

تاریخچه ACM :

ACM مخفف عبارت Association for Computing Machinery است و نام اولین انجمن علوم کامپیوتر می باشد که در سال 1947 تاسیس شده است.

ICPC مخفف International Collegiate Programming Contestاست و به نوع خاصی از مسابقات برنامه نویسی گفته می شود. اولین مسابقه رسمی ICPC توسط انجمن ACM در سال 1976 برگزار شد و از سال 1980 به بعد نظارت بر این مسابقات به دانشگاه Baylor واگذار شد. از این مسابقات استقبال گسترده ای به عمل آمد و به سرعت گسترش یافت تا جایی که در سال 1997،IBM به عنوان sponsor (حامی) اصلی این مسابقات معرفی شد و تعداد تیم های شرکت کننده به بیش از 3000 تیم از بهترین دانشجویان 67 کشور دنیا رسید.

قاره آسیا از سال 1995 به مسابقات ACM پیوست و بعد از 4 سال تهران نیز به عنوان یکی از سایتهای قاره آسیا پذیرفته شد. دانشگاه شریف به عنوان یکی از 10 سایت آسیا تا کنون 7 دوره مسابقه برگزار کرده است همه ساله آن را در اواخر پاییز برگزار می کند. در این مسابقات تیمهایی از دانشگاههای سرتاسر آسیا از جمله دانشگاههای داخل کشور در رقابتی تنگاتنگ برای حضور در مرحله نهایی و مسابقات جهانی پا به میدان می گذارند.

 

آشنایی با برخی قوانین مسابقات :

موضوع این مسابقات برنامه نویسی و طراحی الگوریتم بهینه است. تیم ها شامل 3 دانشجو و یک سرپرست (coach) هستند و باید به سوالاتی که پاسخ آنها کدهای برنامه نویسی هستند جواب دهند. هدف در این مسابقات یافتن استعدادهای برتر برنامه نویسی است که عموماً توسط شرکت های بزرگ به کار گرفته می شوند. همانطور که عنوان شد تیمهای شرکت کننده در این مسابقات از سه عضو تشکیل می شود که بنابر یک قانون نانوشته اما ضروری باید واجد شرایط خاصی باشند. از جمله اینکه:

1- باید به یکی از زبانهای برنامه نویسی متداول و اعلام شده توسط کمیته اجرایی مسابقات تسلط کامل داشته باشند. این زبانها عموماC++ ، C و یا جاوا  می باشند.

2- اعضای تیم باید تسلط کافی بر مفاهیم طراحی الگوریتم ، بهینه سازی الگوریتم ، پیچیدگی الگوریتم ، ساختمان داده ها و ... داشته باشند.

3- حداقل یکی از اعضای تیم باید تسلط کامل بر زبان انگلیسی داشته باشد تا بتواند سوالات را به زبان مادری ترجمه و در اختیار سایر اعضای گروه قرار دهد. ( سوالات این مسابقات در تمامی مراحل به زبان انگلیسی طرح می شود.)

4- حداقل یکی از اعضا باید دست به تایپ خوبی داشته باشد تا بتواند الگوریتمهای طراحی شده را سریعا به کد تبدیل کند. (تمامی مراحل این مسابقات به صورت عملی و در پشت کامپیوتر برگزار می شود.)

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

پاسخ دادن به هر سوال در حقیقت نوشتن یک برنامه است. به عبارت دیگر در صورت مسئله از شرکت کنندگان خواسته می شود تا برنامه ای بنویسند که اطلاعات مشخصی را از فایل ورودی معینی، (مثلا A.in) بخوانند و پس از انجام پردازش های خاصی که در متن سوال آمده، نتیجه را در یک فایل خروجی (مثلا A.out) یا خروجی استاندارد (مانیتور) چاپ کنند.

هر دانشگاه تعدادی دانشجو -با توجه به ظرفیتی که دانشگاه شریف مشخص می کند- برای شرکت در مسابقات به تهران اعزام می کند؛ که این ظرفیت با توجه به تعداد سوالهای حل شده توسط تیمهای دانشگاه در دوره های قبل مشخص می شود. معمولا دانشگاه ها برای انتخاب تیم های اعزامی خود، یا مسابقاتی محلی در سطح دانشگاه خود برگزار می کنند و یا اینکه از دانشجویان می خواهند که در مسابقه Online شریف که معمولا در مهر ماه برگزار می شود، شرکت کنند و از نتیجه آن به عنوان ملاکی برای تعیین تیمهای اعزامی به شریف استفاده می کنند.