ای سی ام (Association for Computing Machinery) یک مسابقه برنامه نویسی دانشجویی است که هر ساله در دنیا برگزار می شود . در این مسابقات تیم ها در قالب هایی ۳ نفره شرکت می کنند و به هر تیم یک دستگاه رایانه جهت برنامه نویسی داده می شود . نحوه ی سنجش تیم ها به این گونه است که در مسابقات حدودا ۸ سوال محاسباتی و الگوریتمی می دهند که هر تیمی سوال های بیشتری در مدت زمان کم تری با خطای کم تری حل کند رتبه ی بهتری کسب می کند .
مسابقات منطقهای غرب آسیا از سال ۱۳۷۸ تا کنون (به جز سال ۱۳۹۰) در دانشگاه صنعتی شریف برگزار می شد. مسئولیت این مسابقات بر عهدۀ دکتر محمد قدسی است. در سال ۱۳۹۰ به علت حضور دکتر محمد قدسی در فرصت مطالعاتی ، این مسابقه به میزبانی دانشگاه تهران و با مسئولیت دکتر رامتین خسروی برگزار گردید.
در چنین مسابقاتی علاوه بر تسلط بر یکی از زبانهای برنامهنویسی سی، سی پلاسپلاس، جاوا یا پایتون مباحثی نظیر طراحی الگوریتم و ساختمان دادهها بسیار تأثیرگذار هستند.
شرایط شرکت در مسابقات
برای رسیدن به مسابقات جهانی ای سی ام شما باید در مسابقات منطقه ای شرکت کنید و در صورت گرفتن نتیجه خوب می توانید به مسابقات جهانی بروید .
دانشگاه شریف هر ساله مسابقات ای سی ام منطقه ای را در ایران برگزار می کند که در آن هرسال بهترین تیم های ایران و منطقه مثل هندوستان و روسیه و … در آن حضور پیدا می کنند . برای شرکت در مسابقات منطقه ای می توانید به سایت acm.blog.ir مراجعه کنید.
آمادگی برای مسابقات و منابع مسابقات
قبل از نوشتن راه های آماده شدن برای ای سی ام به این نکته که کلید اصلی موفقیت در ای سی ام است توجه کنید : ای سی ام (acm) یک مسابقه گروهی است و هدف اصلی برگزار کنندگان آن انجام کار گروهی است ، پس هر کاری که می خواهید انجام دهید باید گروهی صورت بگیرد و راز موفقیت یک گروه قوی بودن افراد یک گروه نیست بلکه یک دست بودن افراد تیم است پس پیش از هر کاری یک تیم خوب داشته باشید .
بهترین روش برای آمادگی در مسابقات ای سی ام عضویت در سایت هایی هست که در مورد این کاری اند و تعداد زیادی سوال اس سی ام در آن است مانند :
- Sharecode.ir
- projecteuler.net
- codeforces.com
کتاب های زیادی هم در این باره نوشته شده است که با یک سرچ ساده میتوان آن ها را پیدا کرد از جمله این موارد که یکی از معروف ترین ها میباشد کتاب programming challenges نوشته Steven Skiena می باشد.
تیم های موفق در این مسابقات تیم هایی هستند که معمولا از سال اول دانشگاه، استارت شروع کار را می زنند . پس تیمتان را از همین روزها تکمیل کنید و به حل سوال ها به صورت گروهی بپردازید.
قوانین مسابقه
مسابقات بینالمللی برنامهنویسی دانشجویی یک مسابقه تیمی میباشد. قوانین موجود بیان میکنند که هر تیم باید شامل ۳ نفر باشد. شرکتکنندگان باید در دانشگاه مشغول به تحصیل باشند و کمتر از ۵ سال سابقه حضور در دانشگاه داشته باشند. دانشجویانی که دو بار در مرحله جهانی حضور داشتهاند نیز نمیتوانند در مسابقه شرکت کنند. مدت مسابقه ۵ ساعت و تعداد سؤالاتی معمولاً بین ۸ تا ۱۲ سؤال است. تیمها که تنها یک رایانه در اختیار دارند، باید جوابهای خود را در قالب کدهای سی، سی پلاسپلاس، پایتون یا جاوا به سیستم داوری خودکار ارسال کنند. سپس برنامههای ارسالی توسط دادهها مورد آزمایش قرار میگیرند. اگر برنامهای نتواند در مقابل تمام دادهها پاسخ درستی بدهد مورد قبول واقع نمی شود و تیم با احتساب جریمه میتواند برنامه دیگری ارسال کند.
تیمی برنده است که بیشترین تعداد سؤالها را به درستی حل کند. اگر رتبهبندی تیمها برای دریافت مدال و جوایز ضروری باشد، رتبه تیم با توجه به زمان سپری شده در هر مرحله برای ارسال پاسخ درست به علاوه بیست دقیقه برای هر پاسخ نادرست که قبل از هر سؤال حل شده ارسال شده، تعریف میشود.