چه زبانی برای ارائه در دروس برنامهنويسی دانشگاهها مناسب است؟

يکی از بحثهای سنتی در دانشکدههای کامپيوتر، انتخاب زبان برنامهنويسی برای دروس برنامهسازی است. بيشتر دانشکدههای کامپيوتر در قالب دروسی مانند مبانی برنامهنويسی، برنامهنويسی پيشرفته، برنامهسازی وب و مهندسی اينترنت به تدريس زبانهای برنامهنويسی میپردازند. بنابراين، در ميان انبوه زبانهای برنامهنويسی که هر روز بر تعداد آنها نيز اضافه میشود، انتخاب زبان مناسب برای دروس تصميم مهمی است.
يکی از مراجع معتبر در زمينه مواد درسی برای دروس رشتههای کامپيوتری، راهنمای ACM-IEEE است [1]. مؤسسههای ACM و IEEE در يک فعاليت مشترک، برای دروس دوره کارشناسی رشتههای کامپيوتری (اعم از مهندسی کامپيوتر، سيستمهای اطلاعاتی، فناوری اطلاعات، مهندسی نرمافزار و علوم کامپيوتر) راهنما و سيلابس درسی تهيه میکنند. در اين راهنما که به صورت دورهای بهنگام میشود، دروس مختلف به دستههايی مانند الگوريتمها و پيچيدگی، علوم محاسباتی، زبانهای برنامهسازی و غيره تقسيم شدهاند. يکی از مباحثی که در راهنمای ACM-IEEE به آن توجه شده است، نحوه انتخاب رويکرد و زبان برنامهسازی در دروس برنامهسازی است. در ادامه به اين بخش از راهنمای ACM-IEEE که در سال 2013 منتشر شده، اشاره میکنيم [2].
يک نکته مهم در بسياری از دروس مقدماتی دوره کارشناسی، انتخاب رويکرد برنامهنويسی است که منجر به تأثيرگذاری روی انتخاب زبان برنامهنويسی میشود. در بسياری از موارد، درس مبانی برنامهنويسی به صورت رويکردگرا (paradigm-based) ارائه میشود که در اين بين رويکردهای دستوری (Imperative) ، شیءگرا (Object-Oriented) و تابعی (Functional) رايج هستند. ارائه دروس مبانی به صورت رويکردگرا همچنان وجود دارد و مناسب بودن اين رويه نيز همچنان مورد بحث است. بايد توجه کرد که به جای اين که کمکم يک رويکرد برنامهنويسی جابيافتد، در دهههای اخير فقط فهرست زبانهایی که در دروس مقدماتی ارائه میشوند گستردهتر شده است. در اين ميان، البته گرايش روزافزونی به سمت زبانهای امنتر (safer) و مديريتشدهتر (مثلاً حرکت از C به سمت Java) و همچنين زبانهای پوياتر (مانند Python و Javascript) ديده میشود. در برخی از دروس مبانی شهودی از رويکردهای مختلف برنامهسازی ارائه میشود تا دانشجويان ديد بهتری از گستره رويکردها و زبانهای برنامهسازی داشته باشند و تصور نکنند که تنها يک زبان برنامه نويسی «خوب» يا «بهترين» وجود دارد.
با توجه به توصيههای راهنمای ACM-IEEE، روند موجود در دروس برنامهسازی در دانشگاههای معتبر دنيا و همچنين نيازهای بازار توليد نرمافزار کشور، به نظر میرسد استفاده از زبانهایی مانند جاوا و Python به جای زبانهایی مثل C ، C++ و پاسکال، به خصوص در دروس اوليه برنامهسازی (مثل دروس مبانی برنامهنويسی و برنامهنويسی پيشرفته) منطقی و مناسب است.
مراجع:
1-توصيههای ACM-IEEE در زمينه تدوين سيلابس دروس حوزه علوم کامپيوتر
2-پيشنويس مواد درسی ACM-IEEE در سال 2013 (ACM-IEEE Computer Science Curricula 2013)
سلام. به ما زبان c میگن. تو درس مبانی کامپیوتر.
سلام
آقا علی فدات بشم.
چیزی که عیان است چه حاجت به بیان است.
بگذریم
به امید این که یه روزی با هم توی یک تیم جاوا کار کنیم.
موفق باشی
آقا موسی راست ميگی.
درسته. برای کارهای مقياسپايين و حتی متوسط، به خصوص وقتی يک نفر يا يک تيم کوچک قراره نرمافزار را توليد کنند و روی هاستها و سرورهای موجود استفاده بشه، من هم به PhP رأی میدهم. بخش زيادی از بازار را هم همين بيزينسهای کوچک و متوسط تشکيل ميده.
جاوا معمولاً در بخش زيرساخت و برای کارهای بزرگ و برای سرورهای انحصاری (دديکيتد) خوبه.
حرف شما هم کاملاً متين و درسته.
حالا ما که نمیخوایم Facebook بسازیم.
الان من Java کار ! هاست JSP از کجا گیر بیارم ؟ به استاد دانشگلاهمون گفتم هزینش چطوریاست؟ گفت از ASP گرون تره خیلی سخت گیر می آد.
آره این طوریه؟ یا بازم دروغ زده؟ اگه هزینه هاستش زیاد نباشه خوب راست میگین جاوا را من واقعاٌ قبولش دارم ولی به خاظر هزینش مجبور میشم به PHP اکتفا کنم.
بد میگم؟
آقا موسی تو هم که از خودمونی!
البته فيسبوک هم کلاً با PhP نوشته نشده. بسياری از تکنولوژیهای زيرساختی فيسبوک هم مبتنی بر جاواست. مثلاً Cassandra و Hadoop و …
سلام
بله برای کسب و کارهای کوچک گفتم. و این آمار را خودم دارم می بینم و کسی به من نگفته.
من کی گفتم PHP بهترینه؟ من زمان تولید نرم افزار را با توجه به میزان هزینه ای که مشتری برای آن پرداخت می کند را می سنجم و زبان مورد استفاده را انتخاب می کنم.
قبول دارم کار های بزرگ را با جاوا انجام می دهند. من هم گفتم که جاوا جای خودش را دارد و اگر من هم خارج از ایران بودم حتماٌ جاوا را انتخاب می کردم.
بسیاری از کار ها کوچیک هستند.
افرادی که روزانه در حال یاد گیری زبان های برنامه نویسی هستند اکثراٌ کارهای کوچیک انجام می دهند. در ضمن PHP انقدر هم کوچیک نیست . فیس بوک را ببین !!!
در ضمن هیچ کس نمیگه ماست من ترشه از کس دیگه هم انتظار این حرف را نداریم.
من خودم جاوا کارم.
موفق باشید.
سلام
یک طرفه قضاوت نکنین ، تنها راضی پیش قاضی رفتن کار جالبی نیست. 90 درصد کار های وب ایران با PHP انجام میشه و 100% کار های ویندوز فرمی با دات نت و قدیمی کارها با دلفی. جاوا خیلی خوب و عالی جای خودشو داره ولی این چیزی است که داره توی ایران استفاده میشه #C و فکر می کنم اگر برای موبایل برنامه می نویسیم همون جاوا بهترینه. حد اقل روی 10 زبان برنامه نویسی طی این سالیان تجربه این موضوع به من ثابت کرد.
اگر غیر از ایران زندگی میکردیم قبول دارم جاوا حرف اول را می زد. در خیلی از موارد. ولی اینجا ایرانه داداش من !!!
موفق باشین
سلام به موسی.
البته اين که گفتيد 90 درصد کار های وب ایران با PHP انجام میشه، نميدونم منبع شما کجاست. اگر منظورتان کارهایی مثل راه اندازی سايت برای کسب و کارهای کوچک باشه، احتمالاً درست گفته ايد و PHP گزينه خوبیه.
اما بسياری از کسب و کارهای بزرگ، حتی در ايران، گزينه جاوا را پيگيری میکنند. در ايران، بسياری از نرمافزارهای بانکی، نرمافزارهای بزرگ سازمانی و غيره مبتنی بر جاوا توليد شدهاند. اگر شک داريد، منوی فرصتهای شغلی را باز کنيد!
هيچ زبانی بهترين نيست. PHP هم جای خودش را دارد و در برخی کارها از جاوا بهتر است. اما برای تدريس در دروس مبانی برنامهسازی و برنامهسازی پيشرفته، که موضوع اصلی مطلب فوق است، PHP گزينه مناسبی نيست. تدريس PHP در درسهای ترمهای آخر (مثل مهندسی وب يا برنامه نويسی وب) همچنان موردتوجه است و موافقان خودش را دارد.
در دانشگاه ما ترم اول پاسکال درس ميدن که فکر میکنم کاربردی نداره و بی فايده است