آشنایی با رشته علوم کامپیوتر

آیا دانش‌آموز سال آخر دبیرستان هستید و کنجکاوید با رشته علوم کامپیوتر آشنا شوید؟ آیا دانشجو هستید و به‌تازگی تحصیل در دانشگاه را آغاز کرده‌اید و مایلید درباره این رشته بیشتر بدانید؟ در این مطلب کوتاه خواهیم دید رشته «دانش کامپیوتر» یا آن طور که در ایران نامیده می‌شود، «علوم کامپیوتر» دقیقاً چگونه رشته‌ای است و چه دروسی دارد و به این پرسش پاسخ می‌دهیم که تعریف «دانش کامپیوتر» چه چیزی هست و چه چیزی نیست!

چرا دانستن تعریف «دانش کامپیوتر» مهم است؟

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

«دانش کامپیوتر» چه چیزی نیست!

قبل از اینکه بدانیم تعریف دانش کامپیوتر چیست، بهتر است روشن کنیم برداشت‌های ناقص یا نادرست از این رشته کدامند. اولاً برخی تصور می‌کنند «دانش کامپیوتر» علم شناخت کامپیوترها است. این تقریباً مثل این است که علم نجوم را معادل تلسکوپ‌شناسی بدانیم یا علم زیست‌شناسی را معادل میکروسکوپ‌شناسی! وقتی صحبت از دانش می‌کنیم، منظورمان صرفاً مطالعه ابزارهای آن رشته نیست. کامپیوتر ابزار یک کارشناس علوم کامپیوتر است، ولی دانش او فراتر از این ابزار است. ثانیاً این تصور عمومی وجود دارد که رشته علوم کامپیوتر (یا حتی مهندسی کامپیوتر) درباره طرز نوشتن برنامه‌های کامپیوتری است. این هم برداشت ناقصی از واقعیت است. برنامه‌نویسی نیز مانند خود کامپیوترها یک ابزار است. ابزاری که به کمک آن کارشناس کامپیوتر ایده یا راهکار خود را به آزمایش و اجرا می‌گذارد. ثالثاً بسیاری از مردم تصور می‌کنند علوم کامپیوتر درباره طرز کار با کامپیوترها و نرم‌افزارها است. واقعیت این است که این روزها اغلب مردم بلدند با کامپیوتر و حتی نرم‌افزارهای پیچیده کار کنند. مضحک خواهد بود اگر با وجود این، یک رشته دانشگاهی بخواهد به مردم یاد بدهد چطور با کامپیوتر و نرم‌افزارها کار کنند.

«دانش کامپیوتر» چه چیزی هست؟

یکی از بهترین تعاریف این رشته 30 سال پیش توسط دو کارشناس کامپیوتر در مجله انجمن صنفی متخصصان کامپیوتر جهان (ACM) به نام‌های نورمن گیبس و آلن تاکر ارائه شد. مطابق این تعریف، در مرکز این رشته علم شناخت و بررسی الگوریتم‌ها قرار دارد. مهم‌ترین کار یک کارشناس علوم کامپیوتر طراحی و به آزمایش گذاشتن این الگوریتم‌ها است. در شماره‌های آینده ماهنامه شبکه به طور مفصل‌تر به موضوع الگوریتم‌ها خواهیم پرداخت، اما به طور خلاصه تعریف رشته علوم کامپیوتر با محوریت الگوریتم‌ها عبارت است از:
• مطالعه رفتار الگوریتم‌ها و توصیف ریاضی آن‌ها.
• طراحی و تولید سیستم‌های کامپیوتری که این الگوریتم‌ها را اجرا کند (جنبه سخت‌افزار).
• طراحی زبان‌های برنامه‌نویسی و نوشتن برنامه‌هایی که الگوریتم‌ها را به برنامه‌های قابل اجرا روی سخت‌افزارها تبدیل کند.
• فهم مسائل و چالش‌های علمی، فنی و مهندسی و تبدیل آن مسائل به الگوریتم‌هایی که توسط کامپیوتر قابل اجرا باشند.
نقطه اتصال رشته علوم کامپیوتر به دنیای واقعی همین بند آخر تعریف فوق است. به طور خلاصه، علوم کامپیوتر دانش تبدیل مسائل و چالش‌های علمی و فنی و مهندسی به الگوریتم‌های کامپیوتری است، به گونه‌ای که این الگوریتم‌ها بتوانند به صورت بهینه و مؤثر پاسخ آن مسائل و چالش‌ها را تولید کنند.

فارغ‌التحصیلان «علوم کامپیوتر» باید چه مهارت‌هایی داشته باشند؟

برای پاسخ به این پرسش، توضیح کوتاهی از وب‌سایت دانشگاه کارنگی ملون (یکی از برجسته‌ترین دانشگاه‌های دنیا) احتمالاً سرنخ‌های لازم را به دست خوانندگان می‌دهد. بر این اساس از فارغ‌التحصیل این رشته انتظار می‌رود این مهارت‌ها و توانایی‌ها را داشته باشد:
• پیاده‌سازی راهکارها و راه حل‌هایی برای مسائل مختلف در زمینه ماشین‌های هوشمند، گرافیک کامپیوتر، تصویرسازی، ارتباط بهینه میان انسان و کامپیوتر، از طریق به‌کارگیری اصول علمی در این حوزه‌ها و تولید راه حل برای چالش‌های فعلی علم و فناوری.
• شناخت، کاربرد، طراحی، توسعه و تحلیل الگوریتم‌ها به همراه توانایی اثبات این موضوع که یک الگوریتم به‌خصوص از کارآمدی و راندمان لازم برخوردار است و برای حل مسئله مورد نظر بهینه شده است.
• فهمیدن نحوه پیاده‌سازی برنامه‌ها و زبان‌های برنامه‌نویسی متفاوت و پارادایم متفاوت آن‌ها.
• توصیف، مشخص کردن و توسعه سیستم‌های نرم‌افزاری در مقیاس کلان یا نامحدود که مشمول مشکلاتی از قبیل توان محدود، کارایی محدود و یا منابع محدود هستند. (برای خوانندگان ماهنامه شبکه مثال شناخته شده در این زمینه، محاسبه، تخمین و ارزیابی ظرفیت و کارایی شبکه‌های انتقال داده ـ مانند سرویس اینترنت ـ روی شبکه موبایل است.)
• توضیح و ارائه مفاهیم فنی و تخصصی کامپیوتر به زبان ساده برای کسانی که تخصصشان این نیست (مانند همکاران محل کار یا مشتریان).
• توانایی کار کردن هم به طور انفرادی و هم به صورت کار گروهی با هم‌قطاران.
• قوه تشخیص آثار مثبت و منفی فناوری روی جامعه، داشتن حس مسئولیت‌پذیری و آشنایی با جنبه‌های حقوقی و قانونی و اخلاقی کار در حوزه آی‌تی.
منبع:شبکه


پاسخ دهید

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