مسابقه ACM ICPC چیست؟

ای سی ام (ACM) چیست؟

ای سی ام   (Association for Computing Machinery)  یک مسابقه برنامه نویسی است که هر ساله در دنیا برگزار می شود . در این مسابقات تیم ها در قالب هایی ۳ نفره شرکت می کنند و به هر تیم یک دستگاه رایانه جهت برنامه نویسی داده ی شود .

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

چگونه در این مسابقات شرکت کنیم؟

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

هدف از ای سی ام چیست ؟

سوال اصلی در هر کاری این است که ما چرا باید در آن کار شرکت کنیم؟

این سوال در مورد  ACM به طور جدی تری مطرح است، زیرا یک مسئله ی فوق برنامه در دوران دانشجویی محسوب می شود که می تواند وقت و انرژی دانشجو را نیز بگیرد.آیا ما تنها به خاطر مزیت های پیروزی در مسابقات ACM در آن شرکت می کنیم؟ در این صورت فرق ACM با المپیاد کامپیوتر چیست؟ و اگر ما در این مسابقات پیروز نشویم، چه چیزهایی بدست آورده ایم و چیزهایی از دست داده ایم؟ و مهم تر از آن در هدف اکثر تیم های شرکت کننده وجود دارد.

برخلاف مسابقات المپیاد کامپیوتر که در آن هدف تنها استفاده از مزیت های پیروزی در این مسابقات است و در صورت باخت در آن جز اندکی علم خاص، چیز دیگری برای ما باقی نمی ماند، در مسابقات ACM هدف خود مسابقات است و نه پیروزی در آن! این بدان معنا است که شما در مسابقات ACM  برخلاف المپیاد، باید از خود مسابقات لذت ببرید، از کد زدن لذت ببرید و از فکری که پشت این کدها است؛ نه تنها برای پیروزی در این مسابقات و درج این پیروزی در رزومه ی خود. گرچه ACM  مزیت های قراردادی زیادی دارد، ولی هدف اصلی آن این مزیت فلسفی و ذاتی آن است.

روش برگزاری ACM

اساس این مسابقه بر مهارت‎های کد نویسی به زبان‎های جاوا، سی،سی پلاس پلاس و پایتون، همکاری تیمی و هنر حل مسئله است. این مسابقات به‌صورت تیم‌های سه‌نفره انجام می‎شود ولی در مواردی خاص مسابقات تک‌نفره آن نیز به‌ صورت مستقل برگزار می‎گردد.

سؤالات این مسابقات به‌صورت انگلیسی طراحی می‎شوند و عموماً به‌ صورت مشکلی در دنیای واقعی بیان می‎گردند.

شرکت ‎کنندگان باید با توجه به شرح مسئله و داده‎های نمونه شامل ورودی و خروجی درست مسئله، برنامه‎ای نوشته و برای داوران ارسال کنند. داوران با دریافت هر کد برنامه آن را اجرا و با داده‎های از قبل آماده‌شده به‌جز آن‎هایی که در اختیار شرکت‎ کنندگان است محک می‎زنند.

برنامه شرکت‎ کنندگان باید عیناً به ازای هر ورودی، خروجی موردنظر را چاپ کند در غیر این صورت برنامه آن‌ها رد خواهد شد.

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

در مورد تیم‎ هایی با تعداد سؤال برابر مجموع زمان مورد استفاده برای حل سؤالات معیار قرار می‎گیرد و زمان کمتر دارای رتبه بهتری خواهد بود.

در این مسابقات هر تلاش اشتباه در حل سؤالات با جریمه زمانی داوران همراه خواهد بود و زمانی به‌طورمعمول ۲۰ دقیقه به مجموع زمان آن تیم اضافه خواهد شد.

شما در مسابقه برای هر سؤال یک بادکنک! بارنگی خاص دریافت خواهید کرد و از بادکنک به‌عنوان نماد اصلی این مسابقات می‎توان یادکرد.یکی دیگر از رسم‌های مرسوم در این مسابقات ترکاندن بادکنک در پایان مسابقه می‌توان نام برد.

programming challenge

با شرکت در ای سی ام چه چیز به دست می آوریم؟

با شرکت در مسابقات ای سی ام علاوه بر لذتی که در آماده شدن و کد زدن و فکر کردن است به دو چیز خیلی مهم دیگر هم دست پیدا می کنیم:

۱ – طراحی الگوریتم

۲ – برنامه نویسی سریع

سوال های ACM  سوال های خشک و کلیشه ای برنامه نویسی نیستند بلکه  سوال هایی هستند که جنبه محاسباتی و الگوریتمی دارد پس با تسلط بر این سوال ها الگوریتم و ذهن خود را به شدت تقویت می کنید.

چه طور در این طرح برای ACM مسابقات آماده شویم ؟

تیم های موفق در این مسابقات تیم هایی هستند که معمولا از سال اول آغاز دانشگاه استارت شروع کار را می زنند  پس تیم هاتون رو درست کنید و شروع کنید به کاربرنامه نویسی با رویکرد حل مسئله و…

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

۰ نظر ۱

معرفی کتاب استاد عشق

"استاد عشق" اثری است که "ایرج حسابی" فرزند پروفسور "سید محمود حسابی" آن را به رشته ی تحریر درآورده است و در آن "نگاهی به زندگی و تلاش های پروفسور حسابی پدر علم فیزیک و مهندسی نوین ایران" داشته است. این اثر که در واقع خاطرات این شخصیت بزرگ ایرانی در عرصه ی علم و زندگی را در برمی گیرد به همت فرزند او گردآوری و تدوین شده و از همان نخستین باری که منتشر شد، توانست مخاطبین زیادی را به خود جلب کند. استقبال مخاطبان از این اثر به نحوی بود که پس از گذشت یک دهه از انتشار "استاد عشق" بیش از هفتاد بار مورد تجدید چاپ قرار گرفت.
"استاد عشق" که در هجده بخش تدوین و تنظیم شده، با "نگاهی به زندگی و تلاش های پروفسور حسابی پدر علم فیزیک و مهندسی نوین ایران"، موقعیتی را فراهم ساخته تا به عنوان یک ایرانی، بیشتر با این چهره ی مطرح علمی کشور آشنا شویم و از پروفسور حسابی، چیزی بیشتر از یک نام و عنوان بر سر در مراکز علمی کشور بدانیم. در این اثر به جنبه های مختلفی از زندگی پروفسور حسابی پرداخته شده که شجره نامه ی خانوادگی، دوران کودکی ، تحصیلات، سرگذشت وی در دیار غربت، مدرسه ی روحانیون، دیدار با اینشتین، تاسیس دانشگاه تهران، مشاغل و خدمت های ایشان به جامعه ی علمی، آثار به جا مانده از پروفسور حسابی و همچنین دانستنی های قابل توجهی را از جانب یکی از نزدیک ترین افراد به استاد، یعنی فرزندش "ایرج حسابی" در اختیار خوانندگان قرار می دهد. در پایان کتاب هم تصاویر جالبی ارائه شده که خوانندگان را بیشتر از این کتاب محظوظ خواهد کرد.

۱ نظر ۱

زبان برنامه نویسی جاوا

زبان برنامه نویسی جاوا چیست ؟

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

زبان برنامه نویسی جاوا (Java) چیست؟ جاوا JAVA، یک زبان برنامه نویسی است که با ویژگی شی گرا بودن، ارائه شده است. جاوا یک زبان برنامه نویسی رایگان است که به یک زبان فراگیر تبدیل شده است و توجه سازمان ها و شرکت های بزرگ را به خود جلب نموده است. گستردگی زبان برنامه نویسی جاوا، به حدی است که از برنامه های کاربردی و وب سایت ها تا تلفن های همراه و کنسول های بازی، در هر کدام، رد پای جاوا وجود دارد.

اهداف زبان برنامه نویسی جاوا (Java)

ابداع گر زبان جاوا، جیمز گاسلینگ است. او سعی نمود تا زبانی جدید ابداع کند تا بتواند جایگزین زبان برنامه نویسی ++C، شود و امکانات بیشتری نسبت به آن داشته باشد. از جمله اهداف ابداع زبان برنامه نویسی جاوا (Java)، عبارتند از:

  • سادگی و قابل فهم بودن
  • داشتن قابلیت انتقال (پرتابل)
  • شی گرا بودن
  • کارایی و عملکرد قدرتمند
  • خطای کم

----------------------------------------------------------------------------------------------------------

کاربرد های زبان برنامه نویسی جاوا (Java)

با استفاده از جاوا میتوان برنامه های رومیزی (Desktop)، برنامه های تحت وب (WEB)، برنامه های کاربردی (Enterprise) و برنامه های دیگر سیستم ها مانند تلفن همراه را نوشت. به گفته ی شرکت سازنده ی زبان برنامه نویسی جاوا (Java) (سان مایکروسیستمز)، سه میلیارد دستگاه، از این زبان برنامه نویسی استفاده می کنند که عبارتند از:

  • کنسول های بازی
  • سیستم های رباتیک
  • برنامه های موبایلی
  • کارت های هوشمند
  • برنامه های کاربردی، رو میزی و تحت وب
  • و …

اجزای زبان برنامه نویسی جاوا (Java)

زبان برنامه نویسی جاوا از دو بخش: رابط های برنامه نویسی کاربردی (API) و ماشین مجازی جاوا (Java Virtual Machine یا به اختصار JVM) تشکیل شده‌ است.

  • ماشین مجازی جاوا (JVM)

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

  • (Java SE (Standard Edition

این پلتفرم، شامل کتابخانه های اصلی زبان برنامه نویسی جاوا است. با استفاده از آن می توان برنامه های نوشته شده در جاوا را، توسعه داد. این پلتفرم شامل: کیت توسعه جاوا (JDK)، محیط زمان اجرای جاوا (JRE) و رابط برنامه‌نویسی کاربردی (API) است.

  • (Java EE (Enterprise Edition

این پلتفرم، نسخه ای تجاری است که برای ساخت وب و برنامه های تجاری ارائه شده است. با ابن پلتفرم می توان برنامه هایی ایجاد کرد که با کلاینت های مبتنی بر اینترنت و سرویس های وب، تعامل داشته باشد.

  • (Java ME (Micro Edition

این پلتفرم برای توسعه ی تلفن های همراه عرضه شده است.

  •  Java FX

پلتفرمی پیشرفته، برای واسط گرافیکی کاربر است.

۰ نظر ۱
قدرت گرفته از بلاگ بیان