رشته مهندسی کامپیوتر که به طراحی و ساخت اجزای مختلف کامپیوتر می پردازد، لذا از اهمیت بسیار زیادی در دنیای امروز برخوردار است. هدف از طی این دوره تربیت کارشناسانی است که در زمینه تحلیل، طراحی، ساخت و راه اندازی دستگاهها و مجموعه های سخت افزاری جدید، بررسی و شناخت مجموعه های سخت افزاری و نرم افزاری موجود، نگه داری، عیب یابی و تعمیر و اصلاح و توسعه فعالیت کنند.
طراحی، شبیه سازی، فرآوری، پردازش، سنجش، آموزش، ویرایش و … همه مفاهیمی هستند که با بالاترین دقت و در کوتاهترین مدت زمان ممکن در برنامه های نرم افزاری کامپیوتر انجام می شوند. لذا هدف از این رشته تربیت نیروی متخصص برای انجام امور فوق است.
* گرایشها و ابعاد مختلف این رشته در کارشناسی ارشد
این رشته در مقطع ارشد دارای چهار گرایش معماری کامپیوتر، مهندسی نرمافزار، هوش مصنوعی و الگوریتم و محاسبات است.
چه مباحثی که در هر گرایش مطرح میشود؟
* گرایش نرمافزار: در گرایش نرمافزار در مقطع کارشناسی ارشد دانشجویان با سیستمهای عامل پیشرفته ـ بانکهای اطلاعاتی ـ برنامهنویسی پیشرفته و تحت WEB ـ الگوریتمهای پردازش موازی و … آشنا میشوند.
* گرایش هوش مصنوعی: در این گرایش با مطالب جدیدی مانند شبکههای عصبی ـ هوش مصنوعی پیشرفته ـ تئوری فازی ـ پردازش تصویر و … آشنا میشوند.
* گرایش معماری کامپیوتر: در این گرایش دانشجویان با معماریهای پیشرفته کامپیوتر و ابر رایانهها شبکههای کامپیوتری گسترده ـ پردازش تصویر و طراحی سیستمهای تحملپذیر خطا و … آشنا میشوند.
* گرایش الگوریتم و محاسبات: این گرایش که یک گرایش جدید است. دانشجویان با الگوریتمهای توزیعی و پیشرفته ـ ریاضیات پیشرفته کامپیوتری و … آشنا میشوند.
تواناییهای لازم برای داوطلبان این رشته
توانایی ذهنی ویژهای برای تحصیلی در این رشته مورد نیاز نیست. البته دانشجویانی که پایه ریاضی قوی و توانایی استدلالی و استقرایی بهتری دارند، در این رشته موفقترند. از لحاظ جسمانی مهمترین ویژگی داشتن قدرت بصری خوب است و دانشجویان با قدرت شنوایی و حرکتی پایین نیز میتوانند در این رشته ادامه تحصیل دهند.
مهمترین نکتهای که در مورد این رشته میتوان عنوان کرد، داشتن روحیه مطالعه مستمر است چرا که سرعت پیشرفت علم در این رشته نسبت به رشتههای دیگر بسیار بالاست و دانشجو باید بطور مستمر در پی مطالب جدید و یادگیری آنها باشد.
گرایشهای این رشته در کارشناسی
رشته مهندسی کامپیوتر در مقطع کارشناسی دارای دو گرایش سخت افزار و نرم افزار است که البته این دو گرایش در مقطع کارشناسی تفاوت قابل توجهی با یکدیگر ندارند.
گرایش سخت افزار در برگیرنده فعالیت های آموزشی، پژوهشی و صنعتی در خصوص قطعات، بردها، تجهیزات و در نهایت سیستم های کامپیوتری در مقیاس های مختلف است و یکی از شاخه های مهم آن به نام معماری کامپیوتر (طراحی و ساخت کامپیوتر) است.
هدف از گرایش نرم افزار کامپیوتر، آموزش و پژوهش در زمینه زبانهای مختلف برنامه نویسی، سیستم های عامل مختلف و طراحی انواع الگوریتم ها است.
هوش مصنوعی
گرایش هوش مصنوعی تنها گرایشی است که داوطلبان کنکور سراسری کارشناسی ارشد میتوانند در کنار گرایشهای دلخواه خود (نرم افزار و محاسبات و الگوریتم یا معماری کامپیوتر) در وقتی جداگانه به سوالهای آن پاسخ گویند. داوطلبان در هنگام کنکور موظفند در یک وقت ۶۰ دقیقه ای به سوالات نرم افزار یا سخت افزار پاسخ گویند و سپس در یک وقت ۶۰ دقیقه ای جداگانه به سوالات هوش مصنوعی بپردازند. هیچکدام از دانشجویان دوگرایش به گذراندن واحدهای جبرانی جهت تحصیل در این گرایش نیاز ندارند. این در حالی است که شمار پذیرفته شدگان در گرایش هوش از بقیه گرایشها نیز بیشتر است. در دوره کارشناسی دانشجویان صرفا با یک درس سه واحدی با نام هوش مصنوعی آشنایی پیدا میکنند و آشنایی بیشتر با این معقوله به طور کامل در دوره کارشناسی ارشد صورت میگیرد . با توجه به واحدهایی که در دوره کارشناسی ارشد گرایش هوش مصنوعی تدریس میشود دانشجویان میتوانند موارد آموزشی و کاربردی متفاوتی را بیاموزند از جمله :
* یادگیری ماشین
روشهایی که کامپیوتر را قادر میسازد عملی شبیه به یادگیری و تجربه را در حین انجام مکرر یک عمل انجام دهند یعنی با توجه به اعمالی که دفعات قبل انجام داده و بررسی نتایج آنها سعی کند در دفعات بعدی اعمالی بهتر و مطلوب تر و با خطای کمتر انجام دهد .
* شبکه های عصبی
روش جدید حل مسائل هوش مصنوعی بوسیله شبکه ای از واحدهای متصل به هم که هر کدام قابلیت پردازش داده ها ، ارتباط با نورون های دیگر وهمچنین ایجاد تغییرات در مشخصات شبکه را دارند و این اعمال را در جهت بهینه سازی عملکرد شبکه انجام میدهند .شبکه های عصبی معمولا در مسائلی نظیر بهینه سازی ، تخمین توابع ، کنترل و … کاربرد دارند
* پردازش تکاملی
شاخه ای جدید از هوش مصنوعی که با در نظر گرفتن یک یا چند جواب اولیه برای یک مساله بوجود آوردن جوابهای جدید از جوابهای موجود و انتخاب جوابهای بهتر سعی میکند یک جوابی میکند یک جوابی نسبتا بهینه برای مساله بدست آورد.
* رباتیک
طراحی رباتهای کامپیوتری (مکانیکی یا نرم افزاری) برای انجام وظیفه ای خواص .برای هوشمند ساختن رباتها از آلگوریتم های هوش مصنوعی مانند یادگیری ، پردازش تصاویر ، تشخیص گفتار و … استفاده میشود
* منطق فازی
تعمیمی است ازمنطق کلاسیک که در آن بجای دو مقدار درست و غلط ، درجه درستی داریم که میتواند یین عدد صفرو یک باشد. پردازش زبان طبیعی :قسمتی از هوش مصنوعی که به پردازش متون زبانهای طبیعی میپردازد تا معنای آنها را استخراج کند .
* سیستم های خبره
سیستم های که بوسیله جمع آوری داده ها و قوانین در یک زمینه خاص میتوانند درآن زمینه مانند یک فرد خبره و متخصص عمل کند (نمونه رباتهای جراح)
* محاسبات نمادین
انجام محاسبات ریاضی به صورت نمادین نه عددی . یعنی اگر ۲ به توان ۲ چهار میشود این الگوریتمهای هوش مصنوعی قدرت تعمیم آن به x به توان ۲ را دارند و در نهایت به جای عدد جوابی وابسته به نماد برمیگردانند مثل x ضربدر x.
الگوریتم و محاسبات
جدیدترین گرایش رشته مهندسی کامپیوتر در مقطع ارشد میباشد که از سال گذشته به فهرست گرایشهای رشته مهندسی کامپیوتر اضافه شده است. در این گرایش دانشجویان (علی الخصوص کارشناسان گرایش نرم افزار) با توجه به ضرایب دروس نخصصی نرم افزار خود پذیرفته شده و به ادامه تحصیل خواهند پرداخت. در این گرایش بیشتر جنبهی الگوریتمیک و وابسته به محاسبات دانشجویان نرم افزاری مورد توجه و تقویت قرار خواهد گرفت. میزان پذیرفته شدگان در این گرایش از همه گرایشها کمتر است ولی قبولی در این گرایش به دلیل توجه داوطلبان به دیگر گرایشهای شناخته شده این رشته ، برای دانشجویان با پیش زمینه نرم افزار آسانتر است. در طول تحصیل در این گرایش دانشجویان در زمینههای زیر تعلیم داده شده یا تقویت خواهند شد:
* طراحی الگوریتم ها
روشهای طراحی الگوریتم که در دوره کارشناسی به دانشجویان تا حدودی آموزش داده شده است در این گرایش به صورت پیشرفته و پیچیدهتری جهت طراحی آلگوریتمهای قدرتمندتر و بهینهتر آموزش داده میشود.
* ساختمان داده ها
ساختارهای دادهای که در طول دوره کارشناسی آموزش داده شده سادهترین نوع ساختارها بودهاند حال آنکه در این گرایش کارشناسی ارشد، ساختارهای پیچیدهتر و نوینتری آموزش داده میشود تا برنامه نویسان را قدرتمندتر و مدرن تر از قبل جهت اجرای خواسته های نرم افزاری آماده کند.
* ساختمان های گسسته
مجموعه تمام ساختمانهای منطقی و عددی در قالب ریاضیات آموزش داده میشود تا با به کارگیری آنها در الگوریتمهای محاسباتی و برنامه نویسی بهترین بازدهی حاصل شود.
* نظریه محاسبات
این مبحث پس از آشنایی دانشجویان با نظریه زبانها و ماشینها مطرح میشود. در این مبحث مدلها و روشهای مختلف محاسبات مورد مطالعه قرار میگیرد . همچنین محدودیتهای محاسبات به ویژه در الگوریتمهای کامپیوتری مورد مطالعه قرار میگیرد. راه حلهایی برای مسائلی که حتی با پیشرفتهترین سیستمها هم مدت زمانی طولانی برای اجرای الگوریتمشان نیاز است، در این مبحث ارائه میشود.
* نظریه گراف
بررسی بسیار پیچیدهتر گرافها و کاربردهاشان نسبت به آنچه در دوره کارشناسی ارائه شده است .
* نظریه بازی ها
در این گرایش مطرح میشود و هدف آن بررسی الگوریتمهایی است که مانع رسیدن به یک نتیجه خاص و چگونگی چیره شدن بر آن، است.
معماری کامپیوتر
گرایش معماری کامپیوتر در رشته مهندسی کامپیوتر تنها گرایشی است که دانشجویان دارای مدرک کارشناسی از گرایش سخت افزار میتوانند بطور مستقیم و بدون نیاز به گذراندن واحدهای جبرانی به تحصیل در آن بپردازند. لازمه این امر موفقیت در کنکور سراسری کاشناسی ارشد و به اتمام رساندن تحصیل در گرایش فوق الذکر است. با توجه به دروسی که در این گرایش از گرایشهای کارشناسی ارشد، ارائه میشوند دانشجو میتواند تواناییهای متفاوتی را کسب کند که در زیر به آنها اشاره میشود:
* طراحی و ساخت مدارهای دیجیتال
به عنوان مثال میتوان به اکثر قریب به اتفاق مدارهای منطقی، سیستمهای دیجیتال، بردهای تبلیغاتی، سیستمهای کنترل دیجیتال در اکثر وسایل امروزی، سیستمهای موبایل و … اشاره کرد که یک دانشجوی کوشای گرایش معماری توانایی طراحی و ساخت آنها را در پایان دوره تحصیلی خود خواهد داشت.
* معماری کامپیوتر
نحوه طراحی و ساخت کامپیوترها و مدارهای کامپیوتری به وسیله اجزای ساده منطقی از دیگر توانمندیهای این دانشجویان خواهد بود.
* طراحی و ساخت مدارهای واسط
نحوه ساخت مدارهایی که بتوانند کامپیوترها و سیستمهای کامپیوتری متفاوت را (از جمله میکروپروسسورها ، میکروکنترلر ها و … ) به یکدیگر متصل کنند . سیستمهای کامپیوتری با کاربردهای خاص (مانند مودم و …) نیز از این دسته مدارها شناخته میشوند.
* طراحی و ساخت سیستمهای بلادرنگ
سیستمهای کامپیوتری که در حین انجام چند عمل مختلف، ضمانت میکنند اعمال خاصی در زمانهای مشخص یا به تعداد مشخصی انجام خواهند شد.
* کنترل
برای مثال سیستمهایی که دما را کنترل میکنند. در این سیستم ورودیها میتوانند شدت کار دستگاههای خنک کننده و یا گرم کننده و خروجی هم میتواند دمای محیط باشد.
* میکروکنترلها وسیستم های تعبیه شده
سیستمهایی که در آنها یک یا چند پردازشگر کامپیوتری یا میکروکنترلر تعبیه شده تا اعمال سیستم و قسمتهای مختلف آن را کنترل کنند.
* VLSI
که همان درس VLSI ای است که کارشناسان رشته کامپیوتر در طول تحصیل خود گذراندهاند با این تفاوت که به صورت عمیقتر و لایهایتری به آن پرداخته شده تا با دانستن fabrication دقیق مدارهای مجتمع در مقیاس بزرگ، یک کارشناس ارشد گرایش معماری توانایی طراحی دقیق یک چنین سیستم و مداری را جهت تولید، داشته باشد.
* انتقال داده
دانشجوی کارشناسی ارشد معماری کامپیوتر، علاوه بر شناخت کافی از روشهای انتقال داده و اطلاعات به سیستمهای کامپیوتری و دیجیتال قادر خواهد بود. سیستم های بدیع و تازه ای را طراحی و پیاده سازی کند (که لازمه آن داشتن توانایی بسیار بالا در شناخت لایه های طراحی یک سیستم انتقال داده است).
مهندسی نرم افزار
این گرایش در کنار گرایش الگوریتم و محاسبات از گرایشهایی است که دانشجویان دارای مدرک کارشناسی از گرایش نرم افزار میتوانند بطور مستقیم و بدون نیاز به گذراندن واحدهای جبرانی به تحصیل در آن بپردازند تفاوت این دو گرایش در ضریب دروس تخصصی نرم افزار در کنکور کارشناسی ارشد است. به این صورت که این دروس در گرایش مهندسی نرم افزاربا ضریب ۲ اعمال میشوند حال آنکه در گرایش الگوریتم و محاسبات ضریب ۳ منظور میشود. در نتیجه دانشجویانی که تسلط کاملتری به دروس نرم افزاری دارند برای تحصیل در رشته مهندسی نرم افزار میبایست نسبت به دانشجویانی که قصد ادامه تحصیل در گرایش الگوریتم و محاسبات را دارند، دارای توانایی های ریاضی و کامپیوتر پایه بیشتری باشند. با توجه به دروسی که در این گرایش از گرایشهای کارشناسی ارشد، ارائه میشوند دانشجو میتواند توانایی های متفاوتی را کسب کند که در زیر به آنها اشاره میشود:
* طراحی و پیاده سازی پایگاه دادهها
با توجه به آنچه که یک کارشناس مهندسی نرم افزار در طول تحصیل فرا میگیرد ، یک کارشناس ارشد قدرت طراحی و پیاده سازی پایگاه های داده پیچیده تر و دقیق تر با حداقل خطا و همرنگتر با سیستم های روز دنیا را دارا خواهد شد.
* مهندسی نرم افزار
به خودی خود معقوله بسیار پیچیده ای در مورد روشهای مدیریت، طراحی، پیاده سازی و نگهداری برنامهها و پروژههای نرم افزاری است و کارشناس ارشد، قدرت کنترل تمام موارد بالا را در برنامه های عظیم نرم افزاری خواهد آموخت.
* سیستم های عامل
دانشجویان کارشناسی در طول تحصیل خود به طور تئوری و غیر سنگینی با سیستمهای عامل و زیر و بم های آنها آشنا میشوند حال آنکه کارشناس ارشد مهندسی نرم افزار تا جایی پیش میرود که بتواند یک سیستم عامل مستقل و جدید و در عین حال شایسته را پیاده سازی کند.
* اتوماسیون اداری
اتوماتیک کردن روند فعالیتهای یک اداره موسسه یا سازمان به وسیله کامپیوتر.
* برنامه نویسی همروند
به وجود آوردن همزمان چند برنامه در کامپیوتر و مدیریت آنها.
* الگوریتمهای موازی
شکستن الگوریتمها به قسمت هایی که میتوانند به صورت همزمان توسط چند پردازنده انجام شوند به منظور افزایش سرعت اجرای الگوریتم.
* طراحی و ساخت کامپایلرها
بر خلاف کارشناسان نرم افزار که نسبت به کامپایلرها شناخت پیدا میکنند ، کارشناسان ارشد، قدرت طراحی و ساخت این قسمت مهم از دنیای تولید نرم افزار را خواهند آموخت.
* شبیه سازی و گرافیک کامپیوتری
هم در معقوله مهندسی نرم افزار طبقه بندی شده و کارشناس ارشد از آموزشهای قدرتمندی جهت انجام آنها بهره خواهد برد.
* زمینههای اشتغال
با توجه به گسترش روزافزون دنیای کامپیوتر امروزه بیش از هر زمان دیگری نیاز به متخصصان کامپیوتر احساس میشود. امروزه یک مهندس کامپیوتر اگر علاقمند به کار باشد، هیچ وقت با مشکل بیکاری روبه رو نمیشود. به خصوص مهندسین نرم افزار فرصتهای شغلی بیشتری داشته و برای کارکردن نیاز به امکانات و تجهیزات زیادی ندارند. فرصتهای شغلی این رشته به حدی گسترده و متعدد است که نه تنها فارغ التحصیلان این رشته به راحتی جذب بازار کار می شوند بلکه دانشجویان دو سال آخر این رشته نیز می توانند وارد بازار کار شده و فعالیت کنند. برای مهندسین سخت افزار هم امکان کار در شرکتهای تولید کننده قطعات و دستگاهها و مراکز صنعتی – تولیدی بسیار فراهم است و از نظر سطح درآمدی هم با توجه به دانش و پشتکار شخصی در حد قابل قبول و ایده آلی قرار دارند. از طرفی با توجه به استفاده روزافزون از شبکه اینترنت زمینه کار در این موضوع نیز بسیار مهیاست.
* بازار کار رشته مهندسی شبکه
مطالعه و بررسی ابزار مخابراتی مناسب برای انتقال اطلاعات
مطالعه و بررسی سرعت و کیفیت شبکههای موجود
ارتقا کیفیت شبکه های موجود
ایجاد شبکه های کامپیوتری
* بازار کار رشته مهندسی نرم افزار
مطالعه، بررسی و امکان سنجی سخت افزار، شبکه و نرم افزار مورد نیاز
فعالیت مستقل برای تولید نرم افزارهای کوچک تا متوسط
بررسی راههای مکانیزه کردن فعالیتهای سازمانی
برنامه نویسی و تولید کد
تست و بررسی برنامه های تولید شده
* بازار کار رشته مهندسی سخت افزار
فعالیت، تحقیق و مطالعه در شرکت های سخت افزاری حاضر که قابلیت مقابله با شرکت های دیگر در سرتاسر نقاط جهان را دارند.
طراحی و پیاده سازی سیستم های کامپیوتری سفارشی
ارتقا کیفیت سخت افزار موجود بوسیله اصلاح های نرم افزاری و سخت افزاری
وضعیت نیاز کشور به این رشته
رشته کامپیوتر که باعث جهانی شدن اطلاعات و ارتباطات شده است ، رشته روز و رشته آینده است تا جایی که پیش بینی می شود تا ۱۰ سال دیگر در کشورهای پیشرفته مردم همان قدر که بر نیروی برق وابسته هستند به شبکه اینترنت وابسته خواهند شد. با توجه به توضیحات گفته شده روند رو به رشد استفاده از کامپیوتر در زندگی روزانه اشتغال و موقعیت کاری برای فارغ التحصیلان این رشته فراهم است تا در قالب شرکتهای تولیدکننده نرم افزار، شرکتهای تولیدکننده قطعات، مراکز صنعتی – تولیدی، شرکتها و موسسات خدماتی، مراکز آموزشی و … مشغول به کار شده و فعالیت کنند. با توجه به پیشرفت کند ایران نسبت به جامعه جهانی کامپیوتر در سالهای اخیر نیاز به مهندسین خلاق و کوشا در این زمینه کاملاً احساس می شود.
روند رو به رشد استفاده از کامپیوتر در محافل عمومی و خصوصی، استفاده گسترده از شبکه اینترنت و زمینه های مرتبط با آن، فراهم آمدن شرایط آموزش و تجارت الکترونیک همه و همه دست به دست هم داده اند تا از اکنون چشم انداز روشنی نسبت به آینده این رشته وجود داشته باشد به نحوی که فعالان در این زمینه از آینده معلوم و مطمئنی برخوردار خواهند بود. تنها نگرانی به قسمت نرم افزار مربوط می شود که باید مهندسان خلاق ایرانی اقدام به تهیه نرم افزارهای گوناگون و کارآمد کرده تا تنها مصرف کننده صرف نباشیم.