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

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

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

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

مطلب پیشنهادی

وضعیت تدریس رشته کامپیوتر در دانشگاه‌های ایران و جهان

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

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

• مطالعه رفتار الگوریتم‌ها و توصیف ریاضی آن‌ها.

• طراحی و تولید سیستم‌های کامپیوتری که این الگوریتم‌ها را اجرا کند (جنبه سخت‌افزار).

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

• فهم مسائل و چالش‌های علمی، فنی و مهندسی و تبدیل آن مسائل به الگوریتم‌هایی که توسط کامپیوتر قابل اجرا باشند.

نقطه اتصال رشته علوم کامپیوتر به دنیای واقعی همین بند آخر تعریف فوق است. به طور خلاصه، علوم کامپیوتر دانش تبدیل مسائل و چالش‌های علمی و فنی و مهندسی به الگوریتم‌های کامپیوتری است، به گونه‌ای که این الگوریتم‌ها بتوانند به صورت بهینه و مؤثر پاسخ آن مسائل و چالش‌ها را تولید کنند.

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

برای پاسخ به این پرسش، توضیح کوتاهی از وب‌سایت دانشگاه کارنگی ملون (یکی از برجسته‌ترین دانشگاه‌های دنیا) احتمالاً سرنخ‌های لازم را به دست خوانندگان می‌دهد. بر این اساس از فارغ‌التحصیل این رشته انتظار می‌رود این مهارت‌ها و توانایی‌ها را داشته باشد:

• پیاده‌سازی راهکارها و راه حل‌هایی برای مسائل مختلف در زمینه ماشین‌های هوشمند، گرافیک کامپیوتر، تصویرسازی، ارتباط بهینه میان انسان و کامپیوتر، از طریق به‌کارگیری اصول علمی در این حوزه‌ها و تولید راه حل برای چالش‌های فعلی علم و فناوری.

• شناخت، کاربرد، طراحی، توسعه و تحلیل الگوریتم‌ها به همراه توانایی اثبات این موضوع که یک الگوریتم به‌خصوص از کارآمدی و راندمان لازم برخوردار است و برای حل مسئله مورد نظر بهینه شده است.

• فهمیدن نحوه پیاده‌سازی برنامه‌ها و زبان‌های برنامه‌نویسی متفاوت و پارادایم متفاوت آن‌ها.

• توصیف، مشخص کردن و توسعه سیستم‌های نرم‌افزاری در مقیاس کلان یا نامحدود که مشمول مشکلاتی از قبیل توان محدود، کارایی محدود و یا منابع محدود هستند. (برای خوانندگان ماهنامه شبکه مثال شناخته شده در این زمینه، محاسبه، تخمین و ارزیابی ظرفیت و کارایی شبکه‌های انتقال داده ـ مانند سرویس اینترنت ـ روی شبکه موبایل است.)

• توضیح و ارائه مفاهیم فنی و تخصصی کامپیوتر به زبان ساده برای کسانی که تخصصشان این نیست (مانند همکاران محل کار یا مشتریان).

• توانایی کار کردن هم به طور انفرادی و هم به صورت کار گروهی با هم‌قطاران.

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

 

مطلب پیشنهادی

معرفی10 دانشگاه‌ برتر دنیا در سال 2017 برای تحصیل در رشته کامپیوتر

معرفی دانشگاه

چه آینده شغلی در انتظار متخصصان این رشته است؟

واقعیت این است که هریک از شاخه‌های رشته کامپیوتر در دانشگاه حوزه وسیعی را پوشش می‌دهند و در عین حال با یکدیگر هم‌پوشانی دارند. اگر می‌خواهید بدانید هریک از رشته‌های اصلی کامپیوتر در دانشگاه با یکدیگر چه تفاوت و شباهت‌هایی دارند، مقالات بخش دانش کامپیوتر در شماره ۱۹۶ ماهنامه شبکه را مطالعه کنید. رشته علوم کامپیوتر از نظر محتوا به رشته مهندسی نرم‌افزار شبیه است. تفاوت اصلی در این است که بسیاری از دروس پایه‌ای سخت‌افزاری در دوره مهندسی جای خود را به دروس پایه‌ای ریاضی داده‌اند. اگر هدفتان این است که وارد مشاغل نرم‌افزاری مانند برنامه‌نویسی شوید، خبر خوب این است که در دنیای واقعی بازار کار، برای اغلب کارفرمایان اهمیت چندانی ندارد که پیشینه علمی شما در دانشگاه کدام‌یک از شاخه‌های رشته کامپیوتر است. اما بعضی از مشاغل خاص هستند که سطح علمی بالایی از کارشناس طلب می‌کنند. تعداد این مشاغل محدود است و علاوه بر اینکه درآمد بالاتری نسبت به میانگین جامعه دارند، حال و هوای علمی‌تر نیز دارند. 

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

دروس دانشگاه

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