انسان باید بیندیشد ولی ماشین باید کار کند.” این شعار متخصصان کامپیوتر است، متخصصانی که با پیشرفت و توسعه کامپیوتر توانستهاند مغز و عضلات انسان را از اشتغالات تکراری و پیشپا افتاده نجات بخشند و او را در رفع مشکلات و مسایل یاری دهند تا جایی که در کشورهای صنعتی و پیشرفته، کامپیوتر در زندگی افراد حضوری اجتنابناپذیر دارد.به همین دلیل رشته مهندسی کامپیوتر که به طراحی و ساخت اجزای مختلف کامپیوتر میپردازد، از اهمیت بسیاری برخودار است. این رشته در کشور ما نیز اهمیت بسیار داشته و تا مقطع دکتری تدریس میشود.رشته مهندسی کامپیوتر در مقطع کارشناسی دارای دو گرایش سختافزار و نرمافزار است.
رشته مهندسی کامپیوتر گرایش سختافزار:
سختافزار جزء فیزیکی کامپیوتر بوده و شامل صفحه کلید، صفحه نمایش، چاپگر و دیسکها میشود؛ یعنی اجزاء فیزیکی و قابل لمس کامپیوتر مانند مدارها و بردهای الکترونیکی، سختافزار نامیده میشود برای مثال واحد پردازشگر مرکزی که هرگونه عملیات پردازش در آن صورت میگیرد، مهمترین واحد سختافزاری است.
مهندسی سختافزار در مقطع لیسانس به مطالعه و بررسی طراحی سختافزاری، کنترل سختافزاری وشبکههای کامپیوتری میپردازد. برای مثال یک مهندس سختافزار میتواند طراحی سختافزاری کند که با IC ها کار کند، با کامپیوتر کار کند، یا از دروازههای کامپیوتر استفاده نماید و در نهایت میتواند به طراحی مدارهای مجتمع دیجیتالی بپردازد. که البته به این بخش از سختافزار بیشتر در مقطع کارشناسی ارشد و دکتری پرداخته میشود.
رشته مهندسی کامپیوتر گرایش نرمافزار:
نرمافزار جزء غیرقابل لمس کامپیوتر است. نرمافزار برنامهها و دادههایی است که به کامپیوتر فرمان میدهد که چه عملی را انجام دهد. نرمافزارها عبارتند از:
نرمافزارهای سیستمی و نرمافزارهای کاربردی:
نرمافزارهای سیستمی برنامههایی هستند که کامپیوتر برای فعال شدن یا سرویس دادن به آن نیاز دارد و به این دلیل از سوی سازندگان سیستم کامپیوتری عرضه میشود و مهمترین آنها سیستم عامل، برنامههای سودمند و مترجمهای زبان میباشد.
همچنین نرمافزارهای کاربردی نیز برنامههایی است که کاربر یا خود آنها را مینویسد یا شرکتهای نرمافزاری آنها را تهیه کرده و برای فروش عرضه میکنند.
یک مهندس نرمافزار یاد می گیرد که چگونه نرمافزارهای بزرگ و عظیم را طراحی و برنامهریزی کند، تست و ارزیابی نهایی نماید و در نهایت مستند سازد (برنامههای کامپیوتری مورد نظر را تبدیل به دستورالعملهایی کند که قابل استفاده برای عامه مردم باشد).
در واقع هدف از گرایش نرمافزار کامپیوتر، آموزش و پژوهش در زمینه زبانهای مختلف برنامهنویسی، سیستمهای عامل مختلف و طراحی انواع الگوریتمها میباشد.
تواناییهای لازم :
مهندس کامپیوتر باید پایه ریاضی قوی داشته و تواناییاش در زمینه فیزیک خوب باشد. همچنین لازم است که فردی خلاق باشد تا بتواند مسائل را از راهحلهای ابتکاری حل کند. راه حلهایی که کمترین هزینه و بهترین کارایی را داشته باشد. در ضمن دانشجویی که وارد این رشته میشود باید همیشه اطلاعاتش به روز بوده و به دنبال فراگرفتن مطالب جدید باشد.
درسهای رشته مهندسی کامپیوتر در طول تحصیل :
- مبانی کامپیوتر و برنامهسازی
- آزمایشگاه کامپیوتر
- ساختمانهای گسسته
- برنامهسازی پیشرفته
- مدارهای الکتریکی
- ساختمان دادهها
- زبان ماشین و برنامهسازی سیستم
- مدارهای الکترونیکی
- مدارهای منطقی
- آز مدار منطقی
- طراحی الگوریتمها
- طراحی و پیادهسازی زبانهای برنامهسازی
- طراحی کامپیوتری سیستمهای دیجیتال
- آز سیستم عامل
- رایانش امن
- ریز پردازنده
- معماریکامپیوتر
- آز معماری کامپوتر
- شبکههای کامپیوتری
- مدیریت و کنترل پروژه
- سیستمهای نهفته و بیدرنگ
- کارآموزی
دروس تخصصی گرایش سختافزار :
سیگنالها و سیستمها، مدارهای الکتریکی، انتقال دادهها، سیستمهای کنترل خطی، الکترونیک دیجیتال، طراحی سیستمهای VLSI ، کارآموزی.
دروس تخصصی گرایش نرمافزار :
ذخیره و بازیابی اطلاعات ، اصول طراحی و ساخت کامپایلرها، اصول طراحی پایگاه دادهها، پروژه آزمایشگاه سیستم عامل، پروژه آزمایشگاه پایگاه دادهها، شبیهسازی کامپیوتری، مهندسی نرمافزار، تحلیل و طراحی سیستمها، پروژه نرمافزار، کارآموزی.
بازار کار رشته مهندسی کامپیوتر:
امروزه یک مهندس کامپیوتر اگر علاقهمند به کار باشد، هیچوقت با مشکل بیکاری روبرو نمیشود. بخصوص مهندسین نرمافزار که فرصتهای شغلی بیشتری داشته و برای کار کردن نیز نیاز به امکانات و تجهیزات زیادی ندارند. به همین دلیل در بعضی از کشورها، صادرات نرمافزار یکی از اقلام مهم صادراتی و ایجاد درآمدهای ارزی برای آن کشور است. جالب است بدانید که متخصصان پیشبینی میکند که تا ۱۰ سال دیگر در کشورهای پیشرفته مردم همانقدر که به نیروی برق وابسته هستند، به شبکه اینترنت وابسته خواهند شد؛ یعنی همان طور که اگر امروزه برق برود هیچ کاری نمیتوان کرد، اگر در ۱۰ سال دیگر اینترنت قطع شود تمامی کارها متوقف خواهد شد. روشن است که در چنین جامعهای متخصص کامپیوتر نقش بسیار مهمی ایفا خواهد کرد.
مهندسین کامپیوتر علاوه بر کار در شرکتهای تولیدکننده قطعات مراکز صنعتی و تولیدکنندگان نرمافزار خود نیز میتوانند اشتغالزایی کنند. از تاسیس آموزشگاههای کامپیوتر تا تاسیس شرکتهای برنامهنویسی برای سایتها و طراحی نرمافزارها.
زمینه های کاری:
تولید، ارتقای امنیت و بهکاریگیری و نگهداری سیستمهای کامپیوتری و نرمافزارها
مهندسان کامپیوتر میتوانند یکی از نقشهای مدیر سیستم، پشتیبان، مدیر فنی، توسعه دهنده، مدیر پروژه، برنامهنویس یا طراح و معمار را داشته باشند.
اگر یک مهندس کامپیوتر علاقه داشته باشد میتواند در هریک از این نقشها، خصوصاً یکی از عناوین توسعه دهنده، برنامهنویس یا طراح و معمار را به صورت فریلنسری دنبال کند. در این صورت امکان انجام پروژهها بصورت دورکاری نیز میسر است. این گروه از مهندسان حتی قادر هستند با پذیرفتن پرژههایی از آنسوی مرزها، درآمد ارزی نیز داشته باشند.
همچنین برای ان دسته از افراد که علاقمند به کار روتین هستند نیز این امکان وجود دارد تا با راهاندازی یا استخدام شدن در یک شرکت نرمافزاری، به انجام پروژههای رایانهای و نرمافزاری یا طراحی و مدیریت سیستم بپردازند.
مهندسان کامپیوتر همچنین میتوانند بعهنوان مدرس سرفصلهای کامپیوتری، برنامهنویسی یا عضویت در هیئت علمی دانشگاهها و مراکز پژوهشی به امر تدریس بپردازند.
معرفی رشته علوم کامپیوتر:
علوم کامپیوتر پل ارتباطی دانش کامپیوتر و ریاضی است و مهمترین هدف آن دستیابی به بهترین الگوریتم های موجود (روش های حل مسأله) در کمترین زمان و با کمترین خطا و بیشترین دقت است .به عبارت دیگر هدف این رشته تربیت گروهی متخصص کامپیوتر است که با دید ریاضی تر و منطقی تر به حل مسائل مطرح شده در علوم کامپیوتر یا ریاضی بپردازند.
این رشته در مقطع کارشناسی دارای 4 گرایش محاسبات علمی، نظریه الگوریتم ها، سخت افزار و سیستم های اطلاعاتی است. که دروس گرایش محاسبات علمی در زمینه برنامه ریزی خطی، غیرخطی، آنالیز عددی و نرم افزار در ریاضی است. یعنی در این گرایش کاربرد ریاضیات در کامپیوتر مطالعه میشود.گرایش نظریه الگوریتم ها به بررسی راه های مختلف حل مسئله به یاری روش های بهینه تر، سریع تر و بهتر میپردازد. این رشته در مقطع کارشناسی دارای 4 گرایش محاسبات علمی، نظریه الگوریتم ها، سخت افزار و سیستم های اطلاعاتی است. که دروس گرایش محاسبات علمی در زمینه برنامه ریزی خطی، غیرخطی، آنالیز عددی و نرم افزار در ریاضی است. یعنی در این گرایش کاربرد ریاضیات در کامپیوتر مطالعه میشود.گرایش نظریه الگوریتم ها به بررسی راه های مختلف حل مسئله به یاری روش های بهینه تر، سریع تر و بهتر میپردازد.
توانایی های لازم برای تحصیل در رشته علوم کامپیوتر:
برای موفقیت دانشجو حتما باید به ریاضی علاقه داشته باشد. معمولا همهی شاخههای ریاضی (حتی انتگرالها) در این رشته ظاهر میشوند اما میتوان بیشتر روی یک شاخه تمرکز کرد؛ مثلا در مورد الگوریتمها نیاز است که گراف و ترکیبیات خوب درک شود، در مورد رمز، نظریه اعداد و در مورد هوش مصنوعی، احتمال.
تفاوت علوم کامپیوتر و مهندسی کامپیوتر:
علوم کامپیوتر به طور کلی زیر مجموعهی علوم محسوب میشود و بیشتر شامل روشهای نظری است. اما مهندسی کامپیوتر به عمل نزدیکتر است. البته دانشگاههای مختلف رویکردهای مختلفی در رشتهی علوم کامپیوتر دارند که ممکن است به بخشهای عملی نزدیکتر یا دورتر باشد. در دانشگاه شریف و دانشگاه شهید بهشتی، این رشته در دانشکدهی علوم ریاضی ارائه میشود.
از نظر محتوا: به عنوان یک طرح کلی، در مهندسی شما روشهای پیاده کردن الگوریتمها یا ساختن نرمافزارها را یاد میگیرید، در علوم کامپیوتر شما توانایی الگوریتمها، بهینهسازی آنها و مدلهای محاسبهی آنها را یاد میگیرید. در شاخههای دیگر جز الگوریتمها هم معمولا همینطور است.
از لحاظ تفاوت شغل: در شرکتهای متوسط معمولا تفاوت زیادی ندارد. در شرکتهای قویتر مانند گوگل معمولا بخش R&D، موقعیت مناسبتری برای علوم کامپیوتر است.
دو مثال یادگیری ماشین و برنامهنویسی را در نظر بگیرید. در دهههای گذشته تقریبا همهی شرکتها به سمت استفاده از ایدههای یادگیری ماشین رفتهاند. شما چه علوم کامپیوتر چه مهندسی کامپیوتر خوانده باشید و به این موضوع علاقه داشته باشید، میتوانید در این موقعیتهای شغلی کار کنید (در هر دو رشته درسهای اختیاری در این شاخه وجود دارد). اما در مورد برنامهنویسی احتمالا کسی که مهندسی کامپیوتر خوانده باشد ارجحیت دارد.
بازارکار رشته علوم کامپیوتر:
موقعیت های شغلی فارغ التحصیل علوم کامپیوتر شباهت بسیاری با مهندسی کامپیوتر گرایش نرم افزار دارد اما در کل نقش فارغ التحصیل این رشته به عنوان مدیر و هماهنگ کننده بسیار مهم و قابل توجه است. فردی که مسئول انتخاب راه حل مسائل و حل آن ها همچنین تقسیم الگوریتم ها در بین مهندسین نرم افزار و در انتها جمع کردن قسمت های توزیع شده می باشد.ش