رشته کامپیوتر بهعنوان یک رشته دانشگاهی یکی از پویاترین و پیچیدهترین و در عین حال جوانترین رشتههای تحصیلی است. از حدود 60 سال پیش که نخستین رشتههای تحصیلی کامپیوتر در اروپا و امریکا تأسیس شد تا به امروز، کمتر رشتهای به اندازه رشته کامپیوتر دچار تغییر و تحول شده است. این تغییرات البته به اقتضای تحولات گسترده فناوری کامپیوتر در جهان بوده است. تغییراتی که به همراه خود موجی از نوآوریها و کاربردهای تازه به ارمغان آورده است. در کنار این تغییرات در عرصه صنعت، دانشگاههای دنیا نیز به تکاپو و گاهی دردسر افتادهاند تا بتوانند خود را با سرعت بیسابقه تغییرات در این زمینه هماهنگ کنند. در سه دهه نخست ارائه این رشته در دانشگاهها اختلاف نظر درباره تعریف و محتوای این رشته فراوان بود. حتی بر سر این موضوع که آیا دانش کامپیوتر اصولاً یک علم محسوب میشود یا صرفاً یک شاخه کاربردی از مهندسی و ریاضیات، میان دانشمندان اختلاف بود. اما از دهه 1990 به این سو و به همت دو انجمن بینالمللی متخصصان کامپیوتر، تلاشی هماهنگ برای استانداردسازی رشته کامپیوتر در سراسر دنیا آغاز شد که هنوز هم ادامه دارد.
بر اساس پیشنهادات مندرج در آخرین گزارش جامع کارگروه مشترک تشکلهای بینالمللی کارشناسان کامپیوتر (ACM IEEE-CS Joint Task Force) رشتههای پایهای کامپیوتر در دانشگاهها (برای مقطع کارشناسی) عبارتند از: «دانش کامپیوتر»، «مهندسی کامپیوتر»، «سیستمهای اطلاعات»، «فناوری اطلاعات» و «مهندسی نرمافزار». نمودارهای شکل 1 همپوشانیها و تفاوتهای این رشتهها را قبل و بعد از دهه 1990 میلادی نشان میدهد، در حالی که پیش از دهه 90 همه چیز را میتوانستیم در سه دسته نرمافزار و سختافزار و کسب و کار تقسیم کنیم، اکنون هریک از گرایشهای اصلی نرمافزار و سختافزار به دو یا سه رشته اصلی تقسیم میشوند که در رشته «مهندسی کامپیوتر» با یکدیگر همپوشانی دارند.
شکل 1
نمودارهای شکلهای 2 تا 6 تجسمی از ماهیت و محتوای هریک از رشتههای اصلی کامپیوتر به دست میدهد. کافی است روی محور افقی این نمودارها طیفی از کاملاً تئوری تا کاملاً عملی را مجسم کنید و روی محور عمودی از پایین به بالا به ترتیب از مباحث سختافزاری محض به سمت مباحث نرمافزاری و سپس مباحث سازمانی و کسب و کار حرکت کنید. به عبارت دیگر، یک سوی این طیف انسان و سوی دیگر آن ماشین قرار دارد. هریک از رشتههای پنجگانهای که در ادامه معرفی میشوند، مساحتی را روی این نمودار اشغال میکنند.
رشته «دانش کامپیوتر»
این رشته در اغلب دانشگاههای دنیا رشته اصلی کامپیوتر است و مادر بقیه رشتهها محسوب میشود. به عنوان مثال، در دانشگاه استانفورد دپارتمانی با همین نام وجود دارد که رشته «دانش کامپیوتر» (Computer Science) را در مقطع لیسانس ارائه میدهد. نکته مهم این است که «دانش کامپیوتر» یک رشته علمی و مهندسی است. یعنی هم جنبه علمی و هم جنبه مهندسی دارد، اما نام مهندسی را یدک نمیکشد، زیرا اولاً بار علمی این رشته بهویژه در علم ریاضی سنگینتر است. به همین دلیل، فارغالتحصیلان این رشته گاهی به عنوان «دانشمند کامپیوتر» معرفی میشوند. ثانیاً «مهندسی کامپیوتر» در استاندارد جهانی معنای خاصی دارد که با اهداف «دانش کامپیوتر» مقداری متفاوت است. در ایران با توجه به سرفصلها و دروس پیشنهاد شده از سوی وزارت علوم تحقیقات و فناوری، این رشته با نام «علوم کامپیوتر» توسط دانشکدههای ریاضی دانشگاهها ارائه میشود.
شکل 2
دانش کامپیوتر رشتهای راهبردی و در واقع مهمترین رشته کامپیوتر است. موتور محرکه بسیاری از نوآوریها و پیشرفتها در همین رشته ابداع میشود و به حرکت درمیآید. تمرکز رشته دانش کامپیوتر نه برنامهنویسی است نه روش ساختن کامپیوتر و نه روش کار با نرمافزارها و سیستمهای کامپیوتری، اما مقداری از همه اینها را در دل خود دارد و دانشجو حین تحصیل با مباحث پایهای هریک از این موضوعات آشنا میشود. دغدغه اصلی این رشته بحث الگوریتمها، محاسبات کامپیوتری، ساختار دادهها و پردازش آنها است. اما در کنار این، دانشجویان با اصول سختافزار مانند مبانی الکترونیک و سیستمهای دیجیتال و معماری کامپیوتر نیز آشنا میشوند. این رشته دانشجویان را برای ورود فوری به بازار کار آماده نمیکند و فقط اصول را به آنان میآموزد. مثلاً درسی بهنام «سیستم عامل» را میخواند، اما نه ویندوز را یاد میگیرد نه اپل و نه لینوکس، هرچند ممکن است در کارگاههای عملی یا دروس خاص بعضی دانشگاهها با این نمونههای واقعی سیستم عامل آشنا شود. چرا چنین است؟ دلیل این رویکرد آن است که صنعت کامپیوتر بسیار پویا و پرتلاطم است. یک موج اقتصادی و تجاری ممکن است یک حوزه وسیع از صنعت را ظرف چند ماه نابود کند. مثلاً گوشیهای موبایل نوکیا تا پیش از سلطه آیفون و اندروید، بر بازار موبایل دنیا حکمرانی میکردند و سیستم عامل سیمبین (Symbian) محبوبترین نزد برنامهنویسان موبایل بود. تصور کنید اگر دانشگاههای دنیا روی تدریس سیستم عامل سیمبین سرمایهگذاری کرده بودند، امروز برای تعویض آن چقدر به زحمت افتاده بودند. شکل 2 نمودار گرافیکی حوزه پوشش رشته دانش کامپیوتر را نشان میدهد. چنانکه مشاهده میکنید، تأکید این رشته بیشتر روی تئوری است تا کاربرد و در هر صورت چندان وارد مباحث سختافزاری یا مسائل مربوط به سازمانها و کسب و کارها نمیشود. البته هدف این تئوریها بالا بردن راندمان و کارایی الگوریتمهایی است که برای پردازش، ذخیرهسازی و بازیابی اطلاعات یا انجام محاسبات پیچیده استفاده میشوند. یکی از موضوعات بسیار داغ در این رشته «علم دادهها» (Data Science) است که ترکیبی از علم آمار و تکنیکهای الگوریتمی است و با زیرشاخههایی مثل «دادهکاوی» در حوزه نظری و «بزرگ داده» در حوزه تجاری و کاربردی شناخته میشود. اگر میخواهید در پیشبرد مرزهای علم و دانش در زمینههایی همچون آمار، هوش مصنوعی، روبوتیک، تصویربرداری دیجیتال، ژنتیک، نانوتکنولوژی و دادهکاوی سهمی در دنیا داشته باشید، این رشته را برگزینید.
شکل 3
رشته «مهندسی کامپیوتر»
موضوع و دغدغه اصلی فارغالتحصیلان رشته مهندسی کامپیوتر (Computer Engineering) ساختن کامپیوتر یا دستگاههای کامپیوتری است. اگرچه جنبه سختافزاری این رشته به سایر جنبههای آن میچربد، گمراهکننده خواهد بود اگر فرض کنیم کارشناسان این رشته در مهارتهای نرمافزاری و برنامهنویسی در سطحی پائینتر از مهندسان نرمافزار قرار دارند.
نکته مهم در فهم نامگذاری این رشته (در تعریف کارگروه بینالمللی) هدف رشته است نه مهارتهایی که فارغالتحصیلان آن میآموزند. بنابراین، وقتی میگوییم «مهندس کامپیوتر» منظورمان این نیست که این مهندسان فقط سختافزار بلدند، بلکه مقصودمان این است که باید هم نرمافزار و هم سختافزار بدانند، اما دانش خود را بیشتر روی طراحی و تولید دستگاههای کامیپوتری متمرکز کنند. دستگاههای کارتخوان بانکی نمونهای از چنین سیستمهایی هستند. اینها دستگاههای سختافزاری هستند که به نرمافزارهای مخصوصی مجهزند. از فارغالتحصیلان رشته «مهندسی کامپیوتر» انتظار میرود هم سختافزار این دستگاهها را طراحی کنند و هم نرمافزار آن را بنویسند. گاهی برنامهنویسی این سیستمها حتی از برنامهنویسی برای تولید نرمافزارهایی که برای کار روی سیستم عاملهای استاندارد مانند ویندوز یا لینوکس طراحی میشوند هم دشوارتر است.
این رشته در ایران با همین نام از سوی دانشکدههای مهندسی (بهویژه دانشکدههای مهندسی برق و الکترونیک) ارائه میشود و طبق مصوبه وزارت علوم چهار گرایش نرمافزار، سختافزار، فناوری اطلاعات و امنیت دارد. اما در مجموع وزن مباحث سختافزاری آن سنگینتر است.
شکل 3 نمودار گستره پوشش این رشته را نمایش میدهد. همان طور که ملاحظه میکنید، بر اساس پیشنهاد کارگروه بینالمللی، بازه علاقهمندی این رشته وقتی که موضوع نرمافزار مطرح باشد، جایی میان تئوری و کاربرد است. اما اگر پای سختافزار در میان باشد هم مباحث کاربردی و هم تئوری بسیار پررنگ هستند.
اصولاً طراحی و تولید دستگاههای کوچک کامپیوتری و ساخت سیستمهای الحاقی بحث داغ این روزها است. اگر به مباحثی مانند طراحی ساعتها و مچبندهای دیجیتالی قابل اتصال به کامپیوتر و اینترنت، گوشیهای موبایل، اینترنت اشیا، کامپیوترهای داخل وسایل مختلف مثل خودرو یا ماشین لباسشویی علاقه دارید، رشته «مهندسی کامپیوتر» را انتخاب کنید. وزن مهندسی این رشته از وزن علمی آن سنگینتر است.
رشته «سیستمهای اطلاعاتی»
رشته «سیستمهای اطلاعاتی» (Information Systems) در کنار رشته «فناوری اطلاعات» یکی از دو رشتهای است که دغدغه اصلی آن سازمانها و شرکت و کسب و کارها است. همان طور که نمودار شکل 4 نشان میدهد، رشته «سیستمهای اطلاعاتی» علاقه چندانی به تئوریهای علم کامپیوتر مانند الگوریتمها ندارد. برعکس، پای موضوعات مهمی به نام «انسان» و «کسب و کار» به جنبههای تئوریک این رشته باز میشود. رشته «سیستمهای اطلاعاتی» فقط وقتی به سایر زمینههای کامپیوتری علاقه نشان میدهد که پای کاربرد و پیادهسازی و نصب سیستمها در میان باشد.
متخصصان این رشته کارشان پیادهسازی فناوری کامپیوتر در سازمانها و شرکتها است، به گونهای که گرهی را از کسب و کار آن سازمان بگشاید. بنابراین کافی نیست که متخصصان فقط درباره کامپیوتر بدانند، لازم است آنها درباره ماهیت کسب و کار آن سازمان نیز اطلاعات زیادی داشته باشند. تصور کنید یک سازمان بخواهد یک سیستم کامپیوتری جامع حسابداری و مالی برپا کند. از کجا باید شروع کند؟ چه نرمافزارهایی نیاز است؟ امنیت اطلاعات چگونه فراهم میشود؟ بنابراین دانشجویان این رشته در کنار مباحث کامپیوتری، دروس دیگری نیز میگذرانند که بسته به زمینه علاقه یا سابقه دانشگاه به مسائل مدیریتی، کسب و کاری، سازمانی و انسانی میپردازند.
شکل 4
توجه کنید که متخصصان این رشته برخلاف رشته «فناوری اطلاعات» به بُعد سازمانی این سیستمها چه بهلحاظ نظری و چه کاربردی علاقه دارند. اینکه دادهها چگونه باید داخل این سیستمها ذخیره، پردازش و بازیابی شوند، بیشتر دغدغه متخصصان «فناوری اطلاعات» است که در ادامه خواهیم دید.
برای اینکه بدانید چه دارویی برای چه دردی مناسب است، به دکتر حاضر در داروخانه مراجعه میکنید نه کارخانهای که دارو را میسازد. هنگامی که یک شرکت یا سازمان به پیادهسازی فناوری اطلاعات نیازمند میشود، بهتر است به متخصصان «سیستمهای اطلاعاتی» مراجعه کند. آنها میدانند دوای درد سازمان چیست و چگونه درمان میشود. اگر مایلید نقش مشاور و راهنمای فناوری کامپیوتر در سازمانها و شرکتها را ایفا کنید، این رشته را برگزینید.
رشته «فناوری اطلاعات»
متخصصان رشته «فناوری اطلاعات» (Information Technology) مکمل و تأمینکننده نیاز متخصصان رشته سیستمهای اطلاعاتی هستند. آنها متخصص پردازش، ذخیرهسازی یا بازیابی اطلاعاتند. این کارشناسان باید درباره کسب و کار و نیازمندیهای تخصصی سازمانها اطلاعات فراوانی داشته باشند، اما تئوری و جنبه نظری این نیازمندیها موضوع کارشان نیست. دغدغه آنها تولید و پیادهسازی سیستمهایی است که سر و کارش با کارمندان و کاربران است.
مهمترین و محبوبترین زمینه علاقهمندی کارشناسان «فناوری اطلاعات» سایتهای وب و سیستمهای مبتنی بر اینترنت است. نمودار شکل 5 بازه پوشش این رشته را نشان میدهد که از سیستمهای سازمانی تا زیرساخت اطلاعاتی را دربر میگیرد. مثلاً زیرساختهای اینترنتی و مراکز داده موضوع کار فناوری موسوم به «رایانش ابری» یا کلاود است که بر ترکیبی از مهندسی شبکه و فناوری اطلاعات استوار است. در ایران، «فناوری اطلاعات» یک رشته مستقل نیست و به صورت یکی از گرایشهای تخصصی رشته «مهندسی کامپیوتر» ارائه میشود و وزن مطالب سختافزاری آن بیشتر از تعریفی است که کارگروه مشترک بینالمللی پیشنهاد میکند.رشته «فناوری اطلاعات» یک رشته نوپا است، به همین دلیل هنوز در زمینههای تئوریک و علمی این رشته بین کارشناسان و صاحب نظران اتفاق نظر وجود ندارد. یک دلیلش این است که خود صنعت و فناوری اطلاعات بسیار سیال و پویا است و قبل از اینکه متخصصان بتوانند یک زمینه نوظهور را تئوریزه و مدون کنند، آن زمینه ممکن است دچار تغییر ماهوی شود. برخی از زمینهها اکنون دیگر در مقطع لیسانس جا افتادهاند، مانند «برنامهنویسی وب» اما شاخههای دیگر همچنان فقط در مقطع فوق لیسانس ارائه میشوند.
اگر میخواهید برنامهنویسی وب را بیاموزید یا پایگاه وب درست کنید، اگر میخواهید یک بانک اطلاعاتی برای ذخیره و بازیابی اطلاعات مالی طراحی کنید، اگر میخواهید یک سیستم حسابداری یا سیستم بایگانی اطلاعات پرسنلی تولید کنید یا اگر میخواهید در بخش تحقیق و توسعه فناوری اطلاعات یک بانک مشغول به کار شوید، این رشته را برگزینید.
رشته «مهندسی نرمافزار»
این رشته گاهی با دو رشته «دانش کامپیوتر» و «مهندسی کامپیوتر» اشتباه میشود. در بعضی دانشگاهها ممکن است سرفصلها و دروس این دو رشته با گرایش و طعم نرمافزاری نیز ارائه شود تا به اشتیاق دانشجویان علاقهمند به برنامهنویسی پاسخ دهد. اما حتی در این حالت نیز فارغالتحصیلان را نباید مهندس برنامهنویس قلمداد کرد. به طور خاص، مباحث مهندسی در زمینه تولید انبوه نرمافزار فقط در رشته «مهندسی نرمافزار» ارائه میشود و فارغالتحصیلان رشته «دانش کامپیوتر» یا «مهندسی کامپیوتر» با گرایش نرمافزار برای ورود فوری به بازار کار آماده نیستند. دروس و مباحث اساسی که خاص این رشته هستند، به کار تیمی و تولید انبوه نرمافزار مربوط میشود. مباحثی مانند «مهندسی نیازمندیهای مشتری»، «برنامهنویسی دسته جمعی و گروهی»، «مدیریت چرخه تولید و تست نرمافزار»، «تکنیکهای عیبیابی و رفع باگ» و «پشتیبانی از مشتریان و بهروزرسانی نرمافزار» و بحث داغ «متدهای مدیریت پروژههای نرمافزاری» (مانند روش کلاسیک آبشاری یا روش مدرن Agile) مباحث تخصصی رشته «مهندسی نرمافزار» هستند و جنبههای مهندسی آن محسوب میشوند.
شکل 5
اگر مباحث فوق در دروس و سرفصلهای یک رشته دانشگاهی جایگاه برجستهای نداشته باشد، آن رشته را نمیتوان رسماً «مهندسی نرمافزار» دانست، حتی اگر تعداد دروس برنامهنویسی و نرمافزار در آن رشته فراوان باشند. علاوه بر همه اینها، نمودار شکل 6 نشان میدهد که رشته مهندسی نرمافزار توجه کمی به زمینههای سختافزاری یا سازمانی دارد. در ایران، این رشته به صورت مستقل ارائه نمیشود و در رشته «مهندسی کامپیوتر» با گرایش نرمافزار نیز تنها یکی دو درس با مبحث «مهندسی نرمافزار» تدریس میشود. رشته «مهندسی نرمافزار» با تعریف و خصوصیات فوق یک رشته نوپا در بسیاری از دانشگاهها است. هنوز تعداد کمی از دانشگاههای دنیا چنین رشتهای را ارائه میدهند. در بخش نظری این رشته، هدف توسعه مدلهای سیستماتیک و تکنیکهای قابل اعتمادی است که بتوان با تکیه بر آن نرمافزارهایی با کیفیت بالا در مدت زمان معقول و بودجه مناسب تولید و روانه بازار کرد. (1) اگر میخواهید وارد کسب و کار تولید انبوه نرمافزارهای کاربردی در بازار برای استفاده روی سیستم عاملهای رومیزی (ویندوز، لینوکس و اپل) و یا سیستم عاملهای موبایل (اندروید و آی او اس) شوید و از این راه پول دربیاورید، رشته «مهندسی نرمافزار» بهترین گزینه برای شما خواهد بود.
شکل 6
پینوشت:
1 - منظور از کیفیت بالای یک نرمافزار آن است که کمترین تعداد باگ و عیب برای کاربر آن مزاحمت ایجاد کند، کار با آن راحت و روان باشد و شرکت تولیدکننده آن سیستم مناسبی برای پشتیبانی و ارتقای نرمافزار پیشبینی کرده باشد.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
دیدگاهها
عااالی