ای سی ام (ACM) چیست؟
ای سی ام (Association for Computing Machinery) یک مسابقه برنامه نویسی است که هر ساله در دنیا برگزار می شود . در این مسابقات تیم ها در قالب هایی ۳ نفره شرکت می کنند و به هر تیم یک دستگاه رایانه جهت برنامه نویسی داده ی شود .
نحوه ی سنجش تیم ها به این گونه است که در مسابقات حدودا ۸ سوال محاسباتی و الگوریتمی می دهند هر تیمی سوال های بیشتری در مدت زمان کم تری با خطای کم تری حل کند رتبه ی بهتری کسب می کند .
چگونه در این مسابقات شرکت کنیم؟
برای رسیدن به مسابقات جهانی ای سی ام شما باید در مسابقات منطقه ای شرکت کنید و در صورت گرفتن نتیجه خوب می توانید به مسابقات جهانی بروید . دانشگاه شریف هر ساله مسابقات ای سی ام منطقه ای را در ایران برگزار می کند که در آن هرسال بهترین تیم های ایران و منطقه مثل هندوستان و روسیه و … در آن حضور دارند.
هدف از ای سی ام چیست ؟
سوال اصلی در هر کاری این است که ما چرا باید در آن کار شرکت کنیم؟
این سوال در مورد ACM به طور جدی تری مطرح است، زیرا یک مسئله ی فوق برنامه در دوران دانشجویی محسوب می شود که می تواند وقت و انرژی دانشجو را نیز بگیرد.آیا ما تنها به خاطر مزیت های پیروزی در مسابقات ACM در آن شرکت می کنیم؟ در این صورت فرق ACM با المپیاد کامپیوتر چیست؟ و اگر ما در این مسابقات پیروز نشویم، چه چیزهایی بدست آورده ایم و چیزهایی از دست داده ایم؟ و مهم تر از آن در هدف اکثر تیم های شرکت کننده وجود دارد.
برخلاف مسابقات المپیاد کامپیوتر که در آن هدف تنها استفاده از مزیت های پیروزی در این مسابقات است و در صورت باخت در آن جز اندکی علم خاص، چیز دیگری برای ما باقی نمی ماند، در مسابقات ACM هدف خود مسابقات است و نه پیروزی در آن! این بدان معنا است که شما در مسابقات ACM برخلاف المپیاد، باید از خود مسابقات لذت ببرید، از کد زدن لذت ببرید و از فکری که پشت این کدها است؛ نه تنها برای پیروزی در این مسابقات و درج این پیروزی در رزومه ی خود. گرچه ACM مزیت های قراردادی زیادی دارد، ولی هدف اصلی آن این مزیت فلسفی و ذاتی آن است.
روش برگزاری ACM
اساس این مسابقه بر مهارتهای کد نویسی به زبانهای جاوا، سی،سی پلاس پلاس و پایتون، همکاری تیمی و هنر حل مسئله است. این مسابقات بهصورت تیمهای سهنفره انجام میشود ولی در مواردی خاص مسابقات تکنفره آن نیز به صورت مستقل برگزار میگردد.
سؤالات این مسابقات بهصورت انگلیسی طراحی میشوند و عموماً به صورت مشکلی در دنیای واقعی بیان میگردند.
شرکت کنندگان باید با توجه به شرح مسئله و دادههای نمونه شامل ورودی و خروجی درست مسئله، برنامهای نوشته و برای داوران ارسال کنند. داوران با دریافت هر کد برنامه آن را اجرا و با دادههای از قبل آمادهشده بهجز آنهایی که در اختیار شرکت کنندگان است محک میزنند.
برنامه شرکت کنندگان باید عیناً به ازای هر ورودی، خروجی موردنظر را چاپ کند در غیر این صورت برنامه آنها رد خواهد شد.
این مسابقات بهطورمعمول بهصورت پنجساعته برگزار میشود و معیار برتری هر تیم نسبت به سایر تیمها تعداد سؤال حلشده آنها در پایان مسابقه است.
در مورد تیم هایی با تعداد سؤال برابر مجموع زمان مورد استفاده برای حل سؤالات معیار قرار میگیرد و زمان کمتر دارای رتبه بهتری خواهد بود.
در این مسابقات هر تلاش اشتباه در حل سؤالات با جریمه زمانی داوران همراه خواهد بود و زمانی بهطورمعمول ۲۰ دقیقه به مجموع زمان آن تیم اضافه خواهد شد.
شما در مسابقه برای هر سؤال یک بادکنک! بارنگی خاص دریافت خواهید کرد و از بادکنک بهعنوان نماد اصلی این مسابقات میتوان یادکرد.یکی دیگر از رسمهای مرسوم در این مسابقات ترکاندن بادکنک در پایان مسابقه میتوان نام برد.
با شرکت در ای سی ام چه چیز به دست می آوریم؟
با شرکت در مسابقات ای سی ام علاوه بر لذتی که در آماده شدن و کد زدن و فکر کردن است به دو چیز خیلی مهم دیگر هم دست پیدا می کنیم:
۱ – طراحی الگوریتم
۲ – برنامه نویسی سریع
سوال های ACM سوال های خشک و کلیشه ای برنامه نویسی نیستند بلکه سوال هایی هستند که جنبه محاسباتی و الگوریتمی دارد پس با تسلط بر این سوال ها الگوریتم و ذهن خود را به شدت تقویت می کنید.
چه طور در این طرح برای ACM مسابقات آماده شویم ؟
تیم های موفق در این مسابقات تیم هایی هستند که معمولا از سال اول آغاز دانشگاه استارت شروع کار را می زنند پس تیم هاتون رو درست کنید و شروع کنید به کاربرنامه نویسی با رویکرد حل مسئله و…
اگر بخواهید از دوران دانشگاهیتون لذت ببرید باید کار تیمی رو زود شروع کنید .