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

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