در این صفحه ابتدا به بیان هر یک از دروس پایه، اصلی، تخصصی و اختیاری رشته کامپیوتر میپردازیم و بعد که با اسامی دروس و نحوه ساختار بندی دروس رشته کامپیوتر آشنا شدید در ادامه به بررسی دقیق هر یک از این دروس میپردازیم. همچنین شما عزیزان برای آشنایی بیشتر با معرفی رشته کامپیوترمعرفی کامل رشته کامپیوتر- بررسی درآمد و شغل های رشته کامپیوتردر این صفحه به بررسی و موشکافی رشته کامپیوتر اعم از بررسی بازار کار، گرایشها، دروس و چارت درسی رشته کامپیوتر، میزان درآمد و حقوق فارغ التحصیلان این رشته و ادامه تحصیل در رشته کامپیوتر پرداخته شده است میتوانید به صفحه مذکور مراجعه کنید.
در صورتیکه به این مقاله علاقهمند هستید، ممکن است صفحات زیر نیز برای شما جذاب باشد:
- رشته کامپیوتر برای دخترآیا رشته کامپیوتر برای دختران مناسبت است؟آمارها حاکی از آن است که زنان به سرعت در حال پیشرفت در علوم کامپیوتر و گرفتن شغلهای تخصصی و حساس هستند در نتیجه در این صفحه نقش خانمها را در رشته کامپیوتر بررسی و به طور کامل تحلیل کردهایم. مناسب است.
- آیا رشته کامپیوتر سخت استآیا رشته کامپیوتر سخت استبعضی از دانشجویان اغلب به علت فهم نادرست، استفاده از منبع آموزشی بیکیفیت و یا نگذاشتن زمان کافی بر روی درس از جانب خود فرد، دروس یک رشته را سخت تلقی میکنند در صورتی که اغلب شنیدهایم که سختی و آسانی یک رشته و یا درس نسبی است. در این صفحه این موضوع بسط داده شده است..
- بررسی درامد رشته کامپیوتربررسی درآمد رشته کامپیوتر در ایران و خارج از کشوردر این صفحه به بررسی درامد رشته کامپیوتر در ایران و همچنین درامد رشته کامپیوتر در خارج از کشور از جمله کانادا، آمریکا، انگلیس، فرانسه و دیگر کشورها پرداخته شده است در ایران و خارج از کشور
- بررسی شغل های رشته کامپیوترمعرفی و بررسی مشاغل رشته کامپیوتردر این صفحه تمامی شغلهای رشته کامپیوتر در ایران و خارج از کشور، شغلهای رشته کامپیوتر برای خانمها و شغلهای پردرآمد رشته کامپیوتر و بهترین مشاغل رشته کامپیوتر در سال 2022 بررسی شده است..
- معرفی بهترین دانشگاه های ایران به ترتیبمعرفی و بررسی بهترین دانشگاه های ایرانتقریبا تمامی دانشجویان و دانشآموزان در دوران تحصیل و به خصوص در هنگام انتخاب رشته میخواهند بدانند که بهترین دانشگاه های ایران به ترتیب چه دانشگاههایی هستند، برای پاسخ به این پرسش در این صفحه رنکینگ دانشگاه های ایران در جهان را از نگاه نظامهای رتبه بندی معتبر بررسی شده است
- برنامه نویسی کامپیوتربرنامه نویسی کامپیوتر چیست و چطور می توانید یک برنامه نویس موفق شوید؟در عصر فعلی برنامهنویسی یکی از پرطرفدارترین شغلهای دنیاست، دغدغهای افرادی که میخواهند در مسیر برنامهنویس شدن قدم بردارند این است که نمیدانند از کجا باید شروع کنند، در این صفحه هر آن چه برای تبدیل شدن به یک برنامه نویس حرفه ای نیاز دارید در اختیارتان قرار گرفته است چیست و چطور میتوان یک برنامه نویس موفق شد.
- معرفی کامل و 0 تا 100 رشته فناوری اطلاعاتمعرفی فناوری اطلاعات (IT) - 7 دلیل برای انتخاب رشته آی تی در دانشگاهآی تی چیست و چگونه پس از ظهور توانست در مدت فقط 20 سال تمام دنیا را فرا بگیرد و اکثر پول دنیا را ببلعد و پرطرفدارترین و پر درآمدترین مشاغل دنیا را در بر گیرد، با بررسی کامل آی تی با ما همراه باشید..
ساختار بندی دروس رشته کامپیوتر
دروس رشته کامپیوتر به 5 دسته زیر تقسیم میشود:
- دروس عمومی رشته کامپیوتر
- دروس پایه رشته کامپیوتر
- دروس اصلی رشته کامپیوتر
- دروس تخصصی رشته کامپیوتر
- دروس اختیاری رشته کامپیوتر
دروس عمومی رشته کامپیوتر
در زیر دروس عمومی رشته کامپیوتر عنوان شده است. علاوه بر اخذ درس های مندرج در ردیف های 1 تا 5 ،اخذ یک درس از ردیف های 6 تا 8 ،یک درس از ردیف های 9 تا 12،یک درس از ردیف های 13 تا 16 ،یک درس از ردیف های 17 تا 20 و یک درس از ردیف های 21 تا 22 الزامی است.
ردیف | عنوان درس | واحد | ردیف | عنوان درس | واحد |
---|---|---|---|---|---|
1 | ادبیات فارسی | 3 | 12 | عرفان عملی در اسلام | 2 |
2 | زبان خارجی | 3 | 13 | انقلاب اسلامی ایران | 2 |
3 | تربیت بدنی 1 | 1 | 14 | آشنایی با قوانین اساسی | 2 |
4 | تربیت بدنی 2 | 1 | 15 | اندیشه سیاسی امام | 2 |
5 | اندیشه اسلامی 1 | 2 | 16 | آشنایی با ارزشهای دفاع مقدس | 2 |
6 | اندیشه اسلامی 2 | 2 | 17 | تاریخ فرهنگ و تمدن اسلام و ایران | 2 |
7 | انسان در اسلام | 2 | 18 | تاریخ تحلیلی صدر اسلام | 2 |
8 | حقوق اجتماعی و سیاسی در اسلام | 2 | 19 | تاریخ اسلام | 2 |
9 | اخلاق اسلامی 1 | 2 | 20 | تاریخ امامت | 2 |
10 | فلسفه اخلاق | 2 | 21 | تفسیر موضوعی قرآن | 2 |
11 | آیین زندگی | 2 | 22 | تفسیر موضوعی نهج البلاغه | 2 |
دروس پایه رشته کامپیوتر
در زیر دروس پایه رشته کامپیوتر عنوان شده است.
دروس پایه رشته کامپیوتر
کد درس | عنوان درس | تعداد واحد | پیشنیاز | همنیاز |
---|---|---|---|---|
٢٢٠١۵ | ریاضی عمومی ١ | 4 | - | - |
22016 | ریاضی عمومی ٢ | 4 | ریاضی عمومی ١ | - |
٢٢٠٣۴ | معادلات دیفرانسیل | 3 | - | ریاضی عمومی ٢ |
٢۴٠١١ | فیزیک ١ | 3 | - | - |
٢۴٠١٢ | فیزیک 2 | 3 | فیزیک ١ | - |
٢۴٠٠٢ | آز فیزیک ٢ | 1 | - | فیزیک 2 |
۴٠١۵٣ | مبانی برنامه سازی | 3 | - | - |
۴٠١٨١ | آمار و احتمال مهندسی | 3 | ریاضی عمومی 1 | - |
دروس اصلی رشته کامپیوتر
در زیر دروس اصلی رشته کامپیوتر عنوان شده است:
کد درس | عنوان درس | تعداد واحد | پیشنیاز | همنیاز |
---|---|---|---|---|
۴٠١٠٨ | کارگاه کامپیوتر | 1 | - | - |
۴٠١١۵ | ساختمان های گسسته | 3 | - | - |
۴٠٢۴۴ | برنامه سازی پیشرفته | 3 | مبانی برنامه سازی | - |
۴٠٢١٢ | مدارهای منطقی | 3 | - | - |
۴٠٢٠۶ | آز مدارهای منطقی | 1 | مدارهای منطقی | - |
۴٠٢۵۴ | ساختمان داده ها و الگوریتمها | 3 | ساختمانهای گسسته | برنامه سازی پیشرفته |
۴٠١٢۴ | مبانی مدارهای الکتریکی و الکترونیکی | 3 | فیزیک ٢ | - |
۴٠١٢۶ | ساختار و زبان كامپيوتر | 3 | مبانی برنامه سازی، مدارهای منطقی | - |
۴٠٢١١ | زبان تخصصی کامپیوتر | 2 | زبان خارجی | - |
۴٠٢٢٣ | طراحی سیستمهای دیجیتال | 3 | ساختار و زبان کامپیوتر | - |
۴٠٢٠٣ | آز طراحی سیستمهای دیجیتال | 1 | آز مدارهای منطقی | طراحی سیستم های دیجیتال |
۴٠٣٢٣ | معماری کامپیوتر | 3 | ساختار و زبان کامپیوتر | - |
۴٠١٠٣ | آز معماری کامپیوتر | 1 | معماری کامپیوتر، آز مدارهای منطقی | - |
۴٠۴١۴ | طراحی کامپایلرها | 3 | ساختمان داده ها و الگوریتم ها | - |
۴٠۴١٧ | هوش مصنوعی | 3 | ساختمان دادهها و الگوریتمها، آمار و احتمال مهندسی | - |
۴٠٢٨٢ | جبر خطی | 3 | ریاضی عمومی ٢ | - |
۴٠٢٢١ | ارائه مطالب علمی و فنی | 2 | زبان تخصصی کامپیوتر | - |
۴٠٣٨۴ | طراحی پایگاه دادهها | 3 | ساختمان دادهها و الگوریتمها | - |
۴٠۴٢۴ | سیستمهای عامل | 3 | معماری کامپیوتر | - |
۴٠۴٠٨ | آز سیستمهای عامل | 1 | سیستمهای عامل | - |
۴٠۴١٨ | تحلیل و طراحی سیستمها | 3 | ارائه مطالب علمی و فنی، طراحی پایگاه دادهها | - |
۴٠۴۴٣ | شبکههای کامپیوتری | 3 | آمار و احتمال مهندسی | سیستم های عامل |
۴٠۴١۶ | آز شبکه های کامپیوتری | 1 | - | شبکه های کامپیوتری |
۴٠۴۴٢ | امنیت داده و شبکه | 3 | شبکه های كامپيوتری | - |
دروس تخصصی رشته کامپیوتر
در زیر دروس تخصصی رشته کامپیوتر بیان شده است.
جدول دروس تخصصی
کد درس | عنوان درس | تعداد واحد | پیشنیاز | همنیاز |
---|---|---|---|---|
۴٠٢۴٢ | سیگنال ها و سیستم ها | 3 | مبانی مدارهای الکتریکی و الکترونیکی | - |
۴٠٣٢۴ | بازیابی پیشرفته اطلاعات | 3 | ساختمان داده ها و الگوریتم ها | - |
۴٠٣۴٣ | انتقال داده ها | 3 | سیگنال ها و سیستم ها | - |
۴٠٣۴٧ | آداب فناوری اطلاعات | 3 | - | - |
۴٠٣۵٣ | VLSI طراحی | 3 | طراحی سیستم های دیجیتال، مبانی مدارهای الکتریکی و الکترونیک | - |
۴٠٣۵۴ | طراحی الگوریتم ها | 3 | ساختمان داده ها و الگوریتم ها | - |
۴٠٣۶۴ | طراحی زبان های برنامه سازی | 3 | برنامه سازی پیشرفته | - |
۴٠۴١۵ | نظریه زبان ها و ماشین ها | 3 | ساختمان داده ها و الگوریتم ها | - |
۴٠۴٢٨ | مدیریت پروژه های فناوری اطلاعات | 3 | - | - |
۴٠۴۵٣ | سیستم های بی درنگ | 3 | - | سیستم های عامل |
۴٠۴۶٢ | سیستم های نهفته | 3 | معماری کامپیوتر | - |
۴٠۴٧۴ | مهندسی نرم افزار | 3 | تحلیل و طراحی سیستم ها | - |
۴٠۴٨۴ | طراحی شیءگرای سیستم ها | 3 | تحلیل و طراحی سیستم ها | - |
۴٠۶٣۴ | شبیه سازی کامپیوتری | 3 | آمار و احتمال مهندسی | - |
اخذ حداقل 7 درس از جدول دروس تخصصی الزامی است.
دروس اختیاری رشته کامپیوتر
در زیر دروس اختیاری رشته کامپیوتر بیان شده است.
کد درس | عنوان درس | تعداد واحد | پیشنیاز | همنیاز |
---|---|---|---|---|
۴٠٢١۵ | محاسبات عددی | 3 | معادلات دیفرانسیل | - |
۴٠٣۴٢ | سیستم های چندرسانه ای | 3 | سیگنال ها و سیستم ها | - |
۴٠٣۴۴ | مبانی بینايی سه بعدی کامپیوتری | 3 | جبر خطی یا ریاضی مهندسی | - |
۴٠۴١٢ | مدارهای منطقی پیشرفته | 3 | مدارهای منطقی | - |
۴٠۴١٩ | برنامه سازی وب | 3 | برنامه سازی پیشرفته | - |
۴٠۴٢٩ | برنامه سازی موبایل | 3 | برنامه سازی پیشرفته | - |
۴٠۴٣٢ | رایانش چند هسته ای | 3 | برنامه سازی پیشرفته، معماری کامپیوتر | - |
۴٠۴٣٣ | مدارهای واسط | 3 | معماری کامپیوتر | - |
۴٠۴٣٨ | تجارت الکترونیکی | 3 | مهندسی کاربرد | - |
۴٠۴۴٧ | گرافیک کامپیوتری | 3 | - | طراحی الگوریتم ها |
۴٠۴۴٨ | مدیریت و برنامه ریزی راهبردی فا | 3 | مدیریت پروژه های فناوری اطلاعات | - |
۴٠۴۵۵ | نظریه محاسبات | 3 | ساختمان داده ها و الگوریتم ها | - |
40456 | نظریه بازی ها | 3 | ساختمان داده ها و الگوریتم ها، آمار و احتمال مهندسی | - |
۴٠۴۶٣ | اندازه گیری و کنترل کامپیوتری | 3 | مبانی مدارهای الکتریکی و الکترونیکی | - |
۴٠۴۶٧ | فناوری اطلاعات | 3 | - | - |
۴٠۴٧۵ | ایجاد چابک نرم افزار | 3 | تحلیل و طراحی سیستم ها | - |
۴٠۴٧٨ | مهندسی کاربرد | 3 | - | تحلیل و طراحی سیستم ها |
۴٠۴٨٣ | زبان های توصیف سخت افزار | 3 | طراحی سیستم های دیجیتال، معماری کامپیوتر | - |
۴٠۴٩۴ | مقدمه ای بر بیوانفورماتیک | 3 | ساختمان داده ها و الگوریتم ها، آمار و احتمال مهندسی | - |
۴٠٧١٧ | یادگیری ماشین | 3 | آمار و احتمال مهندسی، جبر خطی | - |
۴٠٨٢٨ | آزمون نرم افزار | 3 | تحلیل و طراحی سیستم ها | - |
۴٠١٠٢ | آز سخت افزار | 1 | آز معماری کامپیوتر | - |
۴٠۴٠١ | آز اتوماسیون صنعتی | 1 | اندازه گیری و کنترل کامپیوتری | - |
40402 | آز VLSI | 1 | - | طراحی VLSI |
۴٠۴٠۴ | آز مهندسی نرم افزار | 1 | - | مهندسی نرم افزار |
اخذ حداقل 13 واحد شامل 4 درس سه واحدی و 1 آزمایشگاه از جدول فوق الزامی است.
بررسی دقیق هر یک از دروس رشته کامپیوتر
تا اینجا هر یک از دروس پایه، اصلی، تخصصی و اختیاری رشته کامپیوتر را بیان کردهایم، حال میخواهیم به بررسی دقیق هر یک از این دروس بپردازیم، و در خصوص هر درس در مورد موارد زیر صحبت کنیم:
- هدف هر درس در رشته کامپیوتر چیست و چه چیزی را میخواهد به دانشجویان منتقل کند
- سر فصل هر درس چیست
- بررسی نحوه ارزیابی در هر درس
- بررسی منابع و رفرنسهای مربوط به هر درس
حال در اولین قدم به بررسی دروس پایه رشته کامپیوتر میپردازیم، با ما همراه باشید.
دروس پایه رشته مهندسی کامپیوتر
کد درس | عنوان درس | تعداد واحد | پیشنیاز | همنیاز |
---|---|---|---|---|
٢٢٠١۵ | ریاضی عمومی ١ | 4 | - | - |
22016 | ریاضی عمومی ٢ | 4 | ریاضی عمومی ١ | - |
٢٢٠٣۴ | معادلات دیفرانسیل | 3 | - | ریاضی عمومی ٢ |
٢۴٠١١ | فیزیک ١ | 3 | - | - |
٢۴٠١٢ | فیزیک 2 | 3 | فیزیک ١ | - |
٢۴٠٠٢ | آز فیزیک ٢ | 1 | - | فیزیک 2 |
۴٠١۵٣ | مبانی برنامه سازی | 3 | - | - |
۴٠١٨١ | آمار و احتمال مهندسی | 3 | ریاضی عمومی 1 | - |
ریاضی عمومی ١ (شماره درس: ٢٢٠١۵)
General Mathematics 1
اهداف درس
هدف از اين درس، آشنایی دانشجویان با حساب دیفرانسیل و انتگرال به عنوان ابزار حل مسائل بالاخص مسائل غیرخطی و نیز فراهم آوردن چهارچوب مفهومی مناسب برای صورتبندی مسائل به صورت ریاضی و حل آنها است.
ریز مواد
- اعداد ( ٨ جلسه )
مروری تاریخی بر مفهوم عدد اعداد گویا و ناگویا، اصل تمامیت، مختصات دکارتی مختصات قطبی،اعداد مختلط، جمع و ضرب و ریشه، نمایش اعداد مختلط، جمع و ضرب و ریشه، نمایش هندسی اعداد مختلط، دنبالههای عددی
- توابع پیوسته و مشتق ( ١٢ جلسه )
تابع، جبر توابع، حد و قضایای مربوط، حد بی نهایت و حد در بی نهایت، حد چپ و راست، پیوستگی مشتق، دستورهای مشتقگیری، تابع معکوس و مشتق آن، مشتق توابع مثلثاتی و توابع معکوس آنها، قضیهی رل، قضیهی میانگین، بسط تیلور، کاربردهای هندسی و فیزیکی مشتق، خمها، سرعت و شتاب در مختصات قطبی، کاربرد مشتق در تقریب ریشههای معادلات
- انتگرال ( ٨ جلسه )
تعریف انتگرال توابع پیوسته و قطعه قطعه پیوسته، قضایای اساسی حساب دیفرانسیل و انتگرال، تابع اولیه، روشهای تقریبی برآورد انتگرال، کاربرد انتگرال در محاسبهی مساحت و حجم و طول منحنی و گشتاور و مرکز ثقل و کار و نظایر آن (در مختصات دکارتی و قطبی) لگاریتم و تابع نهایی و مشتق آنها، تابعهای هذلولوی، روشهای انتگرالگیری مانند تعویض متغیر و جزء به جزء و تجزیهی کسرها
- سری های تابعی ( ۴ جلسه )
دنباله و سری به عنوان تابع، سریهای عددی و قضایای همگرایی سری توانی، سری تیلور، و سری فوریه، قضیه ی تیلور با باقیمانده و بدون باقیمانده
ارزیابی
- آزمون میانترم: ٨ الی ١٠ نمره
- آزمون پایانی: ١٠ الی ١٢ نمره
مراجع
[1] Robert A. Adams and Cristopher Essex. Calculus, A Complete Course. 9th edition, Pearson, 2018.
[2] James Stewart. Calculus. 8th edition, Cengage learning, 2016.
[٣] سیاوش شهشهانی”حساب دیفرانسیل و انتگرال،“ جلد اول، ویراست دوم، انتشارات فاطمی، ١٣٩۶.
ریاضی عمومی ٢ (شماره درس: ٢٢٠١۶)
General Mathematics 2
اهداف درس
هدف از اين درس، آشنایی دانشجویان با مفاهیم جبر خطی n بعدی به عنوان زمینهی طرح و بررسی مسائل با n پارامتر، و همچنین آشنایی با مفهوم مشتق توابع چندمتغیری و انتگرال چندگانه است.
ریز مواد
- آشنایی با جبر خطی ( ١٠ جلسه )
مختصات فضایی، بردار در فضا، ضرب عددی، دستگاه معادلات خطی ،عملیات روی سطرها، معکوس ماتریس، حل دستگاه معادلات، استقلال خطی ،پایه، تبدیل خطی و ماتریس آن، دترمینان، مقدار و بردار ویژه، ضرب برداری،معادلات خط و صفحه
- خم ها و رویه ها ( ۴ جلسه )
رویهی درجه دو، تابع برداری و مشتق آن، سرعت و شتاب، خمیدگی و بردارهای قائم بر منحنی
- مشتق توابع چندمتغیری ( ۴ جلسه )
توابع چندمتغیری، مشتق سویی و جزیی، صفحه مماس و خط قائم، گردایان، قاعده ی زنجیری برای مشتق جزیی،دیفرانسیل کامل
- بهینه سازی ( ۴ جلسه )
نقاط بحرانی و عادی، ردهبندی نقاط بحرانی، یافتن بیشینه و کمینه بدون قید و با قید روش لاگرانژ
- انتگرال چندگانه ( ۴ جلسه )
انتگرالهای دوگانه و سه گانه و کاربردهای آنها در مسائل هندسی و فیزیکی تعویض ترتیب انتگرالگیری
- انتگرال روی خم و میدان های برداری ( ۶ جلسه )
مختصات استوانهای و کروی، میدان برداری، انتگرال منحنی الخط، انتگرال رویهای، دیورژانس، چرخه، لاپلاسین،پتانسیل، قضایای گرین و دیورژانس و استوکس.
ارزیابی
- آزمون میانترم: ٨ الی ١٠ نمره
- آزمون پایانی: ١٠ الی ١٢ نمره
مراجع
[1] Robert A. Adams and Cristopher Essex. Calculus, A Complete Course. 9th edition, Pearson, 2018.
[2] James Stewart. Calculus. 8th edition, Cengage learning, 2016.
[٣] سیاوش شهشهانی، ”حساب دیفرانسیل و انتگرال،“ جلد دوم، ویراست دوم، انتشارات فاطمی، ١٣٩٧.
معادلات دیفرانسیل (شماره درس: ٢٢٠٣۴)
Defferential Equations
اهداف درس
هدف از اين درس، آشنایی دانشجویان با معادلات دیفرانسیل به وسیلهی روشهای تحلیلی هندسی و کیفی است. در ارائهی این درس بر مدلسازی و مطالعهی مدلهای ریاضی سیستمهای فیزیکی طبیعی و اجتماعی تاکید میشود.
ریز مواد
- مقدمه( ١ جلسه )
نکات کلی در مورد جوابهای معادلات دیفرانسیل، دستهبندی معادلات دیفرانسیل، قضیهی وجود و یکتایی جواب
- معادلات مرتبه ی اول ( ٧ جلسه )
معادلات جداییپذیر، معادلات همگن، معادلات قابل تبدیل به معادلات همگن، معادلات کامل، فاکتورهای انتگرال، معادلات خطی مرتبهی اول، معادلات غیرخطی مهم (برنولی، لاگرانژ و...)، دستههای منحنی مسیرهای قائم، مدلسازی معادلات مرتبهی اول
- معادلات مرتبه ی دوم ( ٨ جلسه )
کاهش مرتبه، مفاهیم مقدماتی لازم معادلات خطی، معرفی جواب عمومی معادله خطی همگن و غیرهمگن، استفاده از یک جواب معلوم برای یافتن جوابی دیگر، معادلات خطی همگن با ضرایب ثابت (مرتبهی دوم و بالاتر،) معادلات خطی غیرهمگن، روشهای عملگری معادلات با ضرایب غیرثابت (معادلات کوشی اویلر،...) نظریهی مقدماتی معادلات با شرایط مرزی (مقادیر و توابع ویژه و...)
- جواب های سری توانی و توابع خاص (۶ جلسه )
مروری بر سریهای توانی،جوابها حول نقاط عادی، معادله ی لژاندر، چندجملهایهای لژاندر، خواص چندجملهایهای لژاندر، جوابها حول نقاط غیرعادی (روش فروبنیوس،) معادلهی بسل، تابع گاما خواص تابع بسل
- تبدیل لاپلاس و کاربردهای آن ( ۶ جلسه )
مقدمه (نکاتی در مورد نظریه لاپلاس) قضیهی وجودی، تبدیل لاپلاس، مشتق و انتگرال، قضایای انتقال و معرفیتوابع پلهای واحد و تابع دلتای دیراک، موارد استعمال در معادلات دیفرانسیل، مشتق و انتگرال تبدیل لاپلاس، معرفی پیچش (کانولوشن،) معرفی، معادلات انتگرالی، حل دستگاه خطی با تبدیل لاپلاس
- دستگاههای معادلات خطی ( ٢ جلسه )
معرفی دستگاههایخطی، حل دستگاههای خطی همگن و غیرهمگن با ضرایب ثابت، روشهای مقادیر و توابع ویژه
ارزیابی
- آزمون میانترم: ٨ الی ١٠ نمره
- آزمون پایانی: ١٠ الی ١٢ نمره
مراجع
[1] Martin Braun. Differential Equations and Their Applications: An Introduction to Applied Mathematics. 4th edition, Springer, 1993.
[2] William E. Boyce, Richard C. Diprima, and Douglas B. Meade. Elementary Differential Equations and Boundary Value Problems. 11th edition, Wiley, 2017.
[3] Henry C. Edwards and David E. Penney. Elementary Differential Equations with Boundary Value Problems. 6th edition, Prentice Hall, 2003.
فیزیک ١ (شماره درس: ٢۴٠١١)
Physics 1
اهداف درس
هدف از اين درس، آشنایی دانشجویان با مفاهیم مکانیک کلاسیک است.
ریز مواد
- اندازهگیری ( ١ جلسه )
- حرکت در یک بعد ( ١ جلسه )
- حرکت در صفحه ( ٢ جلسه )
- دینامیک ذره ( ۴ جلسه )
- کار و انرژی ( ٣ جلسه )
- سامانهی ذرات ( ٣ جلسه )
- تکانهی خطی و برخورد ( ٢ جلسه )
- سینماتیک دورانی ( ٣ جلسه )
- دینامیک دورانی ( ۴ جلسه )
- تعادل ( ٢ جلسه )
- گرانش ( ٢ جلسه )
- نوسان ( ٣ جلسه )
ارزیابی
- تمرینهای نظری: ۴ نمره
- آزمون میانترم: ۶ نمره
- آزمون پایانی: ١٠ نمره
مراجع
[1] David Halliday, Robert Resnick, and Jearl Walker. Fundamentals of Physics Extended. 10th edition, Wiley, 2013.
[2] H. D. Young and R. A. Freedman, and A. L. Ford. University Physics with Modern Physics Technology Update. 13th edition, Addison-Wesley, 2013.
[3] David Halliday, Robert Resnick, and Kenneth S. Krane, Physics, Volume 1. 5th edition, Wiley, 2001.
فیزیک ٢ (شماره درس: ٢۴٠١٢)
Physics 2
اهداف درس
هدف از اين درس، آشنایی دانشجویان با مفاهیم الکتریسیته و مغناطیس است.
ریز مواد
- بار و ماده ( ١ جلسه )
- قانون کولون و میدان الکتریکی (٣ جلسه )
- قانون گاوس و کاربرد ( ٢ جلسه )
- پتانسیل الکتریکی (٢ جلسه )
- خازن و دی الکتریک ( ٣ جلسه )
- جریان و مقاومت ( ٢جلسه )
- مدارهای الکتریکی (٢ جلسه )
- میدان مغناطیسی ( ٢جلسه )
- قانون آمپر ( ٢جلسه )
- قانون فاراده ( ٢جلسه )
- خواص مغناطیسی ماده ( ١جلسه )
- معادلات ماکسول ( ٢جلسه )
- مدارهای RLC (٢ جلسه )
- جریان AC (٢ جلسه )
- امواج EM (٢ جلسه )
ارزیابی
- تمرینهای نظری: ۴ نمره
- آزمون میانترم: ۶ نمره
- آزمون پایانی: ١٠ نمره
مراجع
[1] David Halliday, Robert Resnick, and Jearl Walker. Fundamentals of Physics Extended. 10th edition, Wiley, 2013.
[2] H. D. Young and R. A. Freedman, and A. L. Ford. University Physics with Modern Physics Technology Update. 13th edition, Addison-Wesley, 2013.
[3] David Halliday, Robert Resnick, and Kenneth S. Krane, Physics, Volume 2. 5th edition, Wiley, 2001.
آز فیزیک ٢ (شماره درس: ٢۴٠٠٢)
Physics Lab 2
اهداف درس
هدف از اين درس، آشنایی و کسب مهارتهای فنی با مفاهیم عملی و روشهای اندازهگیری در زمینههای الکتریسیته و مغناطیس ساکن و الکترومغناطیسی است.
ریز مواد
حداقل ١٢ آزمایش از آزمایشهای زیر با توجه به امکانات موجود در ١٢ جلسهی ٢ ساعتی کار آزمایشگاهی ارائه میشود.
- روشهای اندازهگیری مقاومت الکتریکی (قانون اهم، پل وتستون، با استفاده از اهممتر) و اندازهگیری مجموعه مقاومتهای اتصال: سری و موازی
- تحقیق رابطهی L/A=R و بررسی تغییرات مقاومت بر حسب طول، مساحت مقطع سیم و مقاومت ویژه ( ١جلسه )
- تحقیق قوانین کرشوف در مدارهای الکتریکی و اندازهگیری مقاومت دستگاههای اندازهگیری، از جمله مقاومت درونی و نیروی محرکه یک منبع ولتاژ
- مطالعهی شارژ و دشارژ خازنها و تعیین زمان مشخصهی مدار و ظرفیت خازن یا مجموعهی خازنها
- اندازهگیری نیروی محرکه القایی بر حسب طول سیم موثر، سرعت حرکت سیم در میدان مغناطیسی و شدت میدان مغناطیسی
- مطالعهی ترانسفورماتورها (تعیین ضریب تبدیل جریان، ولتاژ، محاسبه مقاومت اهمی اولیه و ثانویه، مقاومت ظاهری
- بررسی مدارهای متناوب R-L و R-C سری، اندازهگیری جریان و ولتاژ هر عنصر در فرکانسهای متناوب و امپدانس، فاز ودر نتیجه تعیین ظرفیت خازن و ضریب خودالقایی سیم پیچ
- تعیین امپدانس مدار متناوب R-C-L سری و محاسبه فرکانس تشدید و تعیین ظرفیت خازن یا ضریب خودالقایی
- بررسی و مشاهدهی پدیدهی الکترومغناظیسی جریانهای القایی جریانهای گردابی، ترمز مغناظیسی و کاربرد آنها
- آشنایی با اسیلسͺوپ و کاربرد آن (مشاهدهی انواع امواج متناوب، اندازهگیری طول موج، زمان تناوب،اختلاف فاز، مشاهده منحنیهای لیساژو)
- نیروی وارد بر سیم حامل جریان در یک میدان مغناطیسی
- بررسی ظرفیت خازن و اندازهگیری ضریب دی الکتریک آن
- بررسی کنتور جریان متناوب (یک فاز و سه فاز) و اندازه گیریهای مربوطه
- الکترواستاتیک - روشهای القای بار، مولدهای بار الکترواستاتی ( وان دی گراف، ویمشورتس،) کاربردها
- ترسیم خطوط الکترواستاتی ( توپوگرافی میدان الکتریکی هم پتانسیل برای آرایشهای مختلف الکترودها)
- بررسی ژنراتورها و الکتروموتورها و اندازهگیریهای مربوطه
- اتصالات ستاره و مثلث در جریانهای سه فاز و اندازهگیری توان
ارزیابی
- گزارش کار آزمایشهای هفتگی: ١٠ نمره
- آزمون پایانی: ١٠ نمره
مراجع
[1] David Halliday, Robert Resnick, and Jearl Walker. Fundamentals of Physics Extended. 10th edition, Wiley, 2013.
[2] H. D. Young and R. A. Freedman, and A. L. Ford. University Physics with Modern Physics Technology Update. 13th edition, Addison-Wesley, 2013.
[3] David Halliday, Robert Resnick, and Kenneth S. Krane, Physics, Volume 2. 5th edition, Wiley, 2001.
مبانی برنامه سازی (شماره درس: ۴٠١۵٣)
Fundamentals of Programming
اهداف درس
هدف از این درس، آشنایی دانشجویان با برنامهسازی به زبان سی، نوشتن کد مهندسی ساز (برنامه سازی ساختارمند، توضیح گذاری، جدانویسی) و توانایی پیاده سازی شبه کد است.
ریز مواد
- مفاهیم اولیه ( ١ جلسه )
- تاریخچهی توسعهی کامپیوتر (سیستمهای عامل، زبانهای برنامه سازی)
- معرفی اجزای اصلی کامپیوتر
- تاریخچه ی ++C/C
- برنامه سازی ساخت یافته و نوشتن کد مهندسی ساز
- ساختار و مراحل ساخت و اجرای برنامه
- محاسبات در کامپیوتر ( ١ جلسه )
- سیستمهای عددی (دودویی، ده دهی، مبنای شانزده)
- جمع و تفریق در مبناها
- تبدیل مبناها
- آشنایی با الگوریتم و فلوچارت ( ٢ جلسه )
- تعریف الگوریتم و مراحل حل مسئله
- اجزای الگوریتم (محاسبات، تصمیم گیری، تکرار)
- نمایش تصویری الگوریتم به وسیلهی فلوچارت
- نمونههایی از چند الگوریتم اولیه
- مقدمات برنامه سازی ( ١ جلسه )
- متغیرها، انواع داده
- دستورهای ورودی/خروجی
- آشنایی با کدنویسی خوب (توضیح گذاری، جدانویس)
- محاسبات ریاضی (جمع، تفریق، ضرب، تقسیم، باقیمانده)
- اولویت محاسبات
- مقایسه
- فرمت بندی ورودی/خروجی ( ١ جلسه )
- قالببندی خروجی با printf
- کنترل دقت نمایش اعداد در خروجی
- چاپ اعداد صحیح، اعداد ممیزدار، رشتهها، و کاراکترها
- خواندن قالببندی شده از ورودی با scanf
- دستورها ( ٣ جلسه )
- دستورهای انتخاب (switch ،if/else ،if)
- دستورهای تکرار(do/while ،for ،while)
- تبدیل دادهها
- ثابتها (const)
- عملگرهای منطقی
- عملگر انتخاب ؟ :
- استفاده از typename
- توابع ( ۴ جلسه )
- توابع ریاضی
- توابع تصادفی
- توابع زمان
- الگوی توابع (prototype)
- ردههای ذخیره سازی (extern ،register ،static)
- حوزه های تعریف (block ،function ،file)
- پشته در فراخوانی تابع
- توابع بازگشتی
- مقایسه توابع بازگشتی و غیربازگشتی
- پروندههای header
- آزمون و خطایابی برنامه ( ١ جلسه )
- استفاده از دستورهای خروجی برای پیدا کردن خطا
- استفاده از امکانات IDE برای پیدا کردن خطا
- آرایه ها ( ۵ جلسه )
- تعریف و به کارگیری آرایهها
- ارسال آرایه به تابع
- جستجوی دودویی در آرایه
- مرتب سازی آرایه
- آرایههای چندبعدی
- تعریف ثابتها با استفاده از define
- اشاره گرها ( ٣ جلسه )
- عملگرهای اشاره گری
- فراخوانی با ارجاع توسط اشاره گرها
- استفاده از const در اشاره گرها
- عملگر sizeof
- محاسبات آدرس بر روی اشاره گرها (جمع، تفریق )
- ارتباط بین اشاره گرها و آرایهها
- آرایه ای از اشاره گرها
- کاراکترها و رشتهها ( ١ جلسه )
- تبدیل کاراکترها
- توابع رشتهای
- دست کاری رشتهها
- ساختارها ( ٢ جلسه )
- تعریف ساختار (struct)
- دست رسی به اعضای ساختار
- ارسال ساختارها به توابع
- ایجاد نامهای مترادف با typedef
- نوع دادهی union
- ثابتهای شمارشی (enum)
- عملگرهای بیتی
- آشنایی با زبان سی++ ( ١ جلسه )
- ورودی و خروجی با استفاده از جویبارها
- فضای نامها، استفاده از using
- عملگر تغییر حوزه “::”
- انواع فراخوانی توابع (با مقدار و با ارجاع )
- توابع درون خط (inline)
- تعریف مقدار پیش فرض در توابع
- سربارگذاری توابع
- آشنایی با ردهها ( ١ جلسه )
- ردهها (class)
- اعضای دادهای و توابع عضو
- حوزههای private وpublic
- سازندهها
- مقداردهی اشیاء
- ارسال/دریافت اشیاء به/از توابع
- پروندهها ( ١ جلسه )
- خواندن و نوشتن در پروندههای ترتیبی
- جویبارهای ورودی و خروجی
- خواندن و نوشتن در پروندههای تصادفی (اختیاری)
- مباحث اختیاری (در صورت فرصت )
- آشنایی با ردههای نمونه نظیر string و vector
- آشنایی با فرایند تولید نرم افزار
- پیش پردازش گرها در C
ارزیابی
- آزمون میانترم: ۴ نمره
- آزمون پایانی: ٧ نمره
- تمرینهای برنامه سازی (دست کم ۴تمرین:) ۴ نمره
- پروژه (طی دو مرحله در طول نیمسال:) ٣ نمره
- آزمونکها: ٢ نمره
- فعالیت اضافی (مانند شرکت در مسابقهی برنامهسازی:) ١ نمرهی اضافی
مراجع
[1] P. Deitel and H. Deitel. C: How to Program. 8th edition, Prentice-Hall, 2016.
[2] B. W. Kernighan and D. M. Ritchie. The C Programming Language. 2nd edition, Prentice Hall, 1988.
آمار و احتمال مهندسی (شماره درس:۴٠١٨١)
Engineering Probability and Statistics
اهداف درس
هدف از اين درس، آشنایی دانش جویان با مفاهیم بنیادین تئوری احتمال و استنتاج آماری و کاربردهای آن در مهندسی کامپیوتر، مانند مساله ی مدل سازی داده ها مانند رگرسیون، است. این مفاهیم شامل تفسیر و اصول موضوعه ی آمار، توابع توزیع احتمال تک و چندمتغیره، احتمال شرطی و استقلال آماری، متغیرهای تصادفی و متوسط گیری، توابع تعریف شده روی متغیرهای تصادفی، خانواده توزیع های نمایی، قضیه ی حد مرکزی و قانون اعداد بزرگ، و تست فرضیه می شود.
ریز مواد
- تفسیرهای احتمال
- اصول موضوعهی احتمال
- عملگرهای روی رخداده
- استقلال آماری، احتمال شرطی و قاعده بیز
- متغیرهای تصادفی
- امید ریاضی و خواص آن
- ممانهای مرتبه بالا و تابع مشخصه
- توابع تعریف شده روی یک متغیر تصادفی
- تابع توزیع احتمال مشترک (Joint Probability Distribution
- تابع چگالی و قانون بیز
- توزیع پیشین مزدوج (Conjugate Prior Distribution)
- خانوادهی نمایی (Exponential Family
- توزیعهای خاص
- ممانهای مشترک (Joint Moments)
- توابع تعریف شده روی دو یا چند متغیر تصادفی
- قضیهی حد مرکزی (Central Limit Theorem)
- قانون اعداد بزرگ (Law of Large Numbers)
- همگرایی در احتمال (Convergence in Probability)
- تخمینگرهای بیشینه درستنمایی (Maximum Likelihood ) و بیشینه احتمال پسین (Maximum a Posteriori Probability )
- تخمین بیز(Bayes Estimation
- خصوصیات تخمینگرها
- تستهای آماری و تست فرضیه (Statistical and Hypothesis Tests)
ارزیابی
- تمرینهای نظری: ۴ نمره
- آزمون میانترم ۴ :١ نمره
- آزمون میانترم ۴ :٢ نمره
- آزمون پایانترم: ۶ نمره
- آزمونکها: ٢ نمره
مراجع
[1] A. Poppulis and S. Pillai. Probability, Random Variables and Stochastic Processes. 4th edition, McGraw Hill, 2002 (Chapters 1 through 8).
[2] S. Ross. A First Course in Probability. 10th edition, Prentice Hall, 2019.
[3] G. Casella and R. L. Berger. Statistical Inference. 2nd edition, Wadsworth Press, 2002.
دروس اصلی رشته کامپیوتر
کد درس | عنوان درس | تعداد واحد | پیشنیاز | همنیاز |
---|---|---|---|---|
۴٠١٠٨ | کارگاه کامپیوتر | 1 | - | - |
۴٠١١۵ | ساختمان های گسسته | 3 | - | - |
۴٠٢۴۴ | برنامه سازی پیشرفته | 3 | مبانی برنامه سازی | - |
۴٠٢١٢ | مدارهای منطقی | 3 | - | - |
۴٠٢٠۶ | آز مدارهای منطقی | 1 | مدارهای منطقی | - |
۴٠٢۵۴ | ساختمان داده ها و الگوریتمها | 3 | ساختمانهای گسسته | برنامه سازی پیشرفته |
۴٠١٢۴ | مبانی مدارهای الکتریکی و الکترونیکی | 3 | فیزیک ٢ | - |
۴٠١٢۶ | ساختار و زبان كامپيوتر | 3 | مبانی برنامه سازی، مدارهای منطقی | - |
۴٠٢١١ | زبان تخصصی کامپیوتر | 2 | زبان خارجی | - |
۴٠٢٢٣ | طراحی سیستمهای دیجیتال | 3 | ساختار و زبان کامپیوتر | - |
۴٠٢٠٣ | آز طراحی سیستمهای دیجیتال | 1 | آز مدارهای منطقی | طراحی سیستم های دیجیتال |
۴٠٣٢٣ | معماری کامپیوتر | 3 | ساختار و زبان کامپیوتر | - |
۴٠١٠٣ | آز معماری کامپیوتر | 1 | معماری کامپیوتر، آز مدارهای منطقی | - |
۴٠۴١۴ | طراحی کامپایلرها | 3 | ساختمان داده ها و الگوریتم ها | - |
۴٠۴١٧ | هوش مصنوعی | 3 | ساختمان دادهها و الگوریتمها، آمار و احتمال مهندسی | - |
۴٠٢٨٢ | جبر خطی | 3 | ریاضی عمومی ٢ | - |
۴٠٢٢١ | ارائه مطالب علمی و فنی | 2 | زبان تخصصی کامپیوتر | - |
۴٠٣٨۴ | طراحی پایگاه دادهها | 3 | ساختمان دادهها و الگوریتمها | - |
۴٠۴٢۴ | سیستمهای عامل | 3 | معماری کامپیوتر | - |
۴٠۴٠٨ | آز سیستمهای عامل | 1 | سیستمهای عامل | - |
۴٠۴١٨ | تحلیل و طراحی سیستمها | 3 | ارائه مطالب علمی و فنی، طراحی پایگاه دادهها | - |
۴٠۴۴٣ | شبکههای کامپیوتری | 3 | آمار و احتمال مهندسی | سیستم های عامل |
۴٠۴١۶ | آز شبکه های کامپیوتری | 1 | - | شبکه های کامپیوتری |
۴٠۴۴٢ | امنیت داده و شبکه | 3 | شبکه های كامپيوتری | - |
کارگاه کامپیوتر (شماره درس: ۴٠١٠٨)
Computer Workshop
اهداف درس
هدف این درس ارائهی دانش و مهارتهای لازم برای کاربری عمومی کامپیوتر برای دانشجویان رشتهی مهندسی کامپیوتر است که در ابتدای ورود به دوره باید گذرانده شود. دانشجو در این درس مهارتهای عمومی در کار با کامپیوتر شامل شناخت سخت افزار، سیستمعامل و نرم افزارهای متداول، برنامه نویسی تحت وب، اصول کلی شبکه و اینترنت و نحوهی استفاده از آنها را می آموزد. شیوهی ارائهی این درس به صورت کارگاهی و علمی است و در هر جلسه مفاهیم به صورت عملی توسط مدرس به دانشجویان تدریس میشود و دانشجویان نیز با تمرین عملی به یادگیری مطالب ارایه شده میپردازند. جهت انجام کارهای عملی، لازم است پیش از هر جلسه، ملزومات نرم افزاری مطالب مورد تدریس، توسط مسئول کارگاه و یا خود دانشجویان نصب و آماده سازی گردد.
ریز مواد
هریک از ده مورد فهرست زیر در یک جلسهی سه ساعته ارائه میشود.
- آشنایی با سخت افزار کامپیوتر
ساختار کل و عملکرد اجزاء سخت افزار شامل صفحه کلید، موشواره، نمایشگر، کیس، برد اصلی، حافظهها، پردازنده،سیستم خنک کننده، منبع تغذیه، نحوهی ارتباطات اجزاء
- اصول و مفاهیم کامپیوتر و سیستم عامل
فهم کلی جایگاه سیستم عامل در کامپیوتر و آشنایی عمومی با سیستم عامل ویندوز، عملکردهای اولیه مانند کپی، جستجو در فایلها، کلیدها و میانبرهای متداول، منوی استارت و امکانات موجود در آن، فرمانهای مهم و سوییچها در،BAT ،Active Directory ،Domain،Windows Registry خط فرمان، متغیرهای محیطی، نوشتن فایلهای نرم افزارهای پرکاربرد مانند آنتی ویروس،Download Manager محیطهای برنامه نویسی، ابزارهای گرافیکی
- آشنایی مقدماتی با حروف چینی کامپیوتری
کار با نرم افزار مایکروسافت ورد، ساخت یک سند جدید، قالبدهی به کلمه، پاراگراف، صفحه، آشنایی با استایل، افزودن جدول/تصویر/فرمول به متن، ویژگیهای خاص برای نگارش فارسی
- آشنایی مقدماتی با پاورپوینت و اکسل
کاربرد پاورپوینت و اکسل، ایجاد و ویرایش فایلها، مفهوم Slide Master در پاورپوینت، پویانماییها درپاورپوینت، قالبدهی سلولهای صفحه در پاورپوینت، استفاده از فرمولها و توابع در اکسل، انواع نمودارها
- آشنایی با سرویس های کاربردی
سرویسهای ابری گوگل شامل پست الکترونیکی جیمیل، گوگل درایو و گوگل داکس، سرویسهای مدیریت گروهیمانند Trello و Doodle سرویسهای سوال و جواب و تبادل دانش مانند Stack Exchange و Stack Overflow
- آشنایی با شبکه های کامپیوتری
ساختار کلی شبکه و اینترنت، موتورهای جستجو، مفاهیم اولیه مانند URL و IP، آشنایی با پروتکلهای متداول مانند HTTP ،FTP و IMAP آشنایی با دستورهای پرکاربرد در شبکه مانند ping ،ipconfig و traceroute
- آشنایی با سیستم عامل لینوکس
مفهوم shell جستجو در فایلها، مجوزها، Help ،فشرده سازی، دستورهای مهم مانند ،chmod ،su ،grep، cp، Is، sp ،password وkiil
- مقدمات برنامه نویسی وب
اصول کلیی HTML، برنامهنویسی مقدماتی HTML، آشنایی با JavaScript و ،CSS ویرایشگرهای HTMLFrontPage مانند
- مقدمات برنامه نویسی PHP
اصول کلی برنامه نویسی ،PHP مفهوم برنامه نویسی سمت سرور، متغیرها در ،PHP کار کردن با انواع دادهها در،PHP آشنایی با ساختارهای شرطی و حلقه در PHP
- آشنایی مقدماتی با LaTeX
دستورهای اولیه، استایل و پکیج، حروف چینی، فرمول نویسی، درج تصویر، ایجاد جدول
ارزیابی
- تمرین های عملی هفتگی: ٪۴۵ نمره
- آزمون عملی (تایپ): ٪١٠ نمره
- آزمون پایانی: ٪۴۵ نمره
- فعالیت اضافی: تا ٪۵ نمره تشویقی
مراجع
[1] C. Newman, SAMS Teach Yourself PHP in 10 Minutes. Sams Publishing, 2005.
[2] D. Hayes, Sams Teach Yourself HTML in 10 Minutes. 4th edition, Sams publishing, 2006.
[3] R. Weakley, Sams Teach Yourself CSS in 10 Minutes. Sams Publishing, 2005.
[4] B. Forta, Sams Teach Yourself Regular Expressions in 10 Minutes. Sams Publishing, 2004.
[5] R. Shimonski, SAMS Teach Yourself Unix in 10 Minutes. Sams Publishing, 2005.
[6] J. Andrews, A+ Guide to Managing & Maintaining Your PC. 7th edition, Course Technology, 2009.
[7] Cisco Networking Academy, IT Essentials PC Hardware and Software Course Booklet. Version 4.1, 2nd edition, Cisco Press, 2010
ساختمان های گسسته (شماره درس: ۴٠١١۵)
Discrete Structures
اهداف درس
هدف از اين درس، آشنایی دانشجویان با مفاهیم، ساختارها، و تکنیکهایی از ریاضیات گسسته است که بهطور گسترده در علوم و مهندسی کامپیوتر مورد استفاده قرار میگیرند. ایجاد مهارتهای زیربنایی از جمله فهم و ساخت اثباتهای دقیق ریاضی، تفکر خلاقانه در حل مسائل، آشنایی با نتایج اولیه در منطق، ترکیبیات، نظریهی اعداد، نظریهی گرافها و نظریهی محاسبات، و نیز فراهم آوردن پیش نیاز ریاضی موردنیاز برای بسیاری دیگر از دروس ارائه شده در گرایشهای مختلف مهندسی کامپیوتر، از اهداف این درس به شمار می رود. همچنین شما عزیزان برای بررسی بیشتر درس ساختمان داده میتوانید به صفحه بررسی کامل درس ریاضیات گسسته دانشگاهجامع ترین آموزش درس ریاضی گسستهدرس ریاضیات گسسته به معرفی مباحثی نظیر شمارش و احتمال، استدلال و برهان خلف، نظریه اعداد، منطق ریاضی، روابط بازگشتی، روابط و نظریه گراف میپردازد. از آن رو که در عصر کنونی ریاضی گسسته بطور گسترده در رشته کامپیوتر و برنامه نویسی استفاده میشود در این صفحه به معرفی و بررسی درس ریاضی گسسته پرداخته شده است مراجعه کنید.
ریز مواد
- منطق ( ٣ جلسه )
- اصول اولیهی منطق، گزارهها، گزارههای هم ارز
- گزاره نماها، سورها، اصول استنتاج
- روشهای اثبات
- نظریه ی توابع و مجموعه ها ( ٢ جلسه )
- مبانی نظریهی مجموعهها، عملگرهای مجموعهای، مجموعههای شمارا و ناشمارا
- توابع یک به یک و پوشا، ترکیب توابع، معکوس توابع، دنبالهها
- نظریه ی اعداد ( ٢ جلسه )
- بخشپذیری، همنهشتی، محاسبات پیمانهای
- اعداد اول، قضیهی اویلر، مقدمهای بر نظریهی رمزنگاری
- استقرا ( ٢ جلسه )
- استقرای ریاضی، اصل خوش ترتیبی
- استقرای قوی، استقرای ساختاری
- شمارش ( ۴ جلسه )
- اصول اولیهی شمارش، جایگشت و ترکیب
- ضرایب دوجملهای، جایگشتها و ترکیبهای باتکرار
- اصل طرد و شمول، توزیع اشیا درون جعبهها
- اصل لانه کبوتری
- احتمالات گسسته ( ٢ جلسه )
- نظریهی احتمالات، تابع توزیع احتمال، احتمالات شرطی
- متغیرهای تصادفی، امید ریاضی، واریانس
- روابط بازگشتی ( ٣ جلسه )
- مسائل بازگشتی
- حل روابط بازگشتی (همگن و غیر همگن)
- توابع مولد
- رابطه ها ( ٢ جلسه )
- رابطهها و خواص آنها، نمایش رابطهها، ترکیب روابط
- رابطهها ی هم ارزی، بستارها
- ترتیب جزیی و جبر بول ( ٢ جلسه )
- مجموعههای با ترتیب جزیی، نمودار هاس، مرتب سازی توپولوژیکی
- مشبکهها، جبر بول، خواص جبر بولی
- گراف ها ( ٣ جلسه )
- تعاریف اولیه، گرافهای خاص، گرافهای دوبخشی، نمایش گرافها، یک ریختی گرافها
- مسیرها و همبندی، مسیرهای اویلری و همیلتنی
- گرافهای مسطح، قضیهی اویلر، رنگآمیزی گرافها
- درخت ها ( ١ جلسه )
- درخت ها و جنگل ها، درخت های خاص، درخت های ریشه دار، درخت های پوشا
- ساختارهای جبری ( ١ جلسه، اختیاری )
- تکوارهها، حلقهها، گروهها، گروه ها آبلی
- مدل سازی محاسبات ( ٣جلسه )
- زبانها و گرامرها، ماشینهای با حالات متناهی
- تشخیص زبانها، زبانهای منظم
- (اختیاری) ماشین تورینگ
ارزیابی
- تمرین نظری: ٪١۵ نمره
- آزمونها (میانترم، پایانترم و آزمونکها): ٪٨۵ نمره
مراجع
[1] K. H. Rosen. Discrete Mathematics and Its Applications. 8th edition, McGraw Hill, 2018.
[2] R. P. Grimaldi. Discrete and Combinatorial Mathematics: An Applied Introduction. 5th edition, Pearson Addison Wesley, 2004.
[3] A. Engel. Problem-Solving Strategies. Springer, 1998.
برنامه سازی پیشرفته (شماره درس: ۴٠٢۴۴)
Advanced Programming
اهداف درس
در اين درس، مفاهيم برنامهنويسی شی ءگرا در قالب زبان برنامه نويسی جاوا تدريس میشود. همچنين ويژگیهای ذاتی زبان جاوا، امکانات برنامه سازی در جاوا، تفاوت رویکرد جاوا با زبانهای مشابه در موارد مختلف، برنامهسازی همروند و کيفيت نرم افزار مورد توجه قرار میگيرد. فرض بر اين است که دانشجويان در دروس قبلی، با يک زبان برنامه سازی آشنا هستند و برخی روشهای حل مسئله با کمک برنامه سازی مانند جستجو، مرتبسازی، عمليات رياضی و نظایر آن را می شناسند. تأکيد در اين درس بر مفاهيم شیءگرا است.
ریز مواد
- آشنايی با زبان جاوا ( ١ جلسه )
- تاريخچه
- ويژگیهای زبان جاوا
- اولين برنامه در جاوا
- مفاهيم اوليه برنامه سازی در جاوا ( ٣ جلسه )
- متغير، متد، شرط، حلقه
- دادههای اوليه (Primitive Data Types)
- رشته
- آرايه
- مقدمهای بر طراحی و برنامهسازی شیءگرا ( ٢ جلسه )
- تاريخچه تکامل رويکردها تا رويکرد شیءگرايی
- مفاهيم اوليه شیءگرايی
- طرز تفکر و طراحی شیءگرا
- لفاف بندی، واسط، رده، بسته، دسترسی
- برنامه سازی شیءگرا در جاوا ( ۶ جلسه )
- نحوه تعريف کلاسها
- اشياء در حافظه و مديريت حافظه
- بارگذاری اوليه و مرگ اشياء در حافظه
- زباله روب (Garbage Collector)
- روشهای ارسال پارامتر در زبانهای مختلف و جاوا
- سازنده
- this
- اعضای ايستا
- بسته (package)
- آشنايی اوليه با نمودار UML Class Diagra
- وراثت ( ٢ جلسه )
- مفهوم وراثت
- super ،abstract ،Protected
- وراثت چندگانه در ساير زبانها
- چندريختی ( ١ جلسه )
- چندريختی با کمک وراثت
- مفهوم virtual در زبان ++C
- اعضای final
- واسط (interface) (١ جلسه )
- کاربرد واسط
- وراثت چندگانه با کمک واسط
- آزمون نرم افزار ( ١جلسه )
- مفهوم تضمین کیفیت نرم افزار، اهمیت، جایگاه و مصادیق آن
- آزمون واحد
- نوشتن آزمون واحد با استفاده از JUnit
- چگونگی تست پرتاب استثناء با استفاده از JUnit
- مفهوم بدل سازی (Mocking) و مقدمهای بر یک کتابخانه بدل سازی در جاوا
- الگوهای طراحی ( ١ جلسه )
- تعریف الگوها در مهندسی نرم افزار، جایگاه و اهمیت آنها
- الگوهای طراحی GoF و دسته بندی آنها
- شرح الگوهای طراحی Fecade ،Observer ،Strategy ،Sate ،Singleton
- شرح الگوی معماری MVC
- بازآرایی کد(Refactoring) (٢جلسه )
- چیستی بازآرایی و اهمیت نوشتن کد تمیز
- نشانههای کد بد
- الگوهای بازآرایی
- ساختن متدها
- انتقال ویژگی ها بین اشیاء
- سازماندهی دادهها
- ساده سازی عبارات شرطی
- ساده سازی فراخوانی متدها
- مديريت خطا و استثنا ( ٢ جلسه )
- مدل سنتی مديريت خطا
- چهارچوب مديريت خطا در جاوا
- مزايای اين مدل
- Runtime Exception ،Finally
- دادههای عام (Generics) (جلسه ١ )
- متدها و کلاسهای عام
- کاربردها
- توليد و استفاده از کلاسهای عام
- کلاسهای عام و وراثت
- ماهيت کلاسهای عام و تفاوت آنها با Template در زبان ++C
- مجموعهها و ظرفها (Containers) (جلسه2)
- ساختمان دادههای موجود در جاوا
- Map ،Set ،LinkedList ،ArrayList ،Colections
- Iterator
- فايل، جويبار و شبکه ( ٢ جلسه )
- ورودی و خروجی در فايل
- Serialization
- برنامه سازی تحت شبکه (socket)
- برنامه سازی همروند ( ١ جلسه )
- نياز به همروندی
- همروندی در جاوا
- طول عمر يک thread
- آشنايی اوليه با مفاهيم Synchronization وciritical section
- Reflection (١جلسه )
- نياز به RTTI
- RTTI در جاوا
- کاربردها
- مفاهيم پيشرفته و تکميلی ( ١جلسه)
- کلاسهای داخلی و کلاسهای بی نام
- حاشيه گذاری (Annotation)
- Enumeration
ارزیابی
- آزمونها (میانترم، پایانترم، و آزمونکها): ٪۵٠ نمره
- تمرینهای برنامه سازی: ٪٢۵ نمره
- پروژه (سه فاز در طول ترم): ٪٢۵ نمره
مراجع
[1] P. Deitel, H. Deitel. Java: How to Program. 11th edition, Pearson Education, 2017.
[2] B. Eckel. Thinking in Java. 4th edition, Prentice Hall, 2006.
[3] M. Fowler, K. Beck, J. Brant, W. Opdyke, D. Roberts. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
مدارهای منطقی (شماره درس: ۴٠٢١٢)
Logic Design
اهداف درس
هدف از اين درس، آشنایی دانش جویان با گیتهای منطقی به عنوان مدارهای تحقق دهنده عملگرهای منطقی و مدارهای مجتمع سادهای است که با تعداد محدودی گیت ساخته میشوند. در این درس دانشجویان با روشهای تحلیل و طراحی مدارهای ترکیبی و مدارهای ترتیبی سنکرون آشنا میشوند، همچنین ساختار، نحوهی عملکرد و نحوهی به کارگیری برخی مدارهای مجتمع ساده را که تشکیل دهندهی مدارهای مجتمع مفصل تر هستند، فرا میگیرند تا آمادگی اولیهی لازم برای آشنایی با اجزای سخت افزاری نظی پردازنده را کسب کنند. همچنین شما عزیزان برای مطالعه بیشتر در مورد درس مدار منطقی میتوانید به صفحه بررسی و معرفی مدار منطقیآموزش مدار منطقی به زبان ساده - بررسی مدار منطقی و انواع آنامروزه درک صحیحی از مدارهای منطقی برای هر مهندس برق و کامپیوتر ضروری است. این مدارها عنصر اصلی کامپیوترها و بسیاری از وسایل الکترونیکی اطراف ما هستند، در این صفحه به بررسی و آموزش مدار منطقی پرداخته شده است مراجعه کنید.
ریز مواد
- نمایش اعداد در مبنای ٢( ٢ جلسه )
- تغییر مبنای اعداد
- نمایش اعداد منفی با اندازهی علامت، مکمل ٢و مکمل ١
- جمع و تفریق اعداد
- رقم نقلی
- نمایش BCD اعداد
- مدارهای ترکیبی ( ٣ جلسه )
- جبر بول و جبر کلیدی
- گیتهای منطقی
- جملات minterm وMaxterm
- نمایش SOP و POS
- تاخیر و مسیر بحرانی
- ساده سازی توابع منطقی ( ۴ جلسه )
- روش جبری
- جدول کارنو
- مفهوم don’t care و ورودی ممنوعه
- پیاده سازی مدارهای دو طبقه
- مفهوم Hazard ،Race وGlitch
- برطرف نمودن Hazard
- قطعات ترکیبی ( ۵ جلسه )
- دیکدر و مالتی پلکسر
- پیادهسازی توابع با دیکدر و مالتی پلکسر
- انکدر و انکدر اولویت دار
- دی مالتی پلکسر
- نیم جمع کننده و تمام جمع کننده
- جمعکنندههای انتشاری و جمعکننده با پیش بینی رقم نقلی
- مقایسه کننده
- حافظهی فقط خواندنی (ROM)
- منطق چندمقداره ( ٢ جلسه )
- منطق سه مقداره و منطق چهار مقداره
- گیتهای سه حالته Tri-state
- گیتهای با کلکتور باز
- منطق سیمی
- Pull-up وPull-down
- مدارهای ترتیبی ( ۴ جلسه )
- مفهوم مدار ترتیبی
- انواع Latch و ورودی ممنوعه در Latch
- فلیپ‐فلاپ حساس به سطح، فلیپ‐فلاپ حساس به لبه و فلیپ‐فلاپ نوع Master-Slave
- ورودی Reset سنکرون و آسنکرون
- Setup-time وHold-time
- ماشین با حالات محدود ( ۴ جلسه )
- مفهوم ریاضی ماشین با حالات محدود (FSM)
- نمودار حالت
- جدول حالت
- جدول تحریک
- مراحل پیاده سازی FSM
- مدلهای Mealy و Moore و تفاوت آنها
- قطعات ترتیبی ( ۴ جلسه )
- ثباتها و شیفتدهندهها
- ثباتهای Universal
- شمارندههای سنکرون
- شمارندهی جانسون
- شمارندههای آسنکرون (شمارندههای انتشاری)
- PLDها ( ٢ جلسه )
- معرفی PLD
- PAL و PLA، مقایسه آنها با ROM
- PAL با منطق سه حالته
ارزیابی
- تمرینهای نظری: ۴ نمره
- آزمونهای میانترم و پایانی: ١٢ نمره
- آزمونکها: ۴ نمره
مراجع
[1] M. Morris Mano. Digital Design. 5th edition, Prentice Hall, 2006.
[2] Victor P. Nelson, H. Troy Nagle, Bill D. Carroll, David Irwin. Digital Logic Circuit Analysis and Design. Prentice Hall, 1995.
[3] Franklin P. Prosser and David E. Winkel. The Art of Digital Design: An Introduction to Top-Down Design. Prentice Hall, 1987.
[۴]علیرضا اجلالی، ”مدارهای منطقی “ چاپ اول، انتشارات نصیر، 1.
آز مدارهای منطقی (شماره درس: ۴٠٢٠۶)
Logic Design Lab
اهداف درس
اهداف درس هدف از این درس، آشنایی با نحوهی پیاده سازی مدارات منطقی از جمله شیفت رجیسترها، جمعکنندهها، تفریق کنندهها، شمارندهها، ثباتها و گذرگاههای داده می باشد. آزمایشگاه مدار منطقی محل تجربهی عملی تئوریهایی است که در درس مدار منطقی فراگرفته شده است.
ریز مواد
- آشنایی با تجهیزات آزمایشگاه و نحوه استفاده از راهنماها
- آشنایی با مفهوم مشخصهی انتقالی و fan-out در تراشههای TTL
- آشنایی با مدارهای ترتیبی
- زمان سنج
- ثباتهای انتقال
- شمارندهها
- طراحی و پیاده سازی ماشین حالت متناهی
- پیاده سازی زمان سنج برای لباسشویی
- پیاده سازی تلفن از راه دور
- آشنایی با اجزای یک رایانه ساده
- آشنایی با واحد محاسبه و منطق، ثباتها و گذرگاه
- پیادهسازی پشته سخت افزاری
- طراحی یک رایانه دودویی ساده
مراجع
[1] D. Patterson and J. L. Hennessy. Computer Organization & Design, The Hardware / Software Interface. 4th edition, Morgan Kaufmann Publishing, 2011.
[2] M. Mano. Computer System Architecture. 3rd edition, Prentice Hall, 1992.
ساختمان داده ها و الگوریتمها (شماره درس: ۴٠٢۵۴)
Data Structures and Algorithms
اهداف درس
در این درس دانشجو با روشهای تحلیل الگوریتمها، داده ساختارهای ساده و کمی پیشرفته اما مهم و نیز با برخی از الگوریتمهای مقدماتی آشنا میشود. در ارائه ی مطالب این درس بر تحلیل و اثبات درستی الگوریتمها تاکید میشود. دانشجو باید از قبل با یکی از زبانهای برنامه نویسی ++ C یا Java و نیز روشهای بازگشتی در حل مسئلهها آشنا باشد. الگوریتمهای درس مستقل از زبان و مطابق دستورهای کتاب مرجع گفته میشود. شما عزیزان برای بررسی و آشنایی با درس ساختمان داده میتوانید به صفحه بررسی کامل ساختمان دادهآموزش ساختمان داده و الگوریتمهر ساختمان داده یک نوع فرمت ذخیرهسازی و مدیریت دادهها در کامپیوتر است، که امکان دسترسی و اصلاح کارآمد آن دادهها را برای یکسری از الگوریتمها و کاربردها فراهم میکند، در این صفحه به بررسی و آموزش ساختمان داده و الگوریتم پرداخته شده است مراجعه کنید.
ریز مواد
- مقدمات ( ١ جلسه )
- سطوح انتزاعی
- مراحل مختلف حل مسئله و انتزاع
- داده مدلها، داده گونهها، داده ساختارها، داده گونهی انتزاعی، شی
- تحلیل الگوریتم ( ٣ جلسه )
- تحلیل زمانی الگوریتم: مرتب سازی درجی
- رشد توابع
- روشهای تحلیل سرشکن
- تقسیم و حل ( ٢ جلسه )
- مرتب سازی ادغامی، محاسبهی تعداد نابجایی، زیردنبالهی متوالی، ضرب اعداد
- قضیه اصلی
- تحلیل الگوریتمهای تصادفی ( ١ جلسه )
- محاسبهی میانهی تقریبی، مسئلهی استخدام
- داده ساختارهای پایه ( ١ جلسه )
- صف و پشته
- لیست پیوندی
- داده ساختارهای درخت ( ۵ جلسه )
- پیاده سازیهای مختلف درختها، پیمایش درختها، استقراء ساختاری
- درخت عبارت، تبدیل نگارشهای مختلف یک عبارت ریاضی
- داده ساختار ترای
- درخت دودویی جستجو
- صف اولویت (هرم کمینه و بیشینه)
- مرتب سازی ( ۴ جلسه )
- درخت تصمیم و کران پایین
- مرتب سازی هرمی
- مرتب سازی سریع (تحلیل تصادف)
- مرتب سازی با تعداد مقایسه های بهینه
- مرتب سازی خطی: شمارشی، مبنایی، سطلی
- مرتب سازی خارجی (اختیاری)
- مرتبهی آماری ( ٢ جلسه )
- محاسبهی کمینه و بیشینه
- انتخاب k ‐ امین عنصر (الگوریتم تصادفی و قطع)
- درهم سازی ( ٢ جلسه )
- درهم سازی زنجیرهای
- درهم سازی سراسری
- درهم سازی باز
- درهم سازی کامل
- دادهساختارهای پیشرفته ( ٣ جلسه )
- مجموعههای مجزا
- درختهای دودویی متوازن: درخت قرمز‐ سیاه
- درخت بازه
- گرافها ( ٣ جلسه )
- روشهای مختلف پیاده سازی گراف
- جستوجوهای عمق اول و سطح اول و کاربردهای آنها
- ترتیب توپولوژیکی ،مؤلفههای قویاً همبند
- کوتاهترین مسیر در گرافها: الگوریتمهای دایکسترا و بلمن‐فورد
ارزیابی
- پنج بسته تمرین داده خواهد شد (هر بسته شامل تعدادی مسئله نظری و چند مسئله برنامه نویسی است)؛ نیازی به تحویل مسئلههای نظری نیست.
- پنج آزمون کوتاه از مسئلههای نظری بالا + یک مسئله مشابه ( ٣ نمره)
- پنج تمرین عملی بالا ( ٣ نمره)
- آزمون میانترم ( ۶ نمره)
- آزمون نهایی ( ٨ نمره)
مراجع
[١]محمد قدسی، ”داده ساختارهای و مبانی الگوریتمها،“ چاپ چهارم، انتشارات فاطمی، .١٣٩٣
[٢]محمد قدسی و آیدین نصیری شرق، ” ۶٠٠مسئله ی چندگزینهای از داده ساختارها و الگوریتمها،“ چاپ ششم، انتشارات فاطمی، .١٣٩٧
[3] T. Cormen, C. Leiserson, R. Riverst, and C. Stein. Introduction to Algorithms. 3rd edition, MIT Press, 2011.
مبانی مدارهای الکتریکی و الکترونیکی (شماره درس: ۴٠١٢۴)
Fundamentals of Electrical and Electronic Circuits
اهداف درس
اهداف درس هدف از این درس، آشنایی دانشجویان با عناصر الکتریکی و روشهای تحلیل مدارهای الکتریکی هم در حوزهی زمان و هم در حوزهی لاپلاس و همچنین آشنایی با مدارهای الکترونیکی تشکیل دهندهی گیتهای منطقی در چند فناوری پرکاربرد است.
ریز مواد
- مقدمهای بر مدارهای الکتریکی، المانهای اصلی و روابط آنها
- وانین ولتاژ و جریان کرشهف
- اتصال سری و موازی عناصر مقاومتی
- روشهای تحلیل مدار: تحلیل گره و تحلیل مش
- خطی بودن و اصل برهم نهی
- مدارهای معادل تونن و نورتن
- تقویت کنندههای عملیاتی و مثالهای کاربردی آن
- تحلیل مدارها در حوزهی زمان
- معرفی شکل موجها (پله، پالس، ضربه، سینوس)
- معرفی عناصر ذخیره کننده انرژی و عناصر فعال
- مدارهای الکتریکی مرتبه اول
- مدارهای الکتریکی مرتبه دوم
- تحلیل مدارها در حوزهی فرکانس
- تبدیل لاپلاس
- امپدانس و ادمیتانس
- تحلیل مدار با استفاده از تبدیل لاپلاس
- دیود و ترانزیستور
- منحنی مشخصه و مدل دیود و کاربردهای آن
- وارونساز منطقی
- منحنی مشخصه و مدل کلی ترانزیستور
- ترانزیستورهای اثر میدانی
- ساختار، عملکرد و منحنی مشخصهی ترانزیستور ماسفت افزایشی
- انواع مدارهای وارونساز با استفاده از ترانزیستور
- ترازیستور گذر و دروازهی انتقال
- منطق CMOS ایستا
- مدارهای کاربردی
- Latch و FF در منطق CMOS ایستا
- شیفت رجیستر
- انواع حافظههای RAM و ROM
- مبدلهای آنالوگ به دیجیتال
- مبدلهای دیجیتال به آنالوگ
ارزیابی
- تمرینهای نظری: ٣ نمره
- آزمونهای میانترم و پایانی: ١۴ نمره
- آزمونکها: ٣ نمره
مراجع
[1] William H. Hayt & Jack E. Kemmerly. Engineering Circuit Analysi. 7th edition, Engineering Circuit Analysis McGraw-Hill Book, 2007.
[٢]ارنست کوه و چارلز دسور، ”نظریه اساسی مدارها و شبکهها،“ ترجمه دکتر جبه دار مارلانی، موسسه انتشارات دانشگاه تهران، ١٣٩۵.
[٣]عادل صدرا و کنت اسمیت، ”مدارهای میکروالکترون ک ،“ترجمه مجید ملکان و هاله واحدی، ویرایش چهارم، نشر علوم دانشگاهی، ١٣٨١.
[۴]محمود تابنده، ”تکنیک پالس و مدارهای دیجیتال،“ نشر مؤسسه انتشارات علمی دانشگاه صنعتی شریف، .١٣٧۶
ساختار و زبان كامپيوتر (شماره درس: ۴٠١٢۶)
Computer Structure and Machine Language
اهداف درس
هدف اصلی این درس آشنایی با اجزای مختلف کامپیوتر و نحوه تعامل آنها در اجرای دستورالعملهای یک برنامه است. برنامه سازی به زبان ماشین و اسمبلی و تبدیل این دو به همدیگر، به دانشجو در فهم عمیق تر معماری مجموعهی دستورها و توان به کارگیری کارای ماشین را میدهد. دانشجویان این درس بایستی در پایان، آمادهی آموزش نحوهی طراحی و پیاده سازی این اجزا در درس معماری کامپیوتر باشند.
ریز مواد
- تاریخچه کامپیوتر
- مقدمهای بر نسلهای کامپیوتر و انواع آن
- مدل فون نیومن (Von Neumann)
- نمایش داده
- اعداد: صحیح/ اعشاری، بیعلامت/ باعلامت، ممیز ثابت/ ممیز شناور، دودویی/ دهدهی،...
- نویسهها :(Characters) کدهای پایه ٧ و ٨ بیتی، کدهای جامع ١۶و ٣٢ بیتی
- ساختار کامپیوتر
- واحد پردازش مرکز، (CPU) واحد محاسبات و منطق، (ALU) ثباتها، (Registers) واحد کنترل،(CU)حافظه اصلی
- گذرگاه (Bus) مشترک، سیکل واکنشی‐ اجرا (Fetch-Execute)
- مدهای آدرس دهی: آنی (چسبیده به عملوند)، مستقیم (مطلق)، غیرمستقیم، نسبی، ضمنی، اندیسی، قطعهای، صفحهای
- برنامه نویسی به زبان اسمبلی و ترجمهی آن به زبان ماشین در چند کامپیوتر ساده
- اسمبلر(Assembler) و اشکال زدا، (Debugger) کامپایلر، (Compiler) ربط دهنده(Linker) و بارکننده (Loader).
- آشنایی با مجموعه دستورالعمل (Instruction Set) حداقل يک كامپيوترCISC (پردازندههای Intel8086 ،IBM360/370 یا MC68000 توصیه میشوند)
- معرفی ساختار کامپیوتر مورد نظر و شیوههای نشانیدهی آن
- معرفی دستورالعملها و برنامه سازی به زبان اسمبلی کامپیوتر مورد نظر
- معرفی ساختارهای مرسوم برنامه سازی ساختمند (زیربرنامه، ماکرو، ...)
- وقفه و مدیریت آن
- آشنایی با مجموعه دستورالعمل (Instruction Set) حداقل يک كامپيوترRISC ( پردازنده MIPS توصیه میشود)
- معرفی ساختار کامپیوتر مورد نظر و شیوههای نشانیدهی آن
- معرفی دستورالعملها و برنامه سازی به زبان اسمبلی کامپیوتر مورد نظر
- معرفی ساختارهای مرسوم برنامه سازی ساختمند (زیربرنامه، ماکرو، ...)
- وقفه و مدیریت آن
ارزیابی
- تمرینهای نظری: ٣ نمره
- آزمونهای میانترم و پایانی: ١۵ نمره
- آزمونکها: ٢ نمره
مراجع
[1] J. L. Antonakos.The 68000 Microprocessor: Hardware and Software Principles and Applications. Prentice Hall, 2004.
[2] M. A. Mazidi, et al. The x86 PC: Assembly Language, Design, and Interfacin. Prentice Hall, 2010.
[3] G. Struble. Assembler Language Programming: The IBM System/360. Addison-Wesley, 1971.
[4] D. A. Patterson and J. L. Hennessey. Computer Organization and Design MIPS edition: The Hardware/Software Interface. 5th edition, Elsevier (Morgan Kaufmann), 2013.
زبان تخصصی کامپیوتر (شماره درس: ۴٠٢١١)
English for Computing
اهداف درس
اهداف درس در این درس ضمن آشنا نمودن دانشجویان با مفاهیم و کلمات کلیدی عمومی مورد استفاده در حوزهی علوم و مهندسی کامپیوتر، روشها و مهارتهای مورد نیاز برای مطالعه و نگارش متون علمی و تخصصی در این حوزه آموزش داده میشوند. تأکید اصلی بر تقویت مهارت دانشجویان در خواندن و درک متون تخصصی حوزهی کامپیوتر است، اما روی بهبود مهارتهای نگارش و درک سمعی دانشجویان نیز کار خواهد شد. ریز موارد درس به سه بخش مباحث اصلی، مباحث اختیاری و مباحث کمکی تقسیم شده است. در هر جلسهی سه ساعته (شامل دو ساعت درس و یک ساعت تمرین)، دو یا سه مبحث از مباحث اصلی تدریس میشوند. مباحث اختیاری در صورت وجود زمان تدریس خواهند شد، ولی روال معمول این است که این مباحث به عنوان تمرین داده شوند. مباحث کمکی شامل مطالعه مطالب جدید حوزه کامپیوتر و فعالیتهای جانبی کلاسی (از قبیل برگزاری ارائههای دانشجویی و استفاده از محتوای چند رسانهای) است.
ریز مواد
- مباحث اصل (در هر جلسه سه ساعته، دو یا سه مبحث تدریس خواهند شد)
- Living with computers (Chapter 1)
- A typical PC (Chapter 2)
- Learning vocabulary (Chapter 0)
- Input devices: the eye of your PC (Chapter 5)
- Output devices: display screens (Chapter 7)
- Processing (Chapter 8)
- Disks and drives (Chapter 9)
- International Phonetic Alphabet (IPA)
- Health and safety (Chapter 10)
- Operating systems and the GUI (Chapter 11)
- Prefixes (Chapter 33)
- Suffixes (Chapter 34)
- Word processing (Chapter 12)
- Spreadsheets and databases (Chapter 13)
- Graphics and design (Chapter 14)
- Multimedia (Chapter 15)
- Collocations (Chapter 36)
- Programming (Chapter 17)
- Computers and work (Chapter 18)
- Networks (Chapter 20)
- Faces of the Internet (Chapter 21)
- The World Wide Web (Chapter 23)
- Web design (Chapter 24)
- Irregular plurals
- Internet security (Chapter 26)
- E-commerce (Chapter 27)
- Online banking (Chapter 28)
- Qualifying and comparing (Chapter 38)
- Mobile phones (Chapter 29)
- Robots, androids, AI (Chapter 30)
- Intelligent homes (Chapter 31)
- Future trends (Chapter 32)
- Troubleshooting (Chapter 40)
- مباحث اختیاری (معمولا به عنوان تمرین داده می شوند)
- Types of computer systems (Chapter 3)
- Input devices: type, click and talk! (Chapter 4)
- Output devices: printers (Chapter 6)
- Sound and music (Chapter 16)
- ICT systems (Chapter 19)
- Email (Chapter 22)
- Chatting and video conferencing (Chapter 25)
- Compounds (Chapter 35)
- Defining and classifying (Chapter 37)
- Describing technical processes (Chapter 39)
- Importance of pronunciation
- Schwa
- Stressed syllables
- مباحث کمکی
- مطالعهی مطالب جدید حوزهی علوم و مهندسی کامپیوتر (مراجع کمکی)
- فعالیتهای جانبی کلاسی شامل برگزاری ارائههای دانشجویی، استفاده از محتوای چند رسانهای، و برگزاری جلسات بحث پیرامون موضوعات علمی خاص در حوزه علوم و مهندسی کامپیوتر
ارزیابی
- آزمون (آزمونهای میانترم، پایانترم و آزمونهای کلاسی): %۶٠ نمره
- فعالیت در کلاس: %٢٠ نمره
- تمرینها (در طول نیم سال انجام و تحویل داده میشوند): %٢٠ نمره
مراجع
[1] S. R. Esteras and E. M. Fabré. Professional English in Use-ICT. Cambridge University Press, 2007.(Main Textbook)
[2] E. Glendinning and J. McEwan. Oxford English for IT. Oxford University Press, 2006.
[٣]مقالات علمی ‐ پژوهشی از مجلات معتبر (مانند Communications of the ACM)
[۴]قالات سایتهای معتبر حوزهی علوم و مهندسی کامپیوتر (مانند zdnet.com)
[۵] منابع کمکی تقویت پایهی زبان انگلیسی (مانند Elements of Style وEnglish Grammar in Use )
طراحی سیستمهای دیجیتال (شماره درس: ۴٠٢٢٣)
Digital Systems Design
اهداف درس
اهداف درس هدف از این درس آشنایی با زبان توصیف سخت افزار وریلاگ، یادگیری نحوهی طراحی سخت افزار با زبانهای HDL در سطوح تجرید مختلف، آشنایی با ساختار داخلی مدارهای برنامه پذیر در محیط کار و نیز شناخت نحوهی پیاده سازی مدارهای سخت افزاری درCPLD و FPGA است.
ریز مواد
- FSM وASM
- نمودار FSM و کاربردهای آن
- نحوهی مدل سازی و سنتز مدار کنترلی با FSM
- نمودار ASM و طراحی سیستمهای دیجیتال با استفاده از آن
- مفهوم واحدهای کنترل و مسیرداده
- روش سنتز مسیر داده از روی نمودار ASM
- روشهای گوناگون سنتز واحد کنترل از روی نمودار ASM
- معرفی زبانهای توصیف سخت افزار
- مروری بر زبانهای توصیف سخت افزار
- ویژگیهای کلیدی و تفاوت کدهای همروند و کدهای ترتیبی
- مراحل طراحی سیستمهای دیجیتال
- مروری بر ویژگیهای زبان وریلاگ
- مقایسه زبان وریلاگ با سایر زبانهای توصیف سخت افزار
- دلایل اهمیت استفاده از زبانهای توصیف سخت افزار
- مقدمات زبان وریلاگ
- مروری کلی بر نحوه نوشتن یک توصیف با وریلاگ
- معرفی روشهای طراحی بالا به پایین و پایین به بالا
- روشهای مدل سازی ساختاری و رفتاری
- آشنایی اولیه با برخی مفاهیم موجود در وریلاگ همچون always ،initial ،module، @
- طراحی مدولار و امکانات زبان وریلاگ برای این کار
- مفهوم Test bench و چگونگی نوشتن Test bench صحیح
- داده گونهها و مفاهیم پایه در وریلاگ
- wire و register و تفاوتها و کاربردهای آنها
- منطق 4 مقداره و مفهوم قدرت سیگنال
- مفهوم آرایه و بردار و تفاوتها و کاربردهای آنها
- داده گونههای Integer ،Real و Time، رشتهها
- parameter و طراحی پارامتری در وریلاگ
- در وریلاگ Macro ها وDirective ها ، System Task
- نام گذاری سلسله مراتبی و کاربردهای آن
- مدل سازی ساختاری در وریلاگ
- Port ها در module و انواع آنها
- روشهای نگاشت port ها
- قواعد حاکم بر استفاده از سیمها و متغیرها در اتصال به port ها
- طراحی gate-level در وریلاگ
- مدل سازی تأخیر در توصیف ساختاری
- مدل سازی جریان داده در وریلاگ
- مدل سازی جریان داده در وریلاگ
- مدل تأخیر در توصیف جریان داده
- تفاوت تأخیرهای نوع Inertial و Transport
- عملگرها در زبان وریلاگ
- چگونگی توصیف مدارهای ترتیبی حساس به سطح و حساس به لبه در مدل سازی جریان داده
- مدل سازی رفتاری در وریلاگ
- assignment در توصیف رفتاری blocking و non-blocking های نوع
- مفهوم Event control در توصیف رفتاری
- دستورهای مدل سازی رفتاری شامل تصمیم گیری و حلقه
- Function و Task
- انواع Event control شامل سه روش معمولی، حساس به سطح، و بانام
- انواع Timing control شامل سه روش معمولی، بین انتسابی، و صفر
- مدلسازی تأخیرهای Inertial و Transport در توصیف رفتاری
- مفهوم Race در بدنههای همروند
- مروری بر چگونگی انجام عمل شبیهسازی کدهای وریلاگ توسط شبیه ساز
- کدزدن قابل سنتز در وریلاگ
- قوانین عمومی قابل سنتز بودن کد (مانند نداشتن تأخیر در توصیف، عملگر تقسیم، ...)
- روش نوشتن کد رفتاری قابل سنتز
- روشهای پرهیز از Combinational Loop در توصیف رفتاری مدارهای ترکیبی
- حلقهها در توصیف رفتاری و اثر آنها بر عمل سنتز
- منطق سه مقداره و اثر آن بر عمل سنتز
- مروری بر عملکرد ابزارهای سنتز
- طراحی سیستم های دیجیتال با PLD
- ویژگیهای سیستمهای دیجیتال
- سطوح تجرید و روشهای مدل سازی
- کاربردهای مدارهای قابل پیکربندی
- مروری بر انواع PLD ها
- کاربردهای PLD ها در تحقیقات و صنعت
- CPLD ها و SPLD ها
- SPLDها و ساختار آنها (شامل PLA ،PAL و ROM)
- CPLDها و ساختار آنها
- تکنولوژیهای ساخت SPLDها و CPLD ها
- مروری بر برخی از CPLDها به عنوان Case Study
- FPGAها
- FPGAها و ساختار آنها
- انواع FPGA (مبتنی بر LUT و مبتنی بر MUX)
- تکنولوژیهای ساخت FPGAها (مبتنی بر Anti-fuse و مبتنی بر SRAM)
- روشهای ساختFPGA Programmable Connections ها
- مروری بر برخی از FPGAهای مبتنی بر LUT به عنوان Case Study
- مروری بر برخی از FPGAهای مبتنی بر MUX به عنوان Case Study
- مروری بر ظرفیتها و امکانات جدیدترین FPGAها
- مروری بر آخرین محصولات برنامه پذیر در محیط کار بخصوص FPSoCها
ارزیابی
- تمرینهای نظری: ٣ نمره
- آزمونهای میانترم و پایانی: ١۵ نمره
- آزمونکها: ٢ نمره
مراجع
[1] Samir Palnitkar. Verilog HDL: A Guide to Digital Design and Synthesis. 2nd edition, SunSoft Press,2003.
[2] S. Brown, J. Rose. FPGA and CPLD Architectures: A Tutorial. IEEE Design and Test of Computers,pp. 42-57, 1996.
[3] Altera Data Sheets. available at www.altera.com.
[4] Xilinx Data Sheets. available at www.xilinx.com.
[5] Actel Data Sheets. available at www.actel.com.
آز طراحی سیستمهای دیجیتال (شماره درس: ۴٠٢٠٣)
Digital Systems Design Lab
اهداف درس
هدف از این آزمایشگاه آن است که دانشجویان تجربیات عملی در زمینه طراحی سیستمهای دیجیتال با استفاده از ابزارهای خودکار طراحی دیجیتال (CAD Tools) و نیز پیاده سازی سیستمهای دیجیتال با عناصر برنامه پذیر همچون CPLD و FPGA را به دست آورند.
ریز مواد
- آزمایش اول: طراحی مدارهای ترکیبی با استفاده از امکانات شماتیک
- آزمایش دوم: طراحی مدارهای ترتیبی با استفاده از امکانات شماتیک
- آزمایش سوم: توصیف جریان داده
- آزمایش چهارم: توصیف رفتاری
- آزمایش پنجم: طراحی ضرب کننده
- آزمایش ششم: طراحی یک انکوباتور
- آزمایش هفتم: UART
- آزمایش هشتم: ALU اعداد مختلط
- آزمایش نهم: پیاده سازی حافظههای شرکت پذیر نوع سه گانه
- آزمایش دهم: پیاده سازی یک پردازندهی ساده
مراجع
[1] S. Palnitkar. Verilog HDL: A Guide to Digital Design and Synthesis. 2nd edition, Prentice Hall, 2003.
[2] ACEX 1K Programmable Logic Family Data Sheet. Available at www.altera.com.
[3] ModelSim User’s Manual. Available at www.actel.com.
[4] Introduction to the Quartus II Software. Available at www.altera.com.
معماری کامپیوتر (شماره درس: ۴٠٣٢٣)
Computer Architecture
اهداف درس
در درس ساختار و زبان کامپیوتر، دانشجویان با اجزای مختلف کامپیوتر و نحوهی تعامل آنها در اجرای دستورالعملهای یک برنامه آشنا شدند. در این درس، هدف اصلی آموزش نحوهی طراحی و پیاده سازی این اجزا و تکنیکهای مختلف پیاده سازی معماریهای متفاوت برای کاربردهای مختلف است. همچنین برای مطالعه بیشتر در خصوص معماری کامپیوتر میتوانید به صفحه معرفی و بررسی معماری کامپیوتر آموزش جامع معماری کامپیوتر در مهندسی کامپیوتر، معماری کامپیوتر مجموعهای از قوانین و روشهایی است که به چگونگی طراحی، کارکرد، سازماندهی و پیاده سازی (ساخت) سیستمهای کامپیوتری میپردازد، در این صفحه به بررسی و آموزش کامل معماری کامپیوتر پرداخته شده است مراجعه کنید.
ریز مواد
- مروری بر اجزای پایه و تاریخچهی کامپیوتر
- یادآوری مدارهای ترکیبی و ترتیبی، مزیتهای تکنولوژی دیجیتال نسبت به آنالوگ، مالتی پلکسر، دیکودر، گیت سه حالته، گذرگاه (باس)
- سطوح تجرید و توصیف کامپیوتر
- تاریخچه و مرور نسلهای کامپیوتر
- نمایش اعداد
- مرور و آموزش انواع شیوههای سیستمهای نمایش دیجیتال برای اعداد علامتدار و بدون علامت، صحیح و ممیز شناور، بررسی دقت مطلق و نسبی و بازه ی نمایش
- تعریف و اندازه گیری کارایی پردازنده و کامپیوتر
- عوامل موثر در کارایی کامپیوتر
- تعریف کارایی (معکوس زمان اجرا)
- فرمول کارایی
- افزارسنجی (Benchmarking) و نمونههای آن
- طراحی واحد اجرایی (یا مسیر داده=Data path) و کنترل سیمبندی شده
- مروری بر مدهای آدرسدهی
- مروری بر سطح و زبان انتقال بین ثبات (RTL)
- معماری مجموعه دستورالعمل (Architecture Set Instruction)
- تحلیل و طراحی گام به گام یک پردازندهی نمونه (Mips)
- بررسی پیاده سازی وقفه و روش سرکشی
- توصیف و طراحی واحد کنترل
- واحد کنترل ریزبرنامه پذیر
- مرور کاستیها و مزایای نسبی این نوع کنترل به کنترل سیم بندی شده
- بررسی معماری نمونه و مثال
- سیستم حافظه
- طرز کار و معرفی انواع حافظه و سلسله مراتب آن
- حافظهی نهان و بررسی انواع نگاشتهای مستقیم، کاملا شرکت پذیر و شرکت پذیر مجموعهای
- الگوریتم های حسابی
- الگوریتمهای جمع، تفریق، ضرب و تقسیم
- معماریهای حسابی
- ضرب با کدگذاری بوت (Booth ) و آرایهای
- مروری برروش های O/I
- روشهای دست تکانی (Handshaking)
- معماریهای پیشرفته
- مروری بر روشهای تسریع و موازی سازی
- بررسی اجمالی معماری پایپلاین و زمان اجرا در آن
ارزیابی
- تمرینهای نظری: ٣ نمره
- آزمونهای میان ترم و پایانی: ١۵ نمره
- آزمونکها: ٢ نمره
مراجع
[1] D. A. Patterson and J. L. Hennessey. Computer organization and design. 3rd edition, Elsevier (MorganKaufmann), 2005.
[2] M. Mano. Computer system architecture. 3rd edition, Prentice Hall, 1992.
آز معماری کامپیوتر (شماره درس: ۴٠١٠٣)
Computer Architecture Lab
اهداف درس
هدف از این درس، آشنایی دانشجویان با روشهای عملی پیاده سازی اجزای مهم یک معماری کامپیوتر (نظیر واحد حسابی‐ منطقی، واحد کنترل و حافظه) است به گونهای که دانشجویان دید واقعی به شیوه ی طراحی و پیاده سازی یک مجموعه دستورالعمل روی یک معماری هدف پیدا و تجربه عملی کسب کنند.
ریز مواد
- آشنایی با ابزارهای CAD جهت طراحی و آزمایش درستی عملکرد مدارهای منطقی
- آشنایی با یک شبیه ساز نمونه (همانند Quartus)
- طراحی، پیاده سازی و آزمون عملکرد یک مدار نمونه (همانند مدار جمع دو عدد ده دهی دو رقمی) با استفاده ازشبیه ساز
- طراحی و پیاده سازی معماری های محاسباتی
- طراحی و پیاده سازی ضرب کنندهی ممیزثابت چهاربیتی
- طراحی و پیاده سازی جمع/تفریق کنندهی ممیز شناور
- طراحی و پیاده سازی مبدل ده دهی به دودوئی
- طراحی و پیاده سازی معماری یک کامپیوتر ساده
- طراحی و پیاده سازی واحد محاسبه با امکان انتخاب مبداء
- طراحی و پیاده سازی واحد محاسبه با امکان کنترل توسط برنامه
- طراحی و پیاده سازی کامل کامپیوتر با حافظهی داده و دستورهای پرش
- طراحی و پیاده سازی پردازنده
- طراحی و پیاده سازی مدار کنترل ریزبرنامه پذیر
- آزمون کارایی مدار پیاده سازی شده
مراجع
[1] D. Patterson and J. L. Hennessy. Computer Organization & Design, The Hardware / Software Interface. 4th edition, Morgan Kaufmann Publishing, 2011.
[2] M. Mano. Computer System Architecture. 3rd edition, Prentice Hall, 1992.
طراحی کامپایلرها (شماره درس: ۴٠۴١۴)
Compiler Design
اهداف درس
طراحی و ساخت کامپایلرها یکی از مفاهیم بنیادی علوم کامپیوتر است. علی رغم آنکه روش های ساخت کامپایلرها تنوع کمی دارند، لیکن می توانند برای ساخت مفسرها و مترجم های طیف گسترده و متنوعی از زبان ها و ماشین ها استفاده شوند. در این درس، موضوع ساخت کامپایلرها از طریق توصیف مولفه های اصلی یک کامپایلر و وظایف و ارتباط آن ها معرفی می شود. پس از معرفی مقدماتی درباره ی اجزاء یک کامپایلر و انواع گرامرها، مراحل مختلف ترجمه از قبیل تجزیه و تحلیل لغوی، نحوی و معنایی و تولید و پرداخت کد تشریح می شود.
ریز مواد
- مقدمه (٢ جلسه)
- انواع زبان ها و گرامرها (١ جلسه)
- تحلیل واژه ای و اصلاح خطاهای واژه ای (٣ جلسه)
- تحلیل نحوی بالا به پایین (۵ جلسه)
- تجزیه ی پایین گرد
- تجزیه ی (1)LL
- برخورد با خطاهای نحوی
- تحلیل نحوی پایین به بالا (٨ جلسه)
- تقدم عملگر
- تقدم ساده
- تجزیه ی (1)LR شامل (1)LARA،(1) ،SLR و(1)CLR
- تحلیل معنایی (١ جلسه)
- مدیریت جدول علائم (١ جلسه)
- روش های تخصیص حافظه ی زمان اجرا (٢ جلسه)
- تولید کد (۵ جلسه)
- پرداخت و بهینه سازی کد (١ جلسه)
- تولید خودکار کامپایلرها (١ جلسه)
ارزیابی
- آزمون میان ترم: %٣۵
- آزمون پایان ترم: %٣۵
- پروژه ی عملی: %٢٠
- کوئیزها و تمرینات: %١
مراجع
[1] A. Aho, M. Lam, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, and Tools. 2nd edition,Addison Wesley, 2007.
[2] D. Grune, H. Bal, C. Jacobs, and K. Langendoen. Modern Compiler Design. John Wiley, 2001.
[3] J. Tremblay and P. Sorenson. Theory and Practice of Compiler Writing. McGraw Hill, 1985.
[4] C. Fisher and R. LeBlanc. Crafting a Compiler with C. Benjamin Cummings, 1991.
هوش مصنوعی (شماره درس: ۴٠۴١٧)
Artificial Intelligence
اهداف درس
در این درس به معرفی جنبه های نظری و عملی هوش مصنوعی پرداخته می شود. هدف درس هوش مصنوعی معرفی تکنیک هایی برای تصمیم گیری به صورت بهینه یا نزدیک به بهینه (optimal-near) در مسائل و محیط های مختلف است. در این درس به مفاهیمی نظیر جست وجو، حل مساله، نمایش دانش (knowledge) و استنتاج (inference) خواهیم پرداخت. همچنین جست وجو در محیط های غیرقطعی (uncertain) نمایش دانش در این محیط ها و استنتاج احتمالاتی برای تصمیم گیری در این شرایط مطرح خواهد شد. به علاوه زمینه ی یادگیری ماشین مختصرا معرفی می شود. در نهایت آشنایی با تعدادی از حوزه های کاربردی هوش مصنوعی صورت خواهد گرفت
ریز مواد
- مقدمه ای بر هوش مصنوعی و تاریخچه ی آن
- معرفی عامل های هوشمند
- جست وجوی ناآگاهانه (uninformed)
- جستوجوی اول‐سطح (BFS) و جستوجوی اول‐عمق (DFS)
- جستوجوی عمق بخشی تکراری (Deepening Iterative)
- جستوجوی هزینه‐یکنواخت (Search Cost Uniform)
- جست وجوی آگاهانه (informed)
- توابع ابتکاری قابل قبول (admissible ) و سازگار (consistent)
- جستوجوی اول بهترین حریصانه (search first best greedy)
- الگوریتم *A و اثبات بهینگی
- خودکارسازی تولید توابع ابتکاری
- جستوجوی محلی (local)
- تپه نوردی (climbing-hill)، شبیه سازی ذوب (annealing simulated)، جستوجوی شعاعی محلی (local genetic algorithm) کژنتی وریتمگال و ( beam search)
- جستوجوی محلی در فضای پیوسته: روش کاهش در راستای گرادیان (gradient descent)
- مسائل ارضای محدودیت (Constraint Satisfaction Problems)
- جستوجوی عقبگرد (backtrack)
- استفاده از تکنیکهایی نظیر MRV ، LCV، بررسی جلورو (AC3 ،MAC ، (Forward ،Checking
- حل مسائل CSP با رویکرد جستجوی محلی
- جستجوی مقابله ای (adversarial)
- الگوریتم minimax و هرس آلفا‐بتا
- الگوریتم expectiminimax
- فرایند تصمیم مارکوف (Markov Decision Process)
- ارزیابی سیاست (policy evaluation) و بهبود (improvement) سیاست
- روش تکرار ارزش (value iteration) و تکرار سیاست (policy iteration)
- یادگیری تقویتی (reinforcement learning)
- روشهای مبتنی بر مدل (model-based)
- یادگیری تفاضل زمانی (temporal difference) و الگریتم Q-learning
- منطق (logic)
- منطق گزارهای (propositional) و استنتاج (inference) در منطق گزارهای (شامل روش رزولوشن (resolution))
- منطق مرتبه اول (first-order) و استنتاج در منطق مرتبه اول
- معرفی شبکههای بیزین (Bayesian Networks)
- بازنمایی (representation) در شبکههای بیزین و استقلال (independency) در این شبکهها
- استنتاج در شبکه های بیزین: استنتاج دقیق و استنتاج تقریبی با استفاده از نمونه برداری
- تخمین پارامترها در شبکه های بیزین
- نمونههای معروف و کاربردی از شبکههای بیزین: مدل مارکوف، مدل مخفی مارکوف (Hidden Markov Model) دسته بند بیز ساده (Naïve Bayes)
- مقدمهای بر یادگیری ماشین (Machine Learning)
- مدلهای خطی (linear models)
- شبکههای عصبی (Neural Networks)
- معرفی زمینههای کاربردی هوش مصنوعی
- پردازش زبان طبیعی (Natural Language Processing)
- بینایی ماشین (Computer Vision)
- رباتیک (robotics)
ارزیابی
- تمرین های نظری و عملی: ۶ نمره
- آزمون میان ترم: ۵ نمره
- آزمون پایان ترم: ٧ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach. 3rd edition, 2009
جبر خطی (شماره درس: ۴٠٢٨٢)
Linear Algebra
اهداف درس
هدف از این درس، آشنایی دانشجویان با مفاهیم پایهای نظری جبر خطی و همچنین نحوهی استفاده و پیاده سازی آنها در بستر نرم افزاری مناسب است. آشنایی با مفاهیم این درس امکان تحلیل نگاشتها و سیستمهای خطی از طریق ماتریسها و اعمال، اپراتورها و مفاهیم تعریف شده مرتبط با آنها را فراهم میکند. همینطور مساله بهینه سازی به عنوان یکی از کاربردهای پراستفاده جبر خطی مورد بررسی قرار میگیرد.
ریز مواد
- فضاهای برداری
- نگاشت خطی و ماتریس
- فضای برداری نگاشت خطی
- ساختار جبری نگاشت خطی
- ماتریس و رنک
- معکوس نگاشت خطی
- دوگانی
- دستگاههای خطی
- حجم و دترمینان
- چندجملهایها
- صفرهای چندجملهای
- فاکتورگیری چندجملهای در میدانهای مختلط و حقیقی
- مقادیر ویژه و بردارهای ویژه
- زیرفضاهای ثابت
- بردارهای ویژه و مقادیر ویژه
- بردارهای ویژه ی مستقل خطی
- فضاهای ویژه و قطری سازی ماتریسها
- فضاهای ضرب داخلی
- ضرب داخلی و تعریف فاصله
- پایههای متعامد
- عملگرهای فضاهای ضرب داخلی
- عملگرها و تجزیه
- تجزیهی قطبی
- تجزیهی مقدارهای منفرد
- تجزیهی چولسکی
- تجزیهی ال یو
- تجزیهی کیو آر
- عملگرهای الحاقی
- عملگرهای نرمال
- عملگرهای یکانی و ایزومتری
- عملگرهای مثبت
ارزیابی
- تمرینها: ۶ نمره
- دو آزمون میانترم: ٨ نمره
- آزمون پایانی: ۶ نمره
- آزمونکها: ١ نمره
مراجع
[1] Right Sheldon Axler. Linear Algebra. Springer, 2015.
[2] Gilbert Strang. Linear Algebra and Its Application. 4th edition, Cengage Learning, 2006.
[3] David Clay. Linear Algebra and Its Application. 4th edition, Pearson, 2011.
ارائه مطالب علمی و فنی (شماره درس: ۴٠٢٢١)
Scientific and Technical Presentation
اهداف درس
هدف از این درس آموزش مهارتها، اصول، آداب و اخلاق ارائه های علمی و فنی و روشهای مناسب ارائهی ساخت یافته (نوشتاری و شفاهی) و همچنین بهبود کیفیت این ارائهها و نیز آشنایی با مدیریت ارائهی شفاهی و شیوهی نگارش مستندات علمی و یا حرفهای مرتبط، با تاکید بر محتوا و ساختار اجزاء و نحوهی دستیابی به منابع علمی است.
ریز مواد
تعاریف و کلیات
- اهداف و اهمیت ارائهی علمی و فنی برای دانشجویان، پژوهشگران، متخصصین، کارشناسان و شرکتها
- انواع ارائه
- محیط و مخاطبین ارائه
- ویژگیهای ارائههای علمی، شامل اصالت (Originality)، نوآوری (Novelty)، نقش در تولید علمی (Contribution)
- رعایت اخلاق علمی در کارهای پژوهشی و معرفی مصادیق تقلب (Plagiarism) علمی
- شرح اجمالی کارهای پیش روی دانشجویان
- ارائه شفاهی
- انواع ارائهی شفاهی (سخنرانی، تدریس، سمینار و وبینار)
- ویژگیهای ارائه شفاهی
- آداب و فنون سخنوری و شیوهی ادارهی جلسهی ارائه
- ملاحظات محیطی و فنی یک ارائه ی موفق
- آشنایی با روشهای جستجوی منابع علمی (در پایگاههای علمی و اطلاع رسانی، کتابخانهها، وبگاه نویسندگان و شرکتها و موسسات، ...)
- ارائهی نوشتاری
- ویژگیهای ارائهی نوشتاری (کتبی)
- شرح انواع ارائههای نوشتاری و چگونگی سازماندهی محتویات، شامل پایان نامه، گزارش کارآموزی، کتاب، مقالهی مجله یا ژورنال (پژوهشی، ترویجی و مروری)، مجموعهی مقالات همایش (proceedings Conference)، پیشنهاد پژوهشی، گزارش فنی و ثبت اختراع (Patent)
- معیارهای ارزیابی پایان نامهها، مقالات و پیشنهادهای پژوهشی (و در صورت وجود وقت، سایر ارائههای نوشتاری)
- ارائههای صنعتی و حرفهای
- شیوهی تدوین طرح تجاری (plan Business)، درخواست اعتبار (Grant) یا تسهیلات برای طرح پژوهشی یا صنعتی، درخواست پیشنهاد (RFP :Proposal For Request)، اسناد مناقصه
- شیوه ی معرفی یا تبلیغ یک محصول یا خدمت
- مرجع نویسی
- اهمیت داشتن مراجع معتبر و به روز در کار پژوهشی
- آشنایی با شیوههای ارجاع به مراجع و مآخذ
- معرفی انواع سبکهای مرجع نویسی
- برگزاری سمینارهای دانشجویی
- در این مرحله دانشجویان به ارائه سمینارهای فردی در زمینههایی که از قبل با استاد درس هماهنگ کردهاند میپردازند. مدت سمینار برای هر دانشجو ١۵ تا ٢٠ دقیقه و زمان پرسش و پاسخ یا نقد ارائه شفاهی دانشجو بین ۵ تا ١٠ دقیقه است.
ارزیابی
- آزمونهای میانترم و پایانی: ۴۵٪
- ارائهی شفاهی و گزارش کتبی: ٢۵٪
- تمرینهای عملی: ٣٠٪
مراجع
[١] سید محمد تقی روحانی رانکوهی، “شیوه ارائه مطالب علمی و فنی”، ویرایش پنجم، انتشارات جلوه، ١٣٩۴.
[٢] فرهنگستان زبان و ادب فارسی، “دستور خط فارسی”، نشر آثار، ١٣٨٩.
[٣] علی اشرف صادقی و زهرا زندی مقدم، “فرهنگ املایی خط فارسی”، نشر آثار، ١٣٩۴.
[4] Barbara Gastel and Robert A. Day. How to Write and Publish a Scientific Paper. 8th edition, Cambridge University Press, 2016.
[5] Michael Alley. The Craft of Scientific Presentations Critical Steps to Succeed and Critical Errors to Avoid. 2nd edition, Springer, 2013
طراحی پایگاه دادهها (شماره درس: ۴٠٣٨۴)
Design Database
اهداف درس
در این درس دانشجویان با مفاهیم مدل سازی معنایی دادهها و طراحی پایگاه دادهها آشنا میشوند و در انتهای ترم انتظار میرود که دانشجویان با مفاهیمی که در ریزموارد به آنها اشاره شده است، آشنایی کامل پیدا کرده باشند.
ریز مواد
- مشی پایگاهی و سیستمهای پایگاهی (٣ جلسه )
- معرفی درس
- تعریف پایگاه دادهها
- مشی فایلینگ و مشی پایگاهی
- عناصر محیط پایگاه داده
- انواع معماری سیستم پایگاهی (متمرکز، مشتری‐خدمتگزار، توزیع شده)
- اجزای سیستم مدیریت پایگاه داده رابطهای (OLTP،RDBMS)
- مدل سازی معنایی داده ها با روش ER و ERR (۴ جلسه )
- موجودیت
- صفت
- ارتباط
- نمودار ER و EER
- انواع دامها
- تکنیکهای تخصیص، تعمیم، تجزیه، ترکیب و تجمیع
- ویژگیهای روش مدل سازی معنایی
- اصول طراحی پایگاه دادهها (٢ جلسه )
- اشنایی با ساختار جدولی و پایگاه داده جدولی
- روش طراحی بالا به پایین (تبدیل مدل سازی معنایی به طراحی منطق)
- زبان پایگاه دادهی جدولی (SQL)
- آشنایی مقدماتی با دستورات DDL و DCL
- اشنایی با دستورات DML
- SQL توکار در زبانهای برنامه سازی
- پیاده سازی تراکنش
- پرس وجوی پارامتری (Parameterized Query)
- معماری سه سطحی پایگاه دادهها (٣ جلسه )
- معماری سه سطحی ANSI ،دید (نمای) ادراکی
- دید داخلی و دید خارجی
- تبدیلات بین سطوح
- انواع شاخص در سطح داخلی (B+-Tree ،B-Tree و Hash)
- عملیات از دید خارجی در پایگاه دادهها و مشکلات مربوطه
- استقلال دادهای فیزیکی و منطقی
- مفاهیم اساسی مدل دادهای رابطهای (٢ جلسه )
- مولفههای مدل دادهای در مدل رابطهای
- رابطه و مفاهیم مربوطه
- کلید در مدل رابطهای
- مروری بر اصول طراحی پایگاه دادههای رابطهای
- جامعیت در مدل رابطهای (٢ جلسه )
- ؛ قواعد جامعیت عام (C1 و C2)
- قواعد جامعیت یا محدودیتهای کاربری
- مکانیزمهای اعمال قواعد جامعیت کاربری شامل اظهار (Assertion) و رهانا (Trigger)
- عملیات در پایگاه رابطهای (٣ جلسه )
- جبر رابطه ای
- حساب رابطه ای
- تئوری وابستگی و ارتقاء سطح نرمالسازی رابطهها (٣ جلسه )
- مفاهیمی از تئوری وابستگی
- شرح صورتهای نرمال (تا سطح BCNF ،بقیه سطوح مطالعه انفرادی)
- تجزیه مطلوب
- امنیت پایگاه دادهها (١ جلسه )
- مدیریت کاربران
- احراز اصالت
- کنترل دسترسی
- رمزنگاری دادهها
- سیستمهای مدیریت پایگاه داده غیررابطهای (NoSQL DBMS) (٢ جلسه)
- دلایل استفاده از پایگاه دادههای غیررابطهای (NoSQL)
- تئوری CAP
- پایگاه دادههای کلید‐مقدار، ستون‐محور، گراف‐محور و سند‐محور
- (اختیاری) مقدمهای بر انباره داده (Data Warehouse) (١ جلسه)
- معرفی انباره داده، OLAP
ارزیابی
- آزمون: آزمونهای میان نیمسال (٣٠ درصد نمره) و پایان نیمسال (٣۵ درصد نمره)
- تمرین: (١٧ ٪کل نمره)
- پروژه: (١٣ ٪کل نمره)
- کوییز و فعالیتهای کلاسی (۵ ٪کل نمره)
مراجع
[١] سید محمد تقی روحانی رانکوهی، “مفاهیم بنیادی پایگاه دادهها”، ویراست چهارم، ١٣٩٠.
[2] R. Elmasri, S. Navathe. Fundamentals of Database Systems. 7th edition, Pearson, 2015.
[3] A. Silberschatz, H. F. Korth, S. Sudarshan. Database System Concepts. 6th edition, McGraw-Hill, 2010.
[4] C. J. Date. An Introduction to Database Systems 8th edition, Pearson, 2003.
[5] T. Connolly, C. Begg. Database Systems. 6th edition, Pearson, 2014.
[6] R. Ramakrishnan, J. Gehrke. Database Management Systems. 4th edition, McGraw-Hill, 2014.
سیستمهای عامل ( شماره درس: ۴٠۴٢۴)
Operating Systems
اهداف درس
هدف از این درس، آشنا نمودن دانشجویان کارشناسی با اصول سیستم های عامل است. این درس دارای چهار تمرین برنامه نویسی فردی است که دانشجو را با برنامه نویسی سیستمی آشنا میکند. همچنین این درس دارای سه تمرین برنامه نویسی گروهی است که دانشجو را با برنامه نویسی در سطح کرنل آشنا می نماید.
ریز مواد
- مقدمه ای بر سیستم های عامل (٢ جلسه )
- مفاهیم اولیهی سیستمهای عامل
- ساختار و اجزای تشکیل دهنده سیستمهای عامل
- ریسه، فضای آدرس، I/O و عملیات مد دوگانه
- ساختار و معماری سیستمهای عامل
- مدیریت پردازهها (٣ جلسه )
- پردازهی تک ریسهای، چندریسهای، پردازهی منشعب و بلوک کنترل پردازه
- مدیریت وقفه
- ارتباط بین پردازهها
- همروندی و همگام سازی (٣ جلسه )
- نواحی بحرانی و انحصار متقابل
- عملیات تجزیه ناپذیر
- قفل، سمافور و مانیتور
- زمان بندی (٣ جلسه )
- اهداف الگوریتمهای زمان بندی
- زمان بندی اول ورودی‐اول خروجی، نوبت‐چرخشی، کوتاه ترین‐کار‐اول و کمترین‐زمان باقیمانده‐اول
- زمان بندی بی درنگ
- بن بست و گرسنگی (٢ جلسه )
- شرایط ایجاد بنبست
- روشهای رسیدگی، تشخیص و پیشگیری از بنبست
- مسئله غذاخوری وکیلان و الگوریتم بانکدار
- مدیریت حافظه (٢ جلسه )
- مدیریت حافظه، صفحه بندی، قطعه بندی، ترکیب صفحه بندی و قطعه بندی
- ترجمهی آدرس، جدول صفحه، صفحه بندی دوسطحی و چند سطحی و جدول صفحه وارونه
- TLB
- حافظهی مجازی (٢ جلسه)
- صفحه بندی بر اساس تقاضا
- تخصیص قاب صفحات و نقص صفحه
- روشهای جایگزینی صفحه (الگوریتمهای اول ورودی‐اول خروجی، حداقلی، تصادفی، اخیرا به کار نرفته، ساعت و شانس n‐ام)
- مدل مجموعه کاری و بیهوده کاری
- سیستم های ذخیره سازی انبوه (٢ جلسه )
- انواع دستگاهها و کنترل کنندههای O/I و درایورهای دستگاهها
- دستگاههای ذخیره سازی (درایو دیسک سخت و دیسک حالت جامد)
- زمان بندی دیسک (اول ورودی‐ اول خروجی، کوتاهترین زمان جستجو اول، SCAN و SCAN-C)
- فایل سیستم (٣ جلسه )
- روشهای مدیریت دیسک و اجزای فایل سیستم
- جدول تخصیص فایل، فایل سیستم یونیکس و NTFS
- فایلهای نگاشته شده به حافظه و حافظه نهان در فایل سیستم
- حفاظت و امنیت (١ جلسه )
- ماشین مجازی (١ جلسه )
ارزیابی
- آزمونهای میانترم و پایانترم (۴٠ ٪از کل نمره)
- چهار تمرین برنامه نویسی فردی که در طول نیم سال تحویل داده میشوند (٢۵ ٪از کل نمره).
- سه تمرین برنامه نویسی گروهی که در طول نیم سال تحویل داده میشوند (٣۵ ٪از کل نمره).
مراجع
[1] A. Silberschatz, P. B. Galvin, and G. Gagne. Operating System Concepts. 10th edition, Wiley Pub-lishing, 2018.
[2] T. Anderson and M. Dahlin. Operating Systems: Principles and Practice. 2nd edition, Recursive Books, 2014.
آز سیستمهای عامل (شماره درس: ۴٠۴٠٨)
Operating Systems Lab
اهداف درس
هدف از این آزمایشگاه، آموزش بخشهای مختلف سیستم عامل لینوكس، استفاده از این بخشها و پیاده سازی الگوریتمهایی در هر كدام از این بخشها است. پس از گذراندن این آزمایشگاه، دانشجویان با ساختار سیستم عامل لینوكس آشنا خواهند شد و توانایی تغییر و كامپایل آن را خواهند داشت. كلیات این آزمایشگاه به صورت زیر است اما جزئیات هر آزمایش از یک نیمسال به نیمسال دیگر تغییر خواهد یافت. در طول یک نیمسال ممکن است همه بخشهای سرفصل پوشش داده نشود اما در همهی نیمسالها آزمایش های ابتدایی پوشش داده خواهد شد و سپس برروی موضوعهای مختلفی تمركز خواهد شد.
ریز مواد
- کامپایل و نصب لینوکس
- برنامه نویسی با زبان ++C و shell در لینوکس
- به کارگیری System Call های لینوکس در برنامهها
- بررسی رفتار سیستم عامل (مسیر proc/)
- ایجاد، اجرا و از بین بردن فرایندها و ریسهها (بکارگیری کتابخانه pthread)
- همگام سازی و ارتباط بین فرایندها و ریسهها
- مدیریت حافظه، حافظهی مشترک و حافظهی مجازی
- برنامه ریزی پردازنده (CPU Scheduling)
- به کارگیری سیستمهای فایل قابل نصب (Installable File System)
- برنامه ریزی دیسک و دستگاههای ورودی و خروجی (IO Scheduling)
- طراحی و پیاده سازی Device Driver
- به کارگیری سازوکارهای امنیتی لینوکس
- آشنایی با سیستمهای عامل بلادرنگ و نهفته
- آشنایی با Windows Research Kernel
مراجع
[1] P. J. Salzman, M. Burian, and O. Pomerantz. The Linux Kernel Module Programming Guide. 2007.
[2] K. Wall, M. Watson, and M. Whitis. Linux Programming Unleashed, Macmillan Computer Publishing.1999.
[3] M. Mitchell, J. Oldham, and A. Samuel. Advanced Linux Programming. New Rivers, 2001.
[4] C. S. Rodriguez, G. Fischer, and S. Smolski. The Linux® Kernel Primer: A Top-Down Approach for x86 and PowerPC Architectures. Prentice-Hall, 2005.
[5] J. Corbet, A. Rubini, and G. Kroah-Hartman. Linux Device Drivers. O’Reilly Books, 2005.
تحلیل و طراحی سیستمها (شماره درس : ۴٠۴١٨)
Systems Systems and Design
اهداف درس
همانطور که برای حل یک مسئلهی ریاضی ابتدا نیاز است پیچیدگیها و ابعاد آن شناسایی شده، استراتژیهای مناسب برای حل آن مسئله طراحی شده و سپس اقدام به حل آن نمود، مسائلی از جنس ساخت سامانههای رایانهای برای مجموعهای از مردم (که شاید در بسیاری از موارد از مسائل ریاضی پیچیده تر نیز باشند) نیز قبل از اقدام به پیاده سازی نیاز به تحلیل و طراحی دارند. در این درس دانشجویان با مهارتهای تحلیل و طراحی مانند تحلیل نیازمندیها، تحلیل امکان سنجی، مدل سازی، تحلیل فرایندها، طراحی معماری، و طراحی UX/UI آشنا میشوند. در کنار این مهارتها، این درس حاوی مهارتهای مدیریت و برنامه ریزی تولید سامانههای رایانهای مانند روشگانهای تولید این سامانهها، خودکارسازی فرایند، و مفاهیم مدیریت پروژه در این گونه پروژه ها خواهد بود.
ریز مواد
- مقدمهای بر سامانههای رایانهای (١ جلسه )
- مفاهیم توسعه سامانههای رایانهای (١ جلسه )
- تحلیل امکان سنجی (١ جلسه )
- جنبههای مختلف امکان سنجی
- تحلیل هزینه/درآمد
- مقدمهای بر طراحی مدل کسب وکار
- مدیریت و برنامه ریزی پروژه توسعه سامانههای یارانهای (١ جلسه )
- آشنایی با ساختار سامانههای کسب وکاری مختلف نظیر سامانههای حسابداری، انبارداری و ... (٢ جلسه )
- برنامه ریزی محصول و برنامه ریزی انتشار محصول (١ جلسه )
- تحلیل سامانههای رایانهای (۶ جلسه )
- آشنایی با مفاهیم تحلیل سامانههای رایانه ای
- استخراج و مدل سازی نیازمندی
- روشهای استخراج نیازمندیها
- مدل سازی نیازمندیها با Use Case Diagram
- مدل سازی و نگاشت فرایندها
- مفاهیم فرایندهای کسب وکار
- روشهای استخراج و تحلیل فرایندها
- مدل سازی و نگاشت فرایند با Activity Diagram
- یادآوری تحلیل دادهای در سامانههای یارانهای
- مدل سازی و تحلیل موجودیت با Class Diagram
- طراحی سامانههای رایانهای (۶ جلسه )
- آشنایی با مفاهیم طراحی سامانههای رایانهای
- طراحی معماری
- انواع نیازمندیهای غیرعملکردی
- طراحی تاکتیک معماری
- آشنایی با مفهوم دید
- بیان معماری با Component Diagram و Deployment Diagram
- معرفی الگوها و سبکهای طراحی معماری سامانههای سازمانی حداقل شامل معماریهای لایهای، معماریهای سرویس گرا و میکروسرویس، معماری مبتنی بر سرویسهای پیام رسانی آسنکرون
- طراحی UI/UX
- یادآوری طراحی مدل دادهای در سامانههای یارانهای
- روشگان توسعه سامانههای رایانهای (١٠ جلسه )
- آشنایی با انواع روشگانها شامل روشگانهای آبشاری، مبتنی بر مدل و چابک
- روشگان Scrum
- چارچوب Scrum
- کاربردپذیری Scrum
- مهندسی نیازمندیها در Scrum
- تعریف و مدیریت Product Backlog
- برنامه ریزی Sprint
- اجرای Sprint
- بازبینی Sprint
- پس نگری Sprint
- ساخت و نگه داری سامانههای رایانهای (۴ جلسه )
- روشگان Scrum
- آشنایی با مفاهیم ساخت، عملیات، مراقبت و نگهداری و پایاندهی سامانههای رایانهای
- آشنایی مقدماتی با DevOps
- چابک سازی تیم Dev و تیم Ops
- یکپارچه سازی مستمر، تحویل مستمر و استقرار مستمر
ارزیابی
- آزمون: آزمون های میان نیم سال (٢۵ درصد نمره) و پایان نیم سال (٣۵ درصد نمره)
- تمرین: انجام تمرین هایی در حوزه ی تحلیل و طراحr سامانه (٢٠ درصد نمره)
- پروژه: توسعه ی چابک ی محصول کوچک مبتنی بر روشگان Scrum (٢٠ درصد نمره)
مراجع
[1] L.D. Bentley, K.C. Dittman, and J.L. Whitten. Systems analysis and design methods. Irwin/McGrawHill, 2007.
[2] K.S. Rubin. Essential Scrum: A practical guide to the most popular Agile process. Addison-Wesley,2012.
[3] M. Fowler, C. Kobryn, and K. Scott. UML distilled: A brief guide to the standard object modelinglanguage. Addison-Wesley Professional, 2004.
[4] D.J. Duffy. Domain architectures: Models and architectures for UML applications. John Wiley &Sons, 2004.
[5] L. Bass, I. Weber, and L. Zhu. DevOps: A software architect’s perspective. Addison-Wesley Professional, 2015.
[6] M. Fowler. Patterns of enterprise application architecture. Addison-Wesley Longman Publishing, 2002.
شبکههای کامپیوتری (شماره درس: ۴٠۴۴٣)
Computer Networks
اهداف درس
هدف از ارایه این درس آشنایی دانشجویان با مفاهیم اولیه ی شبکههای کامپیوتری و مفاهیم مرتبط میباشد. همچنین شما عزیزان برای آشنایی کاملتر با این درس میتوانید به صفحه بررسی کامل درس شبکه های کامپیوتریجامعترین آموزش درس شبکه های کامپیوتریدرس شبکه های کامپیوتری یکی از مهمترین و بنیادیترین دروس رشته کامپیوتر است، با توجه به اینکه اینترنت امروزی بزرگترین سیستم مهندسی ساخت دست بشر در تمام طول تاریخ است، آشنایی با شبکههای کامپیوتری برای تمامی علاقهمندان و دانشجویان رشته کامپیوتر الزامی است، در این راستا در این صفحه به معرفی شبکههای کامپیوتری پرداخته شده است مراجعه کنید.
ریز مواد
- برنامه سازی مبتنی بر سوکت
- سویچینگ بستههای آی پی
- آدرسدهی و هدایت مبتنی بر آی پی
- قراردادهای انتقال (تی سی پی و یو دی پی )
- کنترل ازدحام
- ترجمهی آدرسها (دی ان اس ، دی اچ سی پی و ای آر پی )
- میان افزار (Middleware)
- سوئیچها و پلها (Switch and Bridges)
- اتصالات (Links)
- مسیریابی حالت اتصال
- مسیریابی بردار فاصله و بردار مسیر
- مسیریابی بردار مسیر مبتنی بر خط مشی (BGP)
- شبکههای فرالایهای و همتا‐به‐همتا
- جریان سازی چندرسانهای
- سویچینگ مداری (Circuit Switching)
- شبکههای بیسیم و همراه
- شبکه توزیع محتوا (CDN)
- شبکه های مبتنی بر نرم افزار
مراجع
[1] Larry L. Peterson and Bruce S. Davie. Computer Networks: A Systems Approach. 5th edition, 2011.
آز شبکه های کامپیوتری (شماره درس: ۴٠۴١۶)
Computer Networks Lab
اهداف درس
آزمایگاه شبکه های کامپیوتری که برای دانشجویان کارشناسی ارایه می شود، نقش تکمیلی برای درس شبکه های کامپیوتری را ایفا می کند. در این درس دانشجویان به صورت عملی با برخی از مفاهیم مهمی که در درس شبکه های کامپیوتری فرا گرفته اند، آشنا می شوند. آزمایشگاه در ده جلسه ی سه ساعته برگزار می شود.
ریز مواد
- آشنایی و مرور مفاهیم اولیه شبکه های کامپیوتری
- مرور معماری لایه ای
- نحوه ی ارتباط فیزیکی ماشین ها و آشنایی با انواع کابل های انتقال
- نحوه ی سوکت زدن کابل شبکه
- آشنایی با نرم افزار «وایرشارک»
- بررسی ارتباط HTTP
- بررسی ارتباط TelNet
- بررسی درخواست ها و پاسخ های DNS
- آشنایی پیشرفته با نرم افزار «وایرشارک»
- نحوه ی تنظیم و راه اندازی یک سرور DNS
- آشنایی با مسیریاب ها و سوییچ ها
- آشنایی با نرم افزارPacket Tracer
- بررسی دستورات سوییچ و مسیریاب سیسکو
- آشنایی با نرم افزار GNS3
- آشنایی با نحوه آدرس دهی پروتکل آی پی و زیرشبکه های آی پی (IP Subnetting)
- آشنایی و پیاده سازی یک سناریو مسیریابی ایستا در Packet Tracer
- آشنایی با مسیریابی پویا
- راه اندازی پروتکل مسیریابی RIP در Tracer Packet
- راه اندازی پروتکل مسیریابی OSPF در Tracer Packet
- آشنایی با مکانیزم NAT
- راه اندازی NAT ایستا
- راه اندازی NAT پویا
- راه اندازی PAT
- آشنایی با پروتکل مسیریابی BGP
- اجرای یک سناریو برای پروتکل BPG
ارزیابی
- فعالیت های آزمایشگاهی و گزارش ها: ١۵ نمره
پانزده نمره ی درس شامل انجام کامل آزمایش ها در طول جلسات آزمایشگاه و تحویل گزارش مرتب هر آزمایش تا جلسه ی بعد می باشد. نمره ی هر جلسه به طور مساوی بین انجام آزمایش و تحویل گزارش آن تقسیم می شود. شرکت نکردن در یک جلسه به معنای از دست دادن کل نمره ی مربوط به آن جلسه و گزارش آن خواهد بود. قبل از هر جلسه، دانشجویان باید صورت آزمایش مربوط به آن جلسه را از قبل مطالعه کرده باشند و اگر لازم است مطالب مربوط به آن جلسه را از درس شبکه مرور کنند. - امتحان پایان ترم: ۵ نمره
مراجع
[1] James Kurose and Keith Ross. Computer Networking: A Top-Down Approach. 7th edition, Pearson,2016.
[2] Larry L. Peterson and Bruce S. Davie. Computer Networks: A Systems Approach. 5th edition, 2011.
[3] Andrew Tanenbaum. Computer Networks. 5th edition, Pearson, 2010.
امنیت داده و شبکه (شماره درس: ۴٠۴۴٢)
Data and Network Security
اهداف درس
هدف از ارائه ی این درس آشنایی دانشجویان با مفاهیم اولیه ی امنیت، راه کارهای دفاعی و حملات در حوزه امنیت سیستم، وب، شبکه و موبایل است.
ریز مواد
- مفاهیم و تعاریف اولیه
- خط مشی امنیتی و مدل های کنترل دسترسی
- کانال های پنهان، کنترل جریان اطلاعات
- مدل های اختیاری (DAC) و مدل های اجباری (MAC)
- مدل های نقش‐مبنا (RBAC)
- امنیت سیستم
- نحوه ی اجرای نرم افزارها و تعاملات آن ها با سیستم و نقاط ضعف
- حملات و روش های دفاعی (control hijacking)
- مدیریت امن کدهای قدیمی در حال استفاده (جعبه شنی، مجازی سازی، ایزوله سازی در لایه های مختلف
- روش های موجود برای توسعه امن کد (تحلیل ایستا، تحلیل پویا)
- روش های نقض امنیت و Fuzzing
- امنیتی وب
- امنیت نرم افزارهای کاربردی تحت وب (CSRF ،XSS ،sql)
- مدیریت نشست های تحت وب (Cookies)
- مفاهیم رمزنگاری متقارن و نامتقارن
- کدهای احراز صحت پیام و توابع درهمساز
- امنیت اطلاعات وب در حین تبادل (Https/SSL)
- مکانیزم های دفاعی سمت مرورگر (CORS ،CSP ،SOP)
- امنیت شبکه
- تهدیدات امنیتی در پروتکل های شبکه (TCP ،DNS ،BGP ،routing ،ets)
- ابزارهای دفاعی در شبکه (Firewall ،VPN ،IDS ،ets)
- حملات منع سرویس و راهکارهای دفاعی
- محاسبات با اعتماد ( Trusted Computing) و SGX
- امنیت موبایل
- امنیت سکوهای موبایل (Android ،iOS)
- تهدیدات در حوزه موبایل
مراجع
[1] Matt Bishop. Computer Security. Addison-Wesley, 2017.
[2] John Erickson. The Art of Exploitation 2nd edition, No Starch Press, 2008.
[3] Robert C. Seacord. Secure Coding in C and C++. 2nd edition, Pearson Education, 2005.
[4] A. Sotirov. Bypassing Browser Memory Protections. 2008.
[5] T. Garfinkel. Traps and Pitfalls: Practical Problems in System Call Interposition Based SecurityTools. NDSS, 2003.
[6] Adam Barth, Collin Jackson, and John C. Mitchell. Securing Browser Frame Communication. Usenix,2008.
[7] Adam Barth, Collin Jackson, Charles Reis, and the Google Chrome Team. The Security Architecture of the Chromium Browser. 2008.
[8] Bortz et al. Origin Cookies: Session Integrity for Web Applications. 2011.
[9] Enck, Ongtang, and McDaniel. Understanding Android Security. 2009.
[10] Allan Tomlinson. Introduction to the TPM: Smart Cards, Tokens, Security and Applications. 2008.
[11] Andrew Baumann, Marcus Peinado, and Galen Hunt. Shielding Applications from an Untrusted Cloud with Haven. OSDI 2014.
دروس تخصصی رشته کامپوتر
کد درس | عنوان درس | تعداد واحد | پیشنیاز | همنیاز |
---|---|---|---|---|
۴٠٢۴٢ | سیگنال ها و سیستم ها | 3 | مبانی مدارهای الکتریکی و الکترونیکی | - |
۴٠٣٢۴ | بازیابی پیشرفته اطلاعات | 3 | ساختمان داده ها و الگوریتم ها | - |
۴٠٣۴٣ | انتقال داده ها | 3 | سیگنال ها و سیستم ها | - |
۴٠٣۴٧ | آداب فناوری اطلاعات | 3 | - | - |
۴٠٣۵٣ | VLSI طراحی | 3 | طراحی سیستم های دیجیتال، مبانی مدارهای الکتریکی و الکترونیک | - |
۴٠٣۵۴ | طراحی الگوریتم ها | 3 | ساختمان داده ها و الگوریتم ها | - |
۴٠٣۶۴ | طراحی زبان های برنامه سازی | 3 | برنامه سازی پیشرفته | - |
۴٠۴١۵ | نظریه زبان ها و ماشین ها | 3 | ساختمان داده ها و الگوریتم ها | - |
۴٠۴٢٨ | مدیریت پروژه های فناوری اطلاعات | 3 | - | - |
۴٠۴۵٣ | سیستم های بی درنگ | 3 | - | سیستم های عامل |
۴٠۴۶٢ | سیستم های نهفته | 3 | معماری کامپیوتر | - |
۴٠۴٧۴ | مهندسی نرم افزار | 3 | تحلیل و طراحی سیستم ها | - |
۴٠۴٨۴ | طراحی شیءگرای سیستم ها | 3 | تحلیل و طراحی سیستم ها | - |
۴٠۶٣۴ | شبیه سازی کامپیوتری | 3 | آمار و احتمال مهندسی | - |
سیگنال ها و سیستم ها (شماره درس:۴٠٢۴٢)
Signals and Systems
اهداف درس
هدف از اين درس، آشنایی دانش جویان با مدل سازی، توصیف و آنالیز سیگنال ها و سیستم ها در دامنه های زمان و فرکانس از هر دو دیدگاه نظری و عملی است. تمرین های MATLAB علاوه بر تمرین های نظری برای تسلط عملی به مفاهیم مطرح می شوند.
ریز مواد
- مقدمه
- سیگنال های زمان گسسته و پیوسته
- تبدیل ها (Transformation)
- ویژگی ها و انواع سیگنال (odd ،even ،periodic و ...)
- ویژگی های انواع سیستم ها (بدون حافظه، علی، پایدار، خطو، ناوردا با زمان)
- سیستم های خطی ناوردا با زمان Linear Timer-Invariant LTI
- جمع/انتگرال پیچشژ (Convolution) زمان گسسته و پیوسته
- پاسخ ضربه
- معادلات خطی ضریب ثابت (LCCDE) برای توصیف سیستم ها و دیاگرام بلوکی آن ها
- سری فوریه ی سیگنال های متناوب
- پاسخ سیستم های LTI به توابع نمایی مختلط
- نمایش سری فوریه ی سیگنال های متناوب زمان پیوسته و گسسته
- ویژگی های سری فوریه (خطی بودن، جابجایی زمانی Time Shift ،مقیاس کردن زمان و ...)
- ارتباط سری فوریه و سیستم های LTI : تابع سیستم (System Function) و پاسخ فرکانس (Frequency System)
- تبدیل فوریه ی زمان پیوسته
- تبدیل فوریه ی سیگنال های نامتناوب و متناوبویژگی های تبدیل فوریه زمان پیوسته (خطی بودن، جابجایی زمانی و ...)
- ضرب و ضرب پیچشی
- سیستم های توصیف شده با LCCDE
- تبدیل فوریه زمان گسسته
- تبدیل فوریه زمان گسسته سیگنال های نامتناوب و متناوب
- ویژگی های تبدیل فوریه زمان پیوسته (تناوبی بودن، خطی بودن، جابجایی زمانی و ...)
- ضرب و ضرب پیچشی
- سیستم های توصیف شده با LCCDE
- توصیف زمان/فرکانس سیگنال ها و سیستم ها
- فاز/اندازه ی تبدیل فوریه
- فاز/اندازه ی پاسخ فرکانس
- نمودارهای لگاریتم اندازه (Log Magnitude PLost)
- نمودارهای بد (Bode)
- فیلترهای ایده آل و غیر ایده آل
- سیستم های مرتبه اول و دوم زمان پیوسته و گسسته
- توصیف زمان/فرکانس سیگنال ها و سیستم ها
- فاز/اندازه ی تبدیل فوریه
- فاز/اندازه ی پاسخ فرکانس
- نمودارهای لگاریتم اندازه (Log Magnitude Plots)
- نمودارهای بد (Bode)
- فیلترهای ایده آل و غیر ایده آل
- سیستم های مرتبه اول و دوم زمان پیوسته و گسسته
- نمونه برداری
- قضیه ی نمونه برداری
- قطار ضربه
- درون یابی aliasing
- تبدیل لاپلاس
- ناحیه همگرایی
- عکس تبدیل لاپلاس
- نمودار قطب/صفر
- ویژگی ها (خطی بودن، جابجایی زمانی و ...)
- مشتق گیری در زمان و در دامنه s
- انتگرال گیری در زمان
- قضیه مقدار اولیه و نهایی
- علی و پایدار بودن
- سیستم های توصیف شده با LCCDE
- فیلتر butterworth
- نمایش دیاگرام بلوکی
- تبدیل لاپلاس یک بخشی
- تبدیل z
- ناحیه ی همگرایی
- تبدیل معکوس z
- نمودار قطب/صفر
- ویژگی ها (خطی بودن، جابجایی در زمان و ...)
- قضیه مقدار اولیه
- علی و پایدار بودن
- سیستم های توصیف شده با LCCDE
- نمایش دیاگرام بلوکی
- تبدیل z یک بخشی
ارزیابی
- تمرین: ١۵٪
- امتحان میان ترم: ٣۵٪
- امتحان پایان ترم: ۵٠٪
مراجع
[1] Alan V. Oppenheim, Alan V. Willsky, and S. Hamid Nawab. Signals and Systems. 2nd edition,Prentice Hall, 1996.
بازیابی پیشرفته اطلاعات (شماره درس: ۴٠٣٢۴)
Modern Information Retrieval
اهداف درس
در اين درس به معرفی سامانه های بازیابی اطلاعات پرداخته می شود. ابتدا به عملیات شاخص گذاری و مدل بازیابی اطلاعات بولین پرداخته می شود. سپس مدل فضای برداری و نمایش tf-idf مطرح می شود و در مورد تکنیک های سرعت بخشی به امتیازدهی و مرتب سازی اسناد بحث می شود. در ادامه مدل های احتمالاتی بازیابی اطلاعات معرفی می شوند و مفاهیم دسته بندی و خوشه بندی اسناد و همچنین یادگیری ترتیب دهی مطرح می شود. سپس موتورهای جست وجوی وب معرفی و اجزای مهمی نظیر خزشگر٬ تحلیل گراف اسناد و تشخیص اسناد مشابه مورد بررسی قرار می گیرند. در انتها به سامانه های توصیه گر و مفاهیم پیشرفته ی بازیابی اطلاعات اشاره ای می شود
ریز مواد
- مقدمهای بر بازیابی اطلاعات
- معرفی سامانه های بازیابی اطلاعات بولین و نحوه ی شاخص گذاری (indexing)
- پیش پردازش اسناد: عملیات متنی و نرمال سازی واژه ها
- بازیابی اطلاعات به صورت مقاوم (tolerant)
- پرسمان های wild-card
- تصحیح غلط املایی (spelling correction)
- شاخص گذاری بلوکی و توزیع شده (distributed)
- Map-Reduce
- فشرده سازی شاخص
- فشرده سازی دیکشنری
- فشرده سازی شاخص به روش های بایت‐متغیر و گاما
- مدل فضای برداری (Vector Space Model ) و نمایش tf-idf
- امتیازدهی و رتبه بندی اسناد (بهبود زمانی)
- ارزیابی سامانه های بازیابی اطلاعات و معرفی معیارهای ارزیابی
- مدل های بازیابی اطلاعات احتمالاتی
- مدل های زبانی (Language models)
- دسته بندی اسناد
- دسته بند Naïve Bayes
- دسته بندهای خطی
- خوشه بندی اسناد
- خوشه بندی k-means
- خوشه بندهای سلسله مراتبی
- یادگیری رتبه بندی اسناد (learning to rank)
- کاهش ابعاد و تعبیه کلمات
- (LSI) Latent Semantic Indexing
- Word2vec
- موتورهای جستجوی وب
- خزشگر (crawler)
- تشخیص اسناد مشابه (near-duplicate)
- تحلیل گراف لینک ها و پیدا کردن PageRank
- سامانه های توصیه گر (recommender systems)
- روش های مبتنی بر محتوا (content-based)
- روش های پالایش همکارانه (collaborative filtering)
- روش های ترکیبی
- معرفی مباحث پیشرفته
- شخصی سازی (Personalization) بازیابی اطلاعات
- بازیابی اطلاعات در شبͺه های اجتماعی (social networks)
- سامانه های پرسش و پاسخ
- تحلیل تمایل (Sentiment Analysis)
- بازیابی اطلاعات بین زبانی (corss-lingual)
ارزیابی
- آزمون میان ترم: ٢۵٪
- آزمون پایانی: ٣۵٪
- پروژه: ٢۵٪
- آزمون های کوتاه: ١٠٪
- کوئیزها: ۵٪
مراجع
[1] C.D. Manning, P. Raghavan, and H. Schutze. Introduction to Information Retrieval. Cambridge University Press, 2008.
انتقال داده ها (شماره درس: ۴٠٣۴٣)
Data Transmission
اهداف درس
هدف از اين درس، آشنایی دانش جویان با چگونگی انتقال داده ها از طریق محیط های مختلف و به روش های مختلف و مشکلات و چالش های مربوط به هر یک از آن هاست.
ریز مواد
- کانال های ارتباطی (۶ جلسه)
- زوج سیم
- زوج سیم به هم تافته
- کابل هم محور
- موج بر
- فیبر نوری
- لینک نوری فضای آزاد
- لینک مایکروویو
- ماهواره
- انواع مدولاسیون و دمدولاسیون (۴ جلسه)
- مدولاسیون های آنالوگ
- مدولاسیون های دیجیتال
- مدولاسیون های پالس
- نویز، اعوجاج و اثرات آنها (۴ جلسه)
- نویز حرارتی
- نویز الکتریکی ( تداخل الکترومغناطیس و تداخل رادیویی)
- اعوجاج تضعیف
- اعوجاج تأخیر
- سیگنال بازگشتی
- پرش ناخواسته فاز
- اعوجاج هارمونیکی
- اعوجاج انترمدولاسیون
- محوشدگی
- تقسیم کانال ارتباطی (٢ جلسه)
- تقسیم زمانی
- تقسیم فرکانسی
- تقسیم کد
- دسترسی چندگانه (٢ جلسه)
- دسترسی چندگانه با تقسیم زمانی
- دسترسی چندگانه با تقسیم فرکانسی
- دسترسی چندگانه با تخصیص کد
- ظرفیت کانال ارتباطی (٢ جلسه)
- رابطه شانون
- تخصیص بهینه توان
- کدهای تشخیص و تصحیح خطا (٣ جلسه)
- کد آزمایش افزونگی افقی (LRC)
- کد آزمایش افزونگی عمودی (VRC)
- کد آزمایش افزونگی دوبعدی (LRC-VRC)
- کد آزمایش افزونگی دوره ای (CRC)
- کد آزمایش مجموع (Checksum)
- کد همینگ
- فشرده سازی اطلاعات (٢ جلسه)
- فشرده سازی صوت
- کد هافمن
- فشرده سازی در فاکسی مایل
- کلیدزنی (١ جلسه)
- کلیدزنی مداری
- کلیدزنی پیامی
- کلیدزنی بسته ای
- بازده روش های کنترل جریان (٣ جلسه)
- روش توفق و انتظار
- روش ینجره لغزان
- اثر خطا
ارزیابی
- تمرین های نظری: ۴ نمره
- آزمون های میان ترم و پایانی: ١۶ نمره
مراجع
[1] W. Stallings. Data and Computer Communications. Prentice-Hall, 1996.
[2] F. Halsall. Data Communications, Computer Networks, and Open Systems. 4th edition, Addison Wesley, 1996.
[3] A. S. Tanenbaum. Computer Networks. 3rd edition, Prentice-Hall, 1996.
[۴]ادهم صادقی (مترجم)، “اصول ارتباطات داده ها”، انتشارات تیزهوشان سرزمین کهن، ١٣٨۴
آداب فناوری اطلاعات (شماره درس: ۴٠٣۴٧)
Information Technology Ethics
اهداف درس
فناوری اطلاعات به عنوان یک فناوری نو و پرکاربرد، واجد نقاط قوت و ضعف در به کارگیری و فرصت و تهدید برای کاربران است در عین حال به عنوان یک فناوری پر مصرف در حوزه ی حیات فردی و اجتماعی غیر خنثیو تاثیرگذار است. جنبه های حرفه ای فعالیت های آن با گسترش به کارگیری اهمیت ویژه ای یافته است، بنابراین نظیر سایر فناوری ها در تولید، ساخت، به کارگیری مصرف چنانچه از آداب فنی متاثر از اخلاق فناورانه بهره نگیرد، از وجوه گوناگون از جمله توان جذب در زندگی فردی و اجتماعی شهروندان با دشواری مواجه می شود و عملا́ کارایی خود را از دست می دهد. بنابراین مهندسان رایانه و فناوری اطلاعات نظیر سایر مهندسان نیازمند کسب سواد آداب حرفه ای و اخلاق فناوری اطلاعات به شکل منضبط و در قالب درس های دانشگاهی هستند. آشنائی دانشجویان رایانه و فناوری اطلاعات با تحلیل های راهبردی این فناوری جهت شناسایی نقاط قوت و ضعف و فرصت و تهدیدات ناشی از به کارگیری گسترده ی آن، آشنایی با الگوهای مهندسی، حرفه ای و صنفی انجام کار، ضوابط حقوقی و قانونی فعالیت ها، تبعات اخلاقی و حرفه ای اعمال و مسئولیت ها، جرائم و خسارات و مجازات های رایانه ای، حقوق اطلاعاتی و گردش آزاد اطلاعات، حقوق تولید، تکثیر و ابداع محصولات فناوری اطلاعات، مفاهیم حریم شخصی و امنیت ملی و اطلاعات محرمانه و غیرمحرمانه در دسترسی و اشاعه ی آزاد اطلاعات و توانایی برآورد تبعات به کارگیری این فناوری از منظر موازین اخلاقی و معیارهای آدابی و فعالیت در یک محیط رایانشی امن از اهداف این درس است.
ریز مواد
- مقدمات (٢ جلسه)
- اهداف، برنامه ی درسی و توافق بر الگوی تعلیم و چارچوب درس
- مبانی و اصول اخلاق و آداب مهندسی، حرفه ای و فاوا
- نسبت آداب و اخلاق و جایگاه آن ها در قبال قانون (١ جلسه)
- مروری بر تناسبات، تفاوت ها و همسانی های آداب با اخلاق
- موید و مراعی بودن و تعارض ناپذیری آداب در قبال قانون
- پیشینه گرایی قانون و آینده تابی آداب
- پیشینه و انواع نظامات ارزشی اخلاقی حامی آداب و مشخصات عمومی آن ها (۵ جلسه)
- پیشینه ی فلسفی اخلاق و انواع نظام های اخلاقی در غرب
- اخلاق اسلامی، اخلاق ایرانی و ایرانیان
- اخلاق جهانی و قوانین طلایی و عرفی اخلاقی.
- تعارضات، بلاتکلیفی و تنگناهای اخلاق و راه حل های مواجهه با این وضعیت ها (٣ جلسه)
- تنگنای اخلاقی
- تعارض اخلاقی
- بلاتکلیفی اخلاقی
- الگوهای داوری اخلاقی، تناسبات و مدل فرآیندی آنها.
- ماهیت توافقی آداب، ساختار و کاربردها و کارکردهای انواع اسناد آدابی (٢ جلسه)
- تدوین توافقی آسناد آدابی
- تعریف، کاربرد و نحوه ی تدوین اساسنامه ها.
- تعریف، کاربرد ومدل و نحوه ی تدوین منشورهای آدابی.
- تعریف، کاربرد، مدل و نحوه ی تدوین آداب نامه ها.
- مدل های مولد و حامی انواع الگوهای آداب نامه نویسی به ویژه آداب نامه های سنجش پذیر (٢ جلسه)
- اسناد آدابی گروهی.
- اسناد آدابی بنگاهی.
- اسناد آدابی بنگاهی با امکان توفیق سنجی.
- مدل های بهبود اسناد آدابی.
- آداب نامه های فا و کاربردهای آن در حوزه های حرفه ای گری. مهندسی حرفه ای فا و جایگاه نظام مهندسی در حوزه های حرفه ای گری (٢جلسه)
- آداب نامه های حرفه ای.
- مهندسی حرفه ای فا.
- نظامات حرفه ای ومهندسی.
- نطام مهندسی فا، اهداف، کارکردها و ضرورت ها.
- نظامات صنفی، حرفه ای و مهندسی فا در جهان و ایران.
- حق فکری، حق مالی، حق تکثیر و حق اختراع در حوزه فا، قوانین حامی، آداب نامه های مکمل و آینده ی آن ها (٣ جلسه)
- حق مالی و فکری ابداعات.
- حق اختراع و تکثیر ابداعات.
- قوانین حامی در ایران و جهان.
- آداب نامه های حامی حقوق ابداعات.
- آینده ی این حقوق در جهان مجازی.
- ابعاد اخلاقی جامعه اطلاعاتی و مجازی (٣ جلسه)
- گردش آزاد اطلاعات و حقوق شهروندی
- امنیت، شفاف سازی و محرمانگی اطلاعات، آلودگی و تضمین کیفیت اطلاعات.
- آداب خلوت و حریم شخصی در رایا سپر از جمله شبکه های اجتماعی
- حریم شخصی در رایا سپهر و آینده آن.
- متافیزیک واقعیت مجازی و نقد اثرات فا.
- جامعۀ عریان و مقابله با ترس از فناوری.
- زندگی دوم، جهان مجازی، تغییر الگوی ارتباطی و تبعات آن بر نظامات کلان از جمله نظامات آموزشی.
- سایت ها، وب نوشته ها، شبکه های اجتماعی، نیازها و تبعات، دشواری ها و راه حل ها.
- مردم سالاری الکترونیکیو ابعاد آن.
- سواد بهداشت و آداب فا برای همه.
- انواع تخلفات و جرائم رایانه، پلیس اینترنتی، امنیت اجتماعی و شهروندی در رایاسپهر و راه های مقابله (۴ جلسه).
- بد افزارها، ویروس ها، کرم ها، روش ها، حفره ها و اشکال نفوذ
- هکرها، کراکرها، آزاردهنده ها، مجرمین و تروریست های سایبری
- ارزش های پیشگیرانه ی آداب فا در کاهش جرائم و تخلفات رایانه ای
- حمایت از گروه های سنی آسیب پذیر در مواجهه با محتواهای رقمی آسیب رسان.
- قوانین جرائم رایانه ای در ایران و جهان و حوزه های فردی، اجتماعی و ملی آسیب.
- دلایل رقمی، کارشناسی رسمی فا و لزوم مشی های امنیتی سازمانی.
- امنیت در بنگاه ها، سازمان های عمومی، خدمات و سامانه های الکترون کیو نحوه ی تامین آن.
- نرم افزارهای متن باز، انواع مجوزهایی آن و حل دشواری های مالکیت ارزش افزای محصولات متکامل و سهم شالوده سازان.
- حفظ امنیت با پایش گسترده یا حریم شخصی ناامن.
- انواع قوانین فا در ایران و نقد آن ها.
- کیفیت زندگی و نقش فا و آداب فای سبز در زندگی اول و دوم رایانه ای و بازیافت ابزار مستهلک رایانه ای.
- تازه های آداب فناوری اطلاعات (٢ جلسه)
- بی طرفی شبکه
- انسان دو زیست معاصر و واقعیت مجازی، واقعیت افزوده و زندگی دوم.
- استعارۀ اینفورگ و انقلاب چهارم لوچیانو فلوریدی
- اخلاق شزان (NBIC)
ارزیابی
- تمرین های عملی (فهم مطلب و حل مسئله): ۶ نمره
- آزمون های میان ترم و پایانr: ١٢ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] George Reynolds. Ethics in Information Technology. THOMSON , 2011.
[2] Luciao Floridi. The Fourth Revolutions: how the infosphere is reshaping human reality. OXFORD University Press, 2014.
[3] Luciano Floridi. Information and Computer Ethics. The Cambridge University Press, 2010.
[4] IBO VAN DE POEL. Ethics ,Technology, and Engineering. WILEY-BLACKWELL, 2011.
[5] Harris, M. J. Rabins, and C. E. Harris. Engineering Ethics: Concepts & Cases. THOMSON, 2004.
[6] M. W. Martin. Ethics in Engineering. Mc Graw Hill, 2005.
[7] Duncan Langford. Internet Ethics. MACMILLAN PRESS LTD, 2000.
(شماره درس: ۴٠٣۵٣) VLSI طراحی
VLSI Design
اهداف درس
این درس روش های طراحی، تحلیل و ساخت سیستم های VLSI را با تمرکز بر طراحی سطح ترانزیستوری ارائه می دهد.
ریز مواد
- مروری بر مدارهای VLSI
- محک های مدارهای VLSI
- سطوح تجرید
- مراحل ساخت تراشه و پروسه فوتولیتوگرافی
- پروسه جانمائی
- قوانین طراحی
- عیوب و مشکلات ساخت تراشه
- نمودار میله ای
- ویژگیهای ترانزیستور MOS
- ویژگی جریان‐ولتاژ ترانزیستورهای nMOS و pMOS
- پاسخ DC
- اثر بدنه
- اثرChannel Length Modulation
- نشت جریان و جریان زیر آستانه
- Latch-up اثر
- المان های پارازیت ترازیستور MOS
- مقدمه ای بر اتصالات در تراشه
- خازن و مقاومت سیم
- سیم بندی و Via
- طراحی گیت منطقی و مدار ترکیبی
- منطق SCMOS
- منطق Pseudo-nMOS
- منطق دومینو
- منطق سوئیچ
- منطق DCVS
- محاسبات توان مصرفی
- توان مصرفی ایستا و پویا
- محاسبه تاخیر
- Logical effort
- Branch effort
- Path delay
- عناصر ترتیبی
- قفل ایستا و پویا
- ساختار کلاک
- ریز مواد بخش
- عناصر ریاضی و منطقی
- جمع کننده ها
- ضرب کننده ها
- شیفت دهنده ها
- ALU
- Floorplanning
- آزمون پذیری مدارهای VLSI
ارزیابی
- تمرین های نظری: ٣ نمره
- آمون های میان ترم و پایانی: ١۵ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] Wayne Wolf. Modern VLSI Design, System-on-Chip Design. 3rd edition, Course Handouts, 2004.
[2] J. M. Rabaey, A. Chandrakasan, and B. Nikolić. Digital Integrated Circuits, A Design Perspective.Course Handouts, 2005.
[3] N. H. E. Weste and D. Harris. CMOS VLSI Design, A Circuits and Systems Perspective. CourseHandouts, 3rd edition, Addison-Wesley, 2005
طراحی الگوریتم ها (شماره درس: ۴٠٣۵۴)
Design of Algorithms
اهداف درس
هدف از اين درس، آشنایی دانش جویان با روش های متداول در طراحی الگوریتم های کارا برای مسائل مختلف است. در ارائه ی مطالب، بر تحلیل کارایی الگوریتم ها و اثبات درستی آن ها تأکید خواهد شد. همچنین، موضوعات مهمی از نظریه ی الگوریتم ها همچون پیچیدگی محاسباتی، شبکه های شار و الگوریتم های گراف در این درس ارائه خواهند شد. همچنین شما عزیزان برای آشنایی بیشتر با طراحی الگوریتم میتوانید به صفحه بررسی و معرفی طراحی الگوریتمآموزش طراحی الگوریتم به زبان سادهدرس طراحی الگوریتم یکی از مهمترین و بنیادیترین دروس رشته کامپیوتر است. هدف از این درس، معرفی روشهای مختلف طراحی الگوریتمها برای حل مسائل گوناگون است، در این صفحه به معرفی و آموزش طراحی الگوریتم پرداخته شده است. مراجعه کنید.
ریز مواد
- مقدمات و مسائل نمونه (٢ جلسه)
- حل پذیری، تحلیل الگوریتم ها، زمان های اجرا
- بزرگ ترین زیردنباله ی متوالی، مسئله ی ٣‐مجموع
- الگوریتم های مبتنی بر استقرا (١ جلسه)
- ارزیابی چندجمله ای ها، نگاشت يک به يک ،ستاره ی مشهور
- تقسیم و حل (٢ جلسه)
- محاسبه ی توان، محاسبه ی روابط بازگشتی، نزدیک ترین زوج نقاط
- الگوریتم استراسن برای ضرب ماتریس ها، تبدیل سریع فوریه
- الگوریتم های حریصانه (٣ جلسه)
- خرد کردن پول، مسائل زمان بندی، کوله پشتی کسری
- فشرده سازی: کدگذاری هافمن
- تطابق پایدار، الگوریتم گیل‐شاپلی، قضایای مرتبط
- برنامه ریزی پویا (۴ جلسه)
- اعداد فیبوناچی، زمان بندی بازه های وزن دار، خرد کردن پول
- ضرب زنجیره ی ماتریس ها، کوله پشتی، تراز دنباله ها
- بزرگ ترین زیردنباله ی مشترک، بزرگ ترین زیردنباله ی افزایشی
- محاسبه ی مجموعه ی مستقل روی درخت، درخت دودویی جست وجوی بهینه
- جست وجوی فضای حالت (٢ جلسه)
- روش پس گرد، مسئله ی هشت وزیر، مجموع زیرمجموعه ها
- انشعاب و حد، فروشنده ی دوره گرد، درخت بازی، هرس آلفا‐بتا
- الگوریتم های گراف (٣ جلسه)
- درخت فراگیر کمینه: الگوریتم های کروسکال و پریم
- هرم فیبوناچی، تحلیل سرشکن برای کاهش کلید
- کوتاه ترین مسیر بین تمام رأس ها: الگوریتم های فلوید‐وارشال و جانسون
- تطابق رشته ها (٢ جلسه)
- روش مبتنی بر اثر انگشت، الگوریتم رابین‐کارپ
- تطابق رشته به وسیله ی اتوماتا: الگوریتم کنوث‐موریس‐پرت
- شبکه های شار (٣ جلسه)
- شار بیشینه و برش کمینه: الگوریتم فورد‐فالکرسن
- بهبود الگوریتم فورد‐فالکرسن، بهبودهای ادموندز و کارپ
- گونه ها و کاربردها: تطابق در گراف دوبخشی، مسیرهای مجزا، گرد کردن ماتریس
- برنامه ریزی خطی (٢ جلسه)
- فرم استاندارد، مدل سازی مسائل با برنامه ریزی خطی
- الگوریتم سیمپلکس برای حل برنامه ریزی خطی
- پیچیدگی محاسبات (٣ جلسه)
- کاهش چندجمله ای، مسائل صدق پذیری
- رده ی ان پی، اثبات ان پی ‐تمام بودن یک مسئله، قضیه ی کوک
- دور همیلتنی، رنگ آمیزی گراف، مجموع زیرمجموعه ها
- الگوریتم های تقریبی (٢ جلسه)
- پوشش راسی، فروشنده ی دوره گرد، سختی تقریب
- طرح های تقریبی چندجمله ای، مسئله ی کوله پشتی
ارزیابی
- سه تمرین نظری (٣ نمره)
- سه تمرین برنامه نویسی (٣ نمره)
- آزمون میان ترم (٧ نمره)
- آزمون پایانی (٧ نمره)
- یک مسابقه به سبک ای سی ام (١ + نمره)
مراجع
[1] J. Kleinberg and E. Tardos. Algorithm Design. Addison Wesley, 2005.
[2] T. Cormen, C. Leiserson, R. Riverst, and C. Stein. Introduction to Algorithms. 3rd edition, MIT Press, 2009.
[3] U. Manber. Introduction to Algorithms: A Creative Approach. Addison-Wesley, 1989.
[4] G. Brassard, P. Bratley. Algorithmics: Theory and Practice. Prentice-Hall, 1988.
طراحی زبان های برنامه سازی (شماره درس: ۴٠٣۶۴)
Design of Programming Laguages
اهداف درس
اهداف اصلی این درس عبارتند از: ١) مروری بر سیر طبیعی تحولات مفاهیم و روش های طراحی و پیاده سازی نسل های مختلف زبان های برنامه سازی به روشی تجربی و گام به گام، ٢) معرفی روش های مهندسی زبان های برنامه سازی در مراحل طراحی و پیاده سازی به کمک زبان های تغییرپذیر یا قابل برنامه سازی به خصوص با تاکید بر اهمیت طراحی و پیاده سازی زبان های ویژه دامنه، ٣) آشنایی با پیاده سازی مفسرها به ویژه بر بستر ماشین های مجازی و ۴) مروری بر اصول و مسائل مرتبط با طراحی زبان های برنامه سازی و همچنین روش ها و ساختارهای داده ای به کار رفته در پیاده سازی یا محقق کردن محیط برنامه نویسی.
ریز مواد
- مقدمه
- تاریخچه تکاملی زبان های برنامه سازی و معرفی برخی زبان های مهم از منظر تحولات تاریخی
- معرفی مقایسه ای سنت های اصلی برنامه سازی (سنت های برنامه سازی امری‐رویه ای، شی گرا، برنامه سازی مبتنی برقاعده و سنت برنامه سازی توصیفی‐تابعی ) از منظر نگاه آن ها به مفهوم و تعریف برنامه.
- تفسیر یا ترجمه
- مقایسه مفهوم تفسیر و ترجمه هم از منظر طراحی زبان و هم از منظر نحوه و مسائل مرحله ی پیاده سازی
- مهندسی زبان
- آشنایی با زبان ها و ابزارهای موجود برای ایجاد امکان طراحی زبان های ویژه ی دامنه و پیاده سازی کارا و سریع مفسر آن ها. پیشنهاد خاص: معرفی و تمرین عملی کار با ابزار برنامه پذیر DrRacket.
- برنامه سازی تابعی
- مروری بر مفاهیم اصلی برنامه نویسی تابعی و حساب لامبدا همراه با تمرینات و پروژه های عملی. زبان پیشنهادی Scheme (بر اساس نحو و معناشناسی کتاب Friedman ) یا Racket بر (اساس نحو و معناشناسی کتاب Krishnamurthi ). در واقع برداشتی امروزین از زبان Lisp بر بسترهای برنامه پذیر (معرفیی مختصری از امکانات برنامه سازی تابعی زبان Java ویرایش 8 به بعد و تمرینی عملی بر آن نیز برای علاقه مند سازی دانشجویان توصیه می شود)
- طراحی تکاملی یک زبان برنامه نویسی و پیاده سازی گام به گام مفسر آن
- زبان حاوی عبارات محاسباتی (بدون اثر جنبی حافظه ای)
- افزودن رویه ها(زیربرنامه های) غیربازگشتی و سپس بازگشتی به زبان و مفسر آن
- افزودن مفاهیم حوزه ی تعریف و دامنه اعتبار متغیرها به زبان و مفسر آن
- افزودن امکان تاثیر بر مقادیر حافظه (وجود متغیر از نوع ارجاع دهنده یا آدرس) به زبان و مفسر آن
- افزودن مفهوم نوع دار بودن متغیرها به زبان و مفسر آن
- ایجاد امکان تعریف مادول، شی و کلاس (ایجاد امکان برنامه نویسی مادولار و شی گرا) در زبان طراحی شده و پیاده سازی مفسر آن.
- مباحث تکمیلی منتخب
- معرفی اجمالی برخی زبا ن های برنامه سازی مطرح مانند ML و برداشت های بعدی آن، Scala ،Haskell و F#
- مروری بر نیازمند هایی از سایر زمینه ها که بر طراحی و پیاده سازی زبان ها تاثیر می گذارند مانند نیازمندی های
- برنامه سازی موازی یا هم روند، بی درنگ بودن، تحت وب بودن و مهندسی نرم افزار مولفه گرا یا سرویس گرا.
- مقدمه ای بر معناشناسی زبان های برنامه سازی و استدلال مبتنی بر آن
- معناشناسی عملیاتی
- معناشناسی ارجاعی
- معناشناسی اصل موضوعی (منطق هور)
ارزیابی
- آزمون نیم ترم (%٢۵ کل نمره)
- آزمون پایان ترم (%۴٠ کل نمره)
- تمرین: شامل ١) تمرینات برنامه نویسی تابعی ٢) تمرینات گام به گام طراحی مفسر ٣) تمرینات نظری (%٢٠ کل نمره)
- پروژه ( %١۵ کل نمره)
مراجع
[1] D. P. Friedman, M. Wand. Essentials of Programming Languages. 3rd edition, MIT Press, 2008.
[2] S. Krishnamurthi. Programming Languages: Application and Interpretation. 2nd edition, 2017.
[3] M. Felleisen, R. B. Findler, M. Flatt, S. Krishnamurthi, E. Barzilay, J. McCarthy, S. Tobin-Hochstadt. A Programmable Programming Language. Communications of the ACM, Vol. 61, No. 3, Pp. 62-71, March 2018.
[4] Racket programming language and its toolkits
نظریه زبان ها و ماشین ها (شماره درس: ۴٠۴١۵)
Theory of Machines and Languages
اهداف درس
این درس درباره جنبه های نظری رشته مهندسی و علوم کامپیوتر است. مباحث مورد بررسی شامل مدل های مختلف محاسباتی، توانایی محاسباتی این مدل ها، خواص محاسباتی آن ها و کاربردهای آن ها است. دیگر مباحث شامل مفاهیم محاسبه پذیری، تصمیم پذیری و تز چرچ و تورینگ در مورد الگوریتم هاست.
ریز مواد
- مباحث مقدماتی (۴ جلسه)
- منطق گزاره ای، منطق مسندی، سیستم اثبات، نظریه ی مجموعه ها، پارادوکس راسل، مجموعه های شمارا و ناشمارا، زبا ن ها و گرامرها.
- ماشین های حالت متناهی (٨ جلسه)
- پذیرنده های متناهی قطعی، پذیرنده های متناهی غیرقطعی، زبان های منظّم، عبارات منظّم، گرامرهای راستگرد خطّی، گرامرهای چپگرد خطّی، گرامرهای منظّم، گرامرهای خطّی، زبان های نامنظّم، لم پومپینگ برای زبان های منظّم.
- زبان های مستقل از متن (١٠ جلسه)
- گرامرهای مستقل از متن، زبان های مستقل از متن، اشتقاق چپگرد، اشتقاق راستگرد، درخت اشتقاق، گرامرهای مبهم، گرامرهای نامبهم، زبان های ذاتاً مبهم، زبان های نامبهم، ساده سازی گرامرهای مستقل از متن، گرامرهای مستقل از متن به صورت طبیعی چامسکی ،گرامرهای مستقل از متن به صورت طبیعی گرایباخ، مسأله عضویت، الگوریتم CYK ،ماشین های پوش دان، هم ارزی ماشین های پوش دان و گرامرهای مستقل از متن، ماشین های پوش دان قطعی، زبان های مستقل از متن قطعی، زبان های غیر مستقل از متن، لم پومپینگ برای زبان های مستقل از متن.
- محاسبه پذیری (٨ جلسه)
- ماشین تورینگ، تز چِرچ و تورینگ، تصمیم پذیری و تصمیم ناپذیری، محاسبه پذیری و محاسبه ناپذیری، مسئله توقّف، مسئله تخصیص پوست، پیچیدگی محاسباتی، رده پیچیدگی P ،رده پیچیدگی NP ،مسائل NP کامل، مسائل NP سخت.
ارزیابی
- تمرینات هفتگی (٣٠٪)
- کوییزها (۴۵٪)
- آزمون پایان نیمسال(٢۵)
مراجع
[1] M. Sipser. Introduction to the Theory of Computation. 3rd edition, Cengage Learning, 2013.
[2] P. Linz. An introduction to formal languages and automata. 3rd edition, Jones and Bartlett Publishers,2001.
[3] J. E. Hopcroft, R. Motwani, and J. D. Ullman. Introduction to automata theory, languages, andcomputation. 2nd edition, Addison-Wesley, 2001.
[4] J. P. Denning, J. B. Dennis, and J. E. Qualitz. Machines, languages, and computation. Prentice-Hall,1978.
[5] J. E. Hopcroft and J. D. Ullman. Introduction to automata theory, languages, and computation.Addison-Wesley, 1979.
[6] P. J. Cameron. Sets, Logics and Categories. Springer, 1998.
مدیریت پروژه های فناوری اطلاعات (شماره درس: ۴٠۴٢٨)
Information Technology Project Management
اهداف درس
کارشناسان فناوری اطلاعات در سطوح مدیریت و اجرا با انواع پروژه هایی سروکاردارند که ماهیت تلفیقی نرم افزاری، سخت افزاری، ارتباطی و اطلاعاتی دارد و گروه یا گروه های متعددی دست اندرکار تعریف، تولید، تحویل و اجرای آن ها هستند. مدیریت این پروژه ها دشواری هایی دارد که در تلفیق با الگوهای برون سپاری دوچندان می شود. توجیه گر ضرورت درس مدیریت پروژه های فناوری اطلاعات این نیازها و ضرورت ارتقاء مفاهیم موجود مدیریت پروژه و مدیریت پروژه های نرم افزاری به مدیریت پروژه های فناوری اطلاعات یا انفورماتیکی است. هدف این درس آشنایی دانشجویان رشته ی فناوری اطلاعات با گونه های نو و ارتقاء یافته مدیریت پروژه و مدیریت پروژه های نرم افزاری در قالب مدیریت پروژه های انفورماتیکی یا فناوری اطلاعاتی است. در این درس دانشجویان فرا می گیرند چگونه در جایگاه مجری، کارفرما، مشاور و یا ناظر در امر مدیریت پروژه های فناوری اطلاعات از تعریف تا اجرا و از تحویل تا نگهداری فعالیت کنند. از اهداف دیگر این درس کسب مهارت دانشجویان با ابزارها و نرم افزارهای رایج مدیریت پروژه و کشف قابلیت های آن ها برای مدیریت پروژه های انفورماتیکی است.
ریز مواد
- مقدمات (٢ جلسه)
- اهداف، برنامه ی درسی و توافق بر الگوی تعلیم و چارچوب درس
- مفاهیم بنیادی مدیریتی
- مروری بر مدیریت پروژه های فناوری اطلاعات (١ جلسه)
- موارد کاری (کسب و کاری) (٢ جلسه)
- بیانیه ی پروژه (٢ جلسه)
- گروه پروژه (٢ جلسه)
- طرح مدیریت دامنه (٢ جلسه)
- ساختارشکست کار (٢ جلسه)
- زمان بندی و بودجه بندی پروژه ها (٢ جلسه)
- نرم افزارهای مدیریت پروژه و وبگاه ها و داشبوردها (١ جلسه)
- استاندارد بدنه های دانشی مدیریت پروژه (١ جلسه)
- طرح مدیریت خطر پروژه (٢ جلسه)
- طرح ارتباطات پروژه (٢ جلسه)
- طرح کیفیت پروژه های فا (١ جلسه)
- مدیریت تغییرات، مقاومت ها و تعارضات (٢ جلسه)
- مدیریت تدارک و برون سپاری پروژه ها (١ جلسه)
- رهبری و آداب پروژه (٢ جلسه)
- طرح پیاده سازی و پایان دهی و پروژه ها (١ جلسه)
- مدل بلوغ و تکاملی وروش چابک مدیریت پروژه های فناوری اطلاعات (١ جلسه)
ارزیابی
- تمرین های مهارتی (در قالب اعمال یک مدیریت شبیه سازی شده بر یک پروژه اطلاعات): ۶ نمره
- آزمون های میان ترم و پایانی: ١٢ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] Jack T. Marchewka. Information Technology Project Management. WILEY, 2014.
سیستم های بی درنگ (شماره درس: ۴٠۴۵٣)
Systems Time-Real
اهداف درس
هدف از این درس، آشنا کردن دانشجویان با مفاهیم بی درنگی و اجرای به موقع کارها است، به گونه ای که بتوانند سامانه هایی را طراحی یا تحلیل کنند که نه تنها پاسخ صحیح را حساب می کنند بلکه با وجود کارها و وظایف متنوع تناوبی و غیر تناوبی، آن ها را به موقع انجام می دهند. شناخت شرایط تحقق بی درنگی و زمان بندی درست و اولویت بندی کارها از دیگر اهداف درس است.
ریز مواد
- مقدمه ای بر سیستم های بی درنگ و تقسیم بندی ها و کاربردهای آن
- انگیزه ها، تعاریف، انواع وظایف (نرم یا سخت، غیر تناوبی یا متناوب)، اجزای یک سیستم بی درنگ نمونه
- مدل سازی و وارسی ویژگی های سیستم های بی درنگ (به کمک شبکه پتری)
- بررسی و مدل سازی همروندی، به اشتراک گذاری منابع، زنده و محدود بودن، اجرا یا کار زماندار، برآورد و ارزیابیزمان اجرا و رعایت موعد و محدودیت های زمانی
- زمان بندی وظایف دوره ای (Periodic) در تک پردازنده
- زمان بندی وظایف با اولویت های ایستا و پویا (EDF ،monotonic Rate…)
- بررسی معیارها و شروط زمان بندی پذیری (Schedulability) در سیستم های بی درنگ
- وظایف انحصاری (Non preemptive) و غیر انحصاری (یا قابل انقطاع: Preemptive)
- زمان بندی وظایف غیر دوره ای (Aperiodic) و پراکنده (Sporadic) و حالت زمان بندی ترکیبی با وظایف دوره ای در تک پردازنده
- شروط زمانبندی پذیری، روش های توزیع وظایف
- ارائه ی انواع الگوریتم های زمان بندی (Sporadic ،Slack stealing ،Deferred server ،Polling server،FCFS…)
- اشاره ی اجمالی به زمان بندی وظایف در چندپردازنده ها
- بررسی اجمالی مفهوم و نقش قابلیت اطمینان، قابلیت دسترسی و روش های تحمل پذیری اشکال در سیستم های بی درنگ
- ارتباطات بی درنگ
- محدودیت های زمانی در ارتباطات و پروتکل های ارتباطی بی درنگ در شبکه
ارزیابی
- تمرین های نظری: ٢ نمره
- آزمون های میان ترم و پایانی: ١۵ نمره
- پروژه ی عملی: ٣ نمره
مراجع
[1] G. C. Buttazzo. Hard real-time computing systems: predictable scheduling algorithms and applications. 3rd edition, Springer, 2011.
[2] J. W. S. Liu. Real-Time Systems. Prentice Hall, 2000.
[3] Ph. A. Laplante. Real time systems design and analysis. 3rd edition, IEEE Press & Wiley InterScience, 2004.
[4] C. M. Krishna and Kang G. Shin. Real-Time Systems. McGraw-Hill, 1997.
[5] Some real-time related conference and journal papers.
سیستم های نهفته (شماره درس: ۴٠۴۶٢)
Embedded Systems
اهداف درس
سیستم نهفته یک سیستم کامپیوتری است که درون سیستم دیگری که معمولا غیرکامپیوتری است تعبیه (نهفته) شده است و وظایفی از جمله مدیریت و کنترل سیستم بزرگتر را بر عهده دارد. آمارهای موجود از کاربرد کامپیوترها نشان می دهد که اکثریت کامپیوترها در دنیا (بیش از ٨٠ درصد) به شکل نهفته هستند. همچنین سیستم های نهفته پایه ی مفاهیم مهمی در مهندسی کامپیوتر مانند سیستم های سایبرفیزیکی و اینترنت اشیاء هستند. هدف از این درس آشنایی با طراحی و تحلیل سیستم های نهفته است. همچنین در این درس دانشجویان با معماری، ساختار سخت افزاری، نرم افزار، و چگونگی برنامه نویسی برای سیستم های نهفته آشنا می شوند.
ریز مواد
- مقدمه (١ جلسه)
- معرفی سیستم های نهفته، مشخصات سامانه های نهفته، اهمیت سامانه های نهفته، کاربردهای سامانه های نهفته، حسگرها و فعال سازها، سیستم های Reactive
- میکروکنترلرها به عنوان عنصر کلیدی سامانه های نهفته (٢ جلسه)
- معرفی میکروکنترلر، دلایل اهمیت میکروکنترلر در سامانه های نهفته، معماری میکروکنترلر، تبدیل آنالوگ به دیجیتال، پورت ها، ارتباطات سریال در میکروکنترلرها، یک مثال از سیستم های کنترلی خودکار
- مدیریت منابع و وظایف در میکروکنترلرها (٣ جلسه)
- پیاده سازی نرم افزاری یک سیستم نهفته، نقش حلقه های نامحدود،Emulator، Remote ،Debugger، نحوه ی برقراری ارتباط با میکروکنترلر از محیط پیرامون، حافظه در میکروکنترلرها
- مروری بر بسترهای سخت افزاری رایج سیستم های نهفته (۶ جلسه)
- مروری بر بردهای سخت افزاری Arduino و Raspberry Pi به عنوان بسترهای سخت افزاری رایج کاربردهای نهفته، مقایسه و کاربردهای آن ها، مروری بر روش های توسعه ی نرم افزار برای این بسترها
- برنامه نویسی مبتنی بر اتوماتا (۴ جلسه)
- مفهوم برنامه ریزی مبتنی بر اتوماتا، کاربرد برنامه ریزی مبتنی بر اتوماتا در توصیف سیستم های Reactive، ساختار سلسله مراتبی در برنامه ریزی مبتنی بر اتوماتا، مزایای برنامه ریزی مبتنی بر اتوماتا برای طراحی سیستم های نهفته، توصیف واکنش به صورت Mealy و Moore در برنامه ریزی مبتنی بر اتوماتا
- زبان StateCharts (٣ جلسه)
- MoC در StateCharts، توصیف سلسله مراتبی در Or-Super-State، StateCharts و AND-Supers-state طراحی پیمانه ای درStateChart ،مثال از توصیف یک سیستم نهفته با StateChate ( سیستم منشی تلفنی) Timer ها در stateChat اهمیت timer ها در توصیف بی درنگی، توصیف رخداد، شرط و واکنش درStateChat ،مراحل شبیه سازی(اجرا)کدStateChat
- بی درنگی، انرژی مصرفی و قابلیت اطمینان در سیستم های نهفته (۴ جلسه)
- روش های سطح سیستم کاهش انرژی مصرفی در سیستم های نهفته، روش های افزونگی زمانی بهبود قابلیت اطمینان در سیستم های نهفته، اهمیت بی درنگی در سیستم های نهفته، مروری بر مصالحه میان بی درنگی، انرژی مصرفی و قابلیت اطمینان در سیستم های نهفته
- معرفی اینترنت اشیا و نقش تعیین کننده ی سامانه های نهفته در شکل گیری آن (٧ جلسه)
- بررسی تعاریف ارائه شده برای اینترنت اشیاء، تفاوت اینترنت اشیا با سامانه های سایبرفیزیکی و شبکه های حسگر بی سیم، بررسی تاریخچه و خواستگاه اینترنت اشیا، کاربردها در دنیای نوین، معماری های اینترنت اشیا و تبیین جایگاه هر کدام از لایه ها با تأکید بر لایه ی شبکه، نقش و اهمیت ارتباطات در سامانه های اینترنت اشیا، معرفی ارتباطات D2D و چالش های پیرامون آن، اهمیت استفاده مناسب از پهنای باند در اینترنت اشیا، معرفی NBIOT، معرفی Flashlinq ،معرفی و بررسی جایگاه نسل پنجم ارتباطات (5G) در ارتباطات اینترنت اشیا، بررسی چالش های اینترنت اشیا، چالش انرژی و توان مصرفی در گره های موجود در زیرساخت، اشاره به مباحث مطرح در امنیت و حریم خصوصی در اینترنت اشیا، روش های ارزیابی انرژی مصرفی در کاربردهای اینترنت اشیاء
ارزیابی
- تمرین ها: ٣ نمره
- پروژه: ٢ نمره
- آزمون های میان ترم و پایان ترم: ١٣ نمره
- آزمونک ها: ٢ نمره ی تشویقی
مراجع
[1] Peter Marwedel. Embedded System Design. 1st edition, Springer, 2006.
[٢].1387احمد کاردان و سید امیر اصغری. “کاربرد سیستم های نهفته در اندازه گیری و کنترل”، کیان رایانه ی سبز
[3] Adrian McEwen and Hakim Cassimally. Designing the Internet of Things. 1st edition, Wiley, 2013.
[4] Online documents on Raspberry Pi and Arduino.
مهندسی نرم افزار (شماره درس: ۴٠۴٧۴)
Software Engineering
اهداف درس
هدف از این درس پرداختن به نکات مهندسی است که در کلیه مراحل تولید نرم افزار باید رعایت گردد. دانشجویان با مباحث ساخت نرم افزار(برنامه سازی)، تجزیه و تحلیل نیازمندی ها و طراحی نرم افزار در درس های قبلی آشنا شده اند. در این درس هدف آموزش روش جدیدی برای تجزیه و تحلیل نیازها و یا طراحی نرم افزار نیست، بلکه هدف آموزش تولید نرم افزار به صورت یک محصول مهندسی است، مانند سایر محصولاتی که در سایر رشته های مهندسی تولید می گردد. در این درس ابتدا تفاوت محصولی که به روش مهندسی تولید می گردد با محصولی که به روش هنری تولید می شود بیان می شود، سپس انتظاراتی که یک محصول مهندسی باید برآورده سازد تشریح می گردد. در ادامه درس با تاکید بر روش های مهندسی تولید از جمله مدل سازی، قابل اندازه گیری و ارزیابی بودن، درستی یابی و اعتبارسنجی محصولات بینابینی، مروری بر دست آوردهای علمی در این زمینه در کلیه مراحل تولید نرم افزار انجام می شود. با توجه به اینکه در درس های قبلی دانشجویان با مباحث توصیف صوری نیازها، اندازه گیری، تخمین و آزمون کم تر آشنا شده اند در این درس این فصول مورد تاکید بیشتر قرار می گیرد. در انتها فعالیت های حمایتی از جمله مدیریت پروژه، زمان بندی، مدیریت ریسک ،مدیریت پیکربندی و تضمین کیفیت با تاکید بر تاثیر آن ها در تولید نرم افزار به صورت مهندسی مرور می شود.
ریز مواد
- مقدمه (٢ جلسه)
- فرایند‐مدل (٢ جلسه)
- تولید چابک (١ جلسه)
- درک نیازها (١ جلسه)
- روش های صوری (۵ جلسه)
- مفاهیم طراحی (١ جلسه)
- طراحی معماری (١ جلسه)
- طراحی واسط (١ جلسه)
- طراحی مبتنی بر الگو (١ جلسه)
- استراتژی های آزمون (١ جلسه)
- روش های آزمون (۴ جلسه)
- اندازه گیری محصول (١ جلسه)
- اندازه گیری فرایند و پروژه (١ جلسه)
- برآورد (١ جلسه)
- مفاهیم کیفیت (١ جلسه)
- روش های مرور (١ جلسه)
- تضمین کیفیت (١ جلسه)
- مدیریت پیکربندی (١ جلسه)
- مدیریت پروژه (١ جلسه)
- زمانبندی (١ جلسه)
- مدیریت ریسک (١ جلسه)
ارزیابی
- ٣ تمرین نظری‐عملی در طول ترم ( ٢٠ ٪کل نمره)
- ٣ آزمون تستی از مطالب درس در طول ترم (٣٠ ٪کل نمره)
- حدود ۵ آزمون کوچک در طول ترم (١٠ ٪کل نمره (نمره اضافه))
- آزمون نهایی تشریحی و تستی (۵٠ ٪کل نمره)
- دانشجویان به طور اختیاری سمیناری را از فصولی از کتاب که تدریس نمی شود و موضوعات مرتبط با مطالب درس پس از گرفتن تایید ارایه می نمایند (١٠ ٪کل نمره (نمره اضافه)).
مراجع
[1] R. S. Pressman. Software Engineering: A Practitioner’s Approach. 8th edition, McGraw-Hill, 2014.
[2] P. Ammann and J. Offutt. Introduction to Software Testing. Cambridge University Press, 2008.
[3] J. Woodcock and J. Davies. Using Z: Specification, Refinement, and Proof. Prentice-Hall, 1996.
طراحی شیءگرای سیستم ها (شماره درس: ۴٠۴٨۴)
Object-Oriented systems Design
اهداف درس
هدف این درس، آشنا کردن دانشجویان کارشناسی نرم افزار با مفاهیم، اصول و روش های تحلیل و طراحی شیءگرای سیستم های نرم افزاری است. دانشجویان ضمن آشنایی کامل با یک متدولوژی مطرح تحلیل و طراحی شیءگرا (نسل سوم)، با الگوهای طراحی GoF و چگونگی به کارگیری آن ها نیز آشنا خواهند شد.
ریز مواد
- مقدمه ‐ مروری بر شیءگرایی و معرفی تاریخچه تکاملی تحلیل و طراحی شیءگرا (١ جلسه)
- مروری بر زبان مدل سازی یکپارچه (UML) (۴ جلسه)
- مراحل و جریان های کاری در USDP
- مراحل چهارگانه (٣ جلسه)
- جریان کاری خواسته ها ‐ شناسایی و مدل سازی موارد کاربرد (٣ جلسه)
- جریان کاری تحلیل
- شناسایی و مدل سازی اشیاء و کلاس های تحلیل (٢ جلسه)
- شناسایی و مدل سازی روابط بین اشیاء و کلاس های تحلیل (٢ جلسه)
- بسته های تحلیل (١ جلسه)
- محقق سازی موارد کاربرد در تحلیل (٢ جلسه)
- مدل سازی فعالیت ها (٢ جلسه)
- جریان کاری طراحی
- شناسایی و مدل سازی اشیاء و کلاس های طراحی (١ جلسه)
- پالایش روابط (١ جلسه)
- واسط ها و مؤلفه ها (١ جلسه)
- محقق سازی موارد کاربرد در طراحی (١ جلسه)
- جریان کاری پیاده سازی (١ جلسه)
- الگوهای طراحی
- اصول و قواعد طراحی: اصول ششگانه پایه، الگوهای GRASP ،طراحی بر اساس قرارداد (١ جلسه)
- الگوهای طراحی G
- الگو های آفرینش: Singleton ،Prototype ،Builder ،Abstract Factory ،Factory Method (١ جلسه)
- الگو های ساختاری: Proxy ،Facade ،Decorator ،Composite ،Bridge ،Adapter (١ جلسه)
- الگو های رفتاری Visitor ،Strategy ،State Observer ،Memento ،Mediator ،Iterator ،Chain of Responsibility (٢ جلسه)
ارزیابی
- آزمون: آزمون های میان ترم و پایان ترم (۶٠ ٪کل نمره)
- تمرین و پروژه: تمرینات در قالب یک پروژه درسی تحلیل و طراحی، تعریف شده و بتدریج در طول نیمسال انجام و تحویل داده می شوند (۴٠ ٪کل نمره)
مراجع
[1] J. Arlow and I. Neustadt. UML 2 and the Unified Process. 2nd edition, Addison-Wesley, 2005.
[2] H. Gomaa. Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. Cambridge University Press, 2011.
[3] G. Booch, R. A. Maksimchuk, M. W. Engel, B. J. Young, J. Conallen, and K. A. Houston. ObjectOriented Analysis and Design with Applications. 3rd edition, Addison-Wesley, 2007.
[4] E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable ObjectOriented Software. Addison-Wesley, 1995.
[5] C. Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. 3rd edition, Prentice-Hall, 2004
شبیه سازی کامپیوتری (شماره درس: ۴٠۶٣۴)
Computer Simulation
اهداف درس
هدف از اين درس، آشنایی دانش جویان با نواع روش های شبیه سازی و موضوعات مرتبط با آن است.
ریز مواد
- مقدمه ای بر شبیه سازی
- آشنایی با MATLAB یا ابزارهای مشابه به عنوان ابزار محاسباتی درس
- اصول اولیه و مثال هایی از شبیه سازی
- مفاهیم شبیه سازی سیستم های گسسته رخداد
- چند مثال از شبیه سازی
- الگوی پیاده سازی سیستم های شبیه سازی گسسته رخداد
- انواع ساختارهای سیستم های شبیه سازی رخدادهای گسسته
- پردازش لیست مرتب
- روش های ترسیم سیستم ها برای انجام شبیه سازی
- مدل های آماری در شبیه سازی
- مروری کوتاه بر آمار و احتمال
- توزیع های گسسته
- توزیع های پیوسته
- توزیع های تجربی
- تولید عدد تصادفی یکنواخت
- ویژگی های مورد نیاز برای اعداد تصادفی
- روش های تولید اعداد تصادفی
- آزمون های تصادفی بودن دنباله ها
- تولید متغیر های تصادفی
- روش تبدیل معکوس
- روش پذیرش و رد
- ترکیب
- کانولوشن
- مدل سازی ورود
- جمع اوری داده ها
- ارزیابی استقلال نمونه ها
- تشخیص توزیع از روی داده ها
- تخمین پارامتر
- آزمون کیفیت برازش
- انتخاب مدل در غیاب نمونه داده
- مدل های فرآیندهای ورودی
- وارسی و اعتبارسنجی مدل های شبیه سازی
- داده های خروجی
- رفتار گذرا و حالت پایدار فرآیندهای تصادفی
- انواع شبیه سازی با توجه به تحلیل خروجی
- تحلیل آماری پارامترهای حالت پایدار
- طراحی آزمایش و تحلیل حساسیت
- مباحث پیشرفته در شبیه سازی
- شبیه سازی مونت کارلو
- مثال های دنیای واقع از شبیه سازی
ارزیابی
- تمرین های نظری: ٣ نمره
- آزمون های میان ترم و پایانی: ١۵ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] Banks, Carson, Nelson, and Nicol. Discrete-Event System Simulation. 5th edition, Prentice-Hall, 2010.
دروس اختیاری رشته کامپیوتر
کد درس | عنوان درس | تعداد واحد | پیشنیاز | همنیاز |
---|---|---|---|---|
۴٠٢١۵ | محاسبات عددی | 3 | معادلات دیفرانسیل | - |
۴٠٣۴٢ | سیستم های چندرسانه ای | 3 | سیگنال ها و سیستم ها | - |
۴٠٣۴۴ | مبانی بینايی سه بعدی کامپیوتری | 3 | جبر خطی یا ریاضی مهندسی | - |
۴٠۴١٢ | مدارهای منطقی پیشرفته | 3 | مدارهای منطقی | - |
۴٠۴١٩ | برنامه سازی وب | 3 | برنامه سازی پیشرفته | - |
۴٠۴٢٩ | برنامه سازی موبایل | 3 | برنامه سازی پیشرفته | - |
۴٠۴٣٢ | رایانش چند هسته ای | 3 | برنامه سازی پیشرفته، معماری کامپیوتر | - |
۴٠۴٣٣ | مدارهای واسط | 3 | معماری کامپیوتر | - |
۴٠۴٣٨ | تجارت الکترونیکی | 3 | مهندسی کاربرد | - |
۴٠۴۴٧ | گرافیک کامپیوتری | 3 | - | طراحی الگوریتم ها |
۴٠۴۴٨ | مدیریت و برنامه ریزی راهبردی فا | 3 | مدیریت پروژه های فناوری اطلاعات | - |
۴٠۴۵۵ | نظریه محاسبات | 3 | ساختمان داده ها و الگوریتم ها | - |
40456 | نظریه بازی ها | 3 | ساختمان داده ها و الگوریتم ها، آمار و احتمال مهندسی | - |
۴٠۴۶٣ | اندازه گیری و کنترل کامپیوتری | 3 | مبانی مدارهای الکتریکی و الکترونیکی | - |
۴٠۴۶٧ | فناوری اطلاعات | 3 | - | - |
۴٠۴٧۵ | ایجاد چابک نرم افزار | 3 | تحلیل و طراحی سیستم ها | - |
۴٠۴٧٨ | مهندسی کاربرد | 3 | - | تحلیل و طراحی سیستم ها |
۴٠۴٨٣ | زبان های توصیف سخت افزار | 3 | طراحی سیستم های دیجیتال، معماری کامپیوتر | - |
۴٠۴٩۴ | مقدمه ای بر بیوانفورماتیک | 3 | ساختمان داده ها و الگوریتم ها، آمار و احتمال مهندسی | - |
۴٠٧١٧ | یادگیری ماشین | 3 | آمار و احتمال مهندسی، جبر خطی | - |
۴٠٨٢٨ | آزمون نرم افزار | 3 | تحلیل و طراحی سیستم ها | - |
۴٠١٠٢ | آز سخت افزار | 1 | آز معماری کامپیوتر | - |
۴٠۴٠١ | آز اتوماسیون صنعتی | 1 | اندازه گیری و کنترل کامپیوتری | - |
40402 | آز VLSI | 1 | - | طراحی VLSI |
۴٠۴٠۴ | آز مهندسی نرم افزار | 1 | - | مهندسی نرم افزار |
محاسبات عددی (شماره درس: ۴٠٢١۵)
Numerical Computations
اهداف درس
هدف این درس، آشنا کردن دانشجویان کارشناسی با روش های عددی حل مسائل علمی رشته های مختلف علوم و مهندسی است. این روش ها می توانند مسائل علمی رشته های مختلف را که محاسبه ی دقیق آن ها با روش های معمول ریاضی مقدور نمی باشد، به صورت تقریبی و با خطای محدود، تخمین بزنند. در برخی موارد، محاسبه ی دقیق پاسخ مسائل با روش های معمول ریاضی امکان پذیر بوده ولیکن از پیچیدگی بالایی برخوردار است. این پیچیدگی، خود باعث ایجاد برخی خطاها می شود. روش های عددی می توانند پاسخ این مسائل را با خطای محدود و با پیچیدگی کم تری تخمین بزنند. از این رو، در ابتدای این درس دانشجویان با مفاهیم مربوط به خطا، و در ادامه با روش های عددی مختلف برای حل مسائل فنی مهندسی آشنا خواهند شد. از طرفی، استفاده از محیط های نرم افزاری کارامد برای حل مسائل، مقایسه ی روش های عددی و نمایش گرافیͺ ͬنتایج برای خلاصه سازی و جمع بندی آن ها از اهداف دیگر این درس است. همچنین آشنا ساختن دانشجویان با مسائل روز دنیا که حل آنها با روش های معمول ریاضی غیرممکن بوده و یا از پیچیدگی بسیار بالایی برخوردار است، ولی روش های عددی راه حلی کارامد برای آنها ارائه شده است، می تواند در راستای آموزش کاربردی این درس نقش به سزایی داشته باشد.
ریز مواد
- آشنایی با ابزار نرم افزاری مورد استفاده، مانند MATLAB یا Python (٢ جلسه)
- محاسبات مربوط به ماتریس ها
- بردارها و ترسیم
- فایل ها و تعریف توابع
- آشنایی با برخی توابع داخلی ابزار موردنظر
- خطاها (۴ جلسه)
- مقدمه ای بر خطاها
- سیستم ممیز شناور
- منشأ خطاها
- خطاهای نسبی و مطلق
- خطاهای گردکردن، ذاتی و برشی
- انتشارخطا و گراف فرایند
- ناپایداری در محاسبات عددی
- حل عددی معادلات غیرخطی (۴ جلسه)
- مقدمه ای بر پیدا کردن ریشه های تابع تک متغیره غیرخط
- روش تنصیف
- روش نابه جایی
- روش وتری یا خط قاطع
- روش نیوتن‐رافسون
- روش تکرارساده یا نقطه ثابت
- نرخ همگرائی روش های مختلف
- شرط های لازم/کافی برای همگرائی روش های نیوتن‐رافسون، روش وتری و روش تکرار ساده
- روش هرنر برای محاسبه مقدار چندجمله ای
- روش تعمیم یافتة نیوتن‐رافسون برای حل دستگاه معادلات غیرخطی
- اثبات شهودی و ریاضی روش های مذکور
- درون یابی، برون یابی و برازش منحنی (۵ جلسه)
- مقدمه ای بر درون یابی، برون یابی و برازش منحنی
- روش های مختلف درون یابی شامل روش لاگرانژ، روش تفاضلات تقسیم شده ی نیوتن، روش های تفاضلات پیشرو،پسرو و مرکزی نیوتن
- اثبات روش های مذکور و تحلیل خطا در آن ها
- برازش به چندجمله ای ها توسط روش کمترین مربعات
- برازش به منحنی های مختلف با کمک خطی سازی
- برون یاب
- انتگرال گیری و مشتق گیری عددی (۴ جلسه)
- مقدمه ای بر انتگرال گیری و مشتق گیری عددی
- روش های مختلف انتگرال گیری عددی شامل روش مستطیلی، روش نقطه میانی، روش ذوزنقه ای، روش گاوس‐لژاندر، روش سیمپسون 1/3 و سیمپسون 3/8 و روش رامبرگ
- بررسی میزان خطای روش های ذکر شده
- اثبات ریاضی و شهودی برای روش های مذکور
- مشتق گیری عددی با استفاده از روش های مختلف شامل روش نقطه ی میانی، روش تفاضل مرکزی، روش سه نقطه ای
- تحلیل مرتبه ی خطای روش های مذکور و استفاده از مفهوم برون یابی ریچاردسون برای بهبود نتایج مشتق گیری عددی
- حل معادلات دیفرانسیل معمولی با شرایط اولیه (۴ جلسه)
- مقدمه ای بر معادلات دیفرانسیل
- روش های تک گامی شامل روش تایلور، روش اویلر، روش اویلر اصلاح شده، روش های رانگ‐کوتا مرتبه ٢(روش هیون، نقطه میانی و اصلاح شدۀ اویلر)، رانگ‐کوتا مرتبه ٣ و رانگ‐کوتا مرتبه ۴
- روش های چندگامی مانند روش آدامز‐مولتون
- تحلیل خطای روش های مذکور و مقایسه آن ها
- تبدیل معادلات دیفرانسیل درجات بالاتر به دستگاه معادلات دیفرانسیل خطی
- تبدیل روش های تک گامی حل معادلات دیفرانسیل خطی به روش های عددی قابل استفاده برای حل دستگاه معادلات دیفرانسیل خطی
- حل عددی دستگاه معادلات خطی (۴ جلسه)
- مقدمه ای بر حل دستگاه معادلات خطی
- مقدمه ای بر ماتریس ها
- روش های مستقیم حل دستگاه معادلات خطی شامل روش ماتریس معکوس، روش کرامر، روش حذف گاوسی (پیشرو، پسرو و گاوس‐جردن)، روش تجزیه مثلثاتی (LU چولسکی،دولیتل و کروت)
- روش های تکرارشونده شامل روش ژاکوبی و روش گاوس‐سایدل
- مقادیر ویژه و بردار ویژه، روش توانی برای یافتن تخمینی از مقدار ویژه ی غالب و بردار ویژه ی متناظر با آن، و قضیه گرچ گورین
ارزیابی
- آزمون: آزمون های میان ترم و پایان ترم (%۵٠ کل نمره)
- تمرین: ۶ تمرین نظری (حل مسائل علمی با روش های عددی)، ۶ تمرین عملی با محیط نرم افزاری معرفی شده؛ تمرینات در طول نیمسال تحویل داده می شوند (%۴٠ کل نمره).
- پروژه: موضوع پروژه با کمک استاد انتخاب می شود. پروژه می تواند پژوهشی و یا عملی (با استفاده از ابزار معرفی شده)باشد. پس از انجام کار، نتیجه ی پروژه ی پژوهشی در قالب گزارش ارائه داده می شود. لازم به ذکر است که برای مسلط ترشدن به ابزار معرفی شده در درس ترجیح می رود که پروژه عملی باشد. همچنین پروژه های گروهی چنانچه به صورت دقیق تعریف شوند، می توانند بر توانایی های کار گروهی دانشجویان نیز تاثیر مثبت قابل توجهی داشته باشند (١٠ ٪کل نمره).
مراجع
[1] S. Pal. Numerical Methods Principles, Analysis and Algorithms. Oxford University Press, 2010.
[2] J. Kiusalaas. Numerical Methods in Engineering with Python 3. Cambridge University Press, 2013.
[3] J. Kiusalaas. Numerical Methods in Engineering with MATLAB. Cambridge University Press, 2015.
[4] C. B. Moler. Numerical Computing with MATLAB. MathWorks, 2013.
سیستم های چندرسانه ای (شماره درس: ۴٠٣۴٢)
Multimedia Systems
اهداف درس
هدف از اين درس، آشنایی دانش جویان با مفاهیم پایه ی چندرسانه ها و سیستم های چندرسانه ای با درنظر گرفتن سرویس های ارزش افزوده ی نوظهور است.
ریز مواد
- آشنایی با چندرسانه ها (٢ جلسه)
- معرفی چندرسانه
- معرفی سیستم چندرسانه
- هایپر مدیا
- مشخصه ها و چالش ها و اجزای تشکیل دهنده سیستم های چندرسانه ای
- داده های چندرسانه ای
- پروژه ها و موضوعات تحقیقاتی چندرسانه ای
- مرور سیگنال ها و سیستم ها (۴ جلسه)
- معرفی سیگنال ها و سیستم های زمان گسسته
- تئوری نمونه برداری
- چندی سازی (کوانتیزاسیون) عددی و برداری
- تجزیه و تحلیل در حوزه تبدیل
- معرفی تبدیل های FFT و STFT و موجک
- صوت (٣ جلسه)
- نمایش و عرضه ی صوت
- نمونه برداری و چندی سازی صوت
- استانداردها و قالب ها
- نقاب گذاری (Masking) فرکانسی و زمانی
- پردازش سیگال صوتی
- فشرده سازی سیگنال صوتی
- کدگذاری آنتروپی (٣ جلسه)
- فشرده سازی باتلفات و بدون تلفات
- کد گذاری Run-length
- کد گذاری با طول ثابت
- کد گذاری با طول متغیر
- کد گذاری هافمن
- کد گذاری Lempel-Ziv-Welch
- کد گذاری محاسباتی
- تصویر (۴ جلسه)
- رنگ فضای CMYK ،HSV ،RGB ،YUV
- ثبت و نمایش تصویر
- بهبود کیفیت تصویر
- فشرده سازی تصویر DCT و MPEG
- ویدئو (۴ جلسه)
- مفاهیم پایه ویدئوی آنالوگ و دیجیتال
- فشرده سازی ویدئو
- کدگذاری درون قابی و بین قابی
- تخمین و جبران سازی حرکت
- ارزیابی کیفیت ویدئو
- ویدئو کدگذاری استاندارهایH264 ،H263 ،H261 ،MPEG4 ،MPEG2 ،MPEG1
- سیستم چندرسانه ای (۴ جلسه)
- Standalone در برابر شبکه شده
- Orchestrated در برابر زنده
- بلوک های تشکیل دهنده سیستم چندرسانه ای
- معماری سیستم چندرسانه ای بی درنگ
- شبکه ی چندرسانه ای (٣ جلسه)
- کیفیت انتقال داده چندرسانه ای
- پروتکل های جریان سازی
- پنهان سازی خطا
- کدگذاری اولویت دار
- شبکه های Overlay
- تلفات بسته ی داده؛ تراکم و کیفیت خدمات
- Multicasting و Unicasting
- چندرسانه ای بی سیم
- کاربردهای چندرسانه ای (٣ جلسه)
- تلفن اینترنتی
- پخش ویدئوی دیجیتال
- تلویزیون اینترنتی؛ تلویزیون تعاملی و IPTV
- آموزش الکترونیکی
- رابط انسان و رایانه
- پلتفرم خانه چندرسانه ای
- سیستم بازیابی اطلاعات چندرسانه ای
- فناوری های سه بعدی
ارزیابی
- تمرین های نظری: ٣ نمره
- آزمون های میان ترم و پایانی: ١٢ نمره
- آزمونک ها: ٣ نمره
مراجع
[1] R. Steinmettz and K. Nahrstedt. Multimedia: Computing, Communications and Applications. Pren-tice Hall, 1995.
[2] R. Steinmettz and K. Nahrstedt. Multimedia Fundamentals: Media Coding and Content Processing. Prentice Hall, 2002.
[3] K. R. Rao, Z. S. Bojkovic and D. A. Milanovic. Multimedia Communication Systems: Techniques, Standards and Networks. Prentice Hall, 2002.
مبانی بینايی سه بعدی کامپیوتری (شماره درس: ۴٠٣۴۴)
Fundamentals of 3D Computer Vision
اهداف درس
هدف از اين درس، آشنایی دانش جویان با مفاهیم و روش های تحلیل تصاویر به منظور درک سطح بالای محتوای آن ها است. این مفاهیم شامل تشکیل تصویر و نمایش رنگ، مرور مختصر پردازش سیگنال و تصویر، هندسه ی سه بعدی، استخراج نقاط مورد نظر، برازش مدل مقاوم، خوشه بندی و بخش بندی، بازشناسی شیء، نزدیک ترین همسایه ها، و یادگیری ژرف در بینائی کامپیوتری است.
ریز مواد
- پردازش سیگنال و تصویر
- برخی مفاهیم مقدماتی پردازش سیگنال
- مروری مختصر بر سیگنال ها و سیستم ها
- تابع پیچش
- تبدیل فوریه
- پالایش تصویر
- مقدمات هندسه سه بعدی
- برخی مفاهیم مقدماتی هندسی
- مروری مختصر بر جبر خطی
- پارامتری کردن ماتریس چرخش
- مختصات مشابه
- دوربین مدل سوراخ سوزنی
- از متر به مختصات پیکسل
- دوربین ها و افکنش ها
- افکنش موازی
- افکنش دورنما
- چرخش های دوربین تک محور
- ساخت تصویر موزائیکی ساده
- پارامترهای داخلی و خارجی دوربین
- حرکت کلی دوربین
- تخمین نگاشت های خطی
- انتقال کلی دوربین
- بازسازی سه بعدی از دید دوتائی
- ازسازی سطح و اجرا
- مثلث سازی مجموعه نقاط
- نکاشت سطح، اجرای تصویرگرا
- سطوح مسطح، نگاست خطی
- چند دوربینی
- دوربین های دورنما‐ تعدیل بسته
- دوربین های افکنشی موازی
- عامل بندی دوربین ها و مختصات سه بعدی
- ساختار افاین
- استخراج نقاط کلیدی
- برازش مدل مقاوم
- خوشه بندی و بخش بندی
- برش های گراف
- بازشناسی شیء
- دسته بندی قالب
- نزدیک ترین همسایه ها، PCA ،کاهش بعد
- بیز غیرپیچیده
- ترکیب دسته بندهای ساده
- شبکه های عصبی
- نزدیک ترین همسایه ها
- یادگیری ژرف در بینائی کامپیوتری
- شبکه های عصبی و پس انتشار
- معماری های CNN :ایده های جدید، مزایا، و معایب
- شبکه های عصبی ژرف مکانی‐زمانی
- آموزش شبکه های عصبی ژرف با پای تورچ
ارزیابی
- امتحان پایان ترم: ۴٠٪
- امتحان میان ترم: ١۵٪
- آزمونک: ١٠٪
- تمرین ها: ١۵٪
- پروژه نهایی: ٢٠٪
مراجع
[1] Stefan Carlsson. Geometric Computing in Image Analysis and Visualization. Lecture Notes, KTH University, 2007.
[2] Richard Szeliski. Computer Vision: Algorithms and Applications. 1st edition, Springer, 2010.
مدارهای منطقی پیشرفته (شماره درس: ۴٠۴١٢)
Advanced Logic Design
اهداف درس
آشنا کردن دانشجویان با مفاهیم طراحی مدارات همگام (سنکرون) و غیرهمگام (آسنکرون) و مخاطرات زمانی همراه با اشاره به ملاحظات طراحی مدارهای دیجیتال پیشرفته مثل آزمون پذیری و توان مصرفی از اهداف درس است.
ریز مواد
- مرور مدارهای ترتیبی
- طراحی مدارهای ترتیبی همگام و ساده سازی آن ها
- مدارهای ترتیبی ناهمگام
- بررسی تاخیرهای زمانی و انواع مخاطره ها (Hazards)
- منطق چند حالته و مختلط
- ملاحظات طراحی آزمون پذیر و کم مصرف در طراحی های نوین
ارزیابی
- تمرین های نظری: ٣ نمره
- آزمون های میان ترم و پایانی: ١۵ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] B. J. LaMeres. Introduction to logic circuits & logic design with VHDL. 2nd edition, Springer, 2019.
[2] T. Ndjountche. Digital Electronics Vol. 2, Sequential and Arithmetic Logic Circuits. Wiley, 2016.
[3] Ch. H. Roth and L. L. Kinney. Fundamentals of logic design. 7th edition, Cengage Learning, 2013.
[4] V. G. Oklobdzija, V. M. Stojanovic, D. M. Markovic, and N. M. Nedovic. Digital System Clocking: High- Performance and Low-Power Aspects. Wiley, 2003.
[5] J. F. Wakerly. Digital Design Principles & Practices. Prentice Hall, 2001.
[6] M. M. Mano, Ch. R. Kime, and T. Martin. Logic & Computer Design Fundamentals. 5th edition, Prentice Hall, 2006.
[٧] علیرضا اجلالی، “مدارهای منطقی”، چاپ اول، انتشارات نصیر، ١٣٩٧.
برنامه سازی وب (شماره درس: ۴٠۴١٩)
Web Programming
اهداف درس
هدف از اين درس، آشنایی دانش جویان با مفاهیم اولیه و اصول طراحی نرم افزارهای تحت وب است. در این درس، دانش جویان علاوه بر آشنایی اولیه با برنامه نویسی سمت کاربر و سمت کارگزار و نحوه ی تعامل این دو، با یکی از چارچوب های پرکاربرد برای پیاده سازی نرم افزارهای تحت وب آشنا می شوند
ریز مواد
- مقدمه (١ جلسه)
- کلیات درس، تاریخچه ی وب، پروتکل HTTP
- طراحی صفحات (٢ جلسه)
- ساختار HTML ،عناصر و ویژگی ها، پاراگراف بندی، فرمت بندی، لینک ها، لیست ها
- تصاویر، جدول ها، فرم ها، عناصر جدید در HTML5
- سبک بندی (٢ جلسه)
- تعریف CSS ،فرمت بندی، انتخاب کننده ها، وراثت و آبشار، اصول طراحی
- چیدمان صفحه، مدل جعبه ای، نمایش شناور، موقعیت ها، شبه کلاس ها
- جاوا اسکریپت (۴ جلسه)
- ساختار کلی زبان، کاربردها، دستورات و توابع، متغیرها و انواع داده ای، ساختارهای کنترلی
- آرایه ها، اشیاء، نحوه ی تعریف اشیاء، سازنده ها، نهان سازی داده ها
- مدل DOM ،ویرایش عناصر و سبک ها، رسیدگی به رویدادها، استثناها
- کتاب خانه ی jQuery ،انتخاب کننده ها، رویدادها، جلوه ها و پویانمایی
- ذخیره ی داده ها (٢ جلسه)
- آشنایی با XML ،کاربردها، DTD ،تبدیل توسط XSLT ،آشنایی با JSON
- پایگاه داده های رابطه ای ، ایجاد پایگاه داده، زبان پرس وجوی SQL
- تعامل با سرور (٢ جلسه)
- رابط CGI ،ارسال توسط GET و POST ،پردازش فرم ها، کوکی ها
- استفاده از AJAX ،ارسال درخواست، دریافت و تجزیه ی پاسخ، کاربردها
- پایتون (۵ جلسه)
- ساختار زبان، عملگرها، انواع داده ای، لیست ها، رشته ها، چندتایی ها، فرهنگ های داده ای
- توابع، ماژول ها، پکیج ها، توابع بی نام، آرگومان های متغیر، دکوراتورها
- رده ها و اشیاء، سازنده ها، وراثت، رسیدگی به استثناها
- پرونده ها، پردازش متن، عبارات منظم، کاربردها
- خواندن صفحات وب، کارگزار وب پایتون، آشنایی با WSGI
- معماری وب (٢ جلسه)
- لایه بندی، معماری کاربر‐کارگزار، معماری سه لایه، معماری MVC
- مدل های داده، انواع رابطه ، تطابق با پایگاه داده های رابطه ای
- چارچوب جنگو (۶ جلسه)
- مفاهیم اولیه، نصب و راه اندازی، مؤلفه ها، معماری کلی
- ایجاد یک پروژه، تعریف پایگاه داده، راه اندازی مدیر، افزودن نما
- لایه ی مدل، نگاشت گر شیء‐رابطه، وراثت، اجرای پرس وجو
- لایه ی نما، نگاشت نشانی ها، اشیاء درخواست و پاسخ، نماهای عمومی
- لایه ی قالب ، زبان تعریف قالب، تگ ها و فیلترهای آماده
- پردازش فرم ها، ابزارک های توکار، اعتبارسنجی
- مباحث پیشرفته (۴ جلسه، در حد فرصت)
- میان افزارها، بهینه سازی، فشرده سازی، استفاده از کش
- احراز هویت، کنترل دسترسی ها، مدیریت کاربرها و گروه ها
- امنیت، محافظت در مقابل حملات امنیتی، رمزنگاری
- جلسات، ذخیره ی حالت جلسه، روش های ترکیبی
- بین المللی سازی، محلی سازی، ابزارهای ترجمه
ارزیابی
- تمرین های عملی (۵ نمره)
- پروژه (۵ نمره)
- آزمون میان ترم (۴ نمره)
- آزمون پایانی (۶ نمره)
مراجع
[1] S. M. Schafer. HTML, XHTML, and CSS Bible. 5th edition, Wiley Publishing, 2010.
[2] J. Forcier, P. Bissex, and W. Chun. Python Web Development with Django. Pearson Addison-Wesley,2009.
[3] W. J. Chun. Core Python Applications Programming. 3rd edition, Pearson Addison-Wesley, 2012.
[4] M. Fowler, D. Rice, M. Foemmel, E. Hieatt, R. Mee, and R. Stafford. Patterns of Enterprise Application Architecture. Pearson Addison-Wesley, 2003.
برنامه سازی موبایل (شماره درس: ۴٠۴٢٩)
Mobile Programming
اهداف درس
هدف از این درس آشنایی دانشجویان با مفاهیم و الگوهای برنامه سازی موبایل است. مطالب این درس دربرگیرنده ی برنامه سازی در سیستم های عامل اندروید و iOS خواهد بود. آشنایی قبلی با زبان برنامه سازی جاوا برای این درس لازم است، بنابراین گذراندن درس برنامه سازی پیشرفته به عنوان پیش نیاز ضروری است.
ریز مواد
- مقدمه و برپایی محیط توسعه اندروید (دو جلسه)
- آشنایی با مفاهیم، ابزارها (Android Studio و Android SDK)، نحوه ی خطایابی و آزمون در توسعه ی برنامه های اندروید، فرایند تولید یک برنامه اندروید
- واسط کاربری و الگوهای آن (سه جلسه)
- آشنایی با الگوی MVP، معرفی مولفه های واسط کاربری، اصول طراحی و پیاده سازی یک واسط کاربری سفارشی (به کمک بسطview و GroupView)، مدیریت واسط کاربری به صورت پویا (dynamic layouts management)، بهترین الگوهای (best practices) طراحی واسط کاربری در اندروید
- مدیریت داده ها و بومی سازی (سه جلسه)
- ذخیره و بازیابی اطلاعات یک برنامه کاربردی در Preference اشتراکی و اختصاصی، ارتباط با پایگاه داده (database SQLite)، مکانیزم های پشتیبانی از (I10n)localization و internationalization(i18n)
- حافظه و ریسمان ها (چهار جلسه)
- چرخه ی حیات برنامه اندروید (application life cycle)، مدل حافظه و مدیریت ریسمان ها در اندروید، آشنایی با اصول پیاده سازی الگو AsyncTask
- مدیریت سرویس ها (چهار جلسه)
- سرویس های مبتنی بر مکان (location-based services)، مدیریت سرویس ها و هشدارها (cast receivers and notifications Broad ، -Services)، مدیریت دوربین، مدیریت سنسورها (sensor manager)، آشنایی با پرداخت درون برنامه ای
- برپایی محیط توسعه iOS (یک جلسه)
- آشنایی با مفاهیم و ابزارهای توسعه برنامه سازی (Xcode)، مروری بر مولفه های واسط کاربری و آشنایی با Storyboards ،آشنایی با الگوی MVC
- برنامه سازی با Swift (سه جلسه)
- آشنایی با ساختار زبان، انواع داده ، کلاس ها و اشیا، قلمروها (Scope )، اختیاری ها (Optionals) داده ها و توابع عام (Generics)، آشنایی با پروتکل ها (Protocols)،مدیریت خطاها، مروری بر مدیریت حافظه
- تکنولوژی های iOS (هشت جلسه)
- تکنولوژی های واسط کاربری (Core Animation ،Core Graphics ،UIKit)، تکنولوژی های بازی سازی ها داده مدیریت های تکنولوژی(Game Controller،OpenGL ES،Sprite Kit،Game Kit)(Foundation ،Data ،Core)،مدیریت صدا و تصویر (AV Foundation)
- امنیت (سه جلسه)
- آشنایی با مخاطرات امنیتی و استانداردهای تخمین آن (mobile security assessment)، آشنایی با ابزارهای Obfuscation ،آشنایی با ابزارهای تحلیل مخاطرات امنیتی (روش های مبتنی بر تحلیل ایستا و پویا‐dynamic analysis tools static and ،روش های مهندسی مجدد)
ارزیابی
- آزمون های میان ترم و پایان ترم (١٢ نمره)
- چهار تمرین (۴ نمره)
- • یک پروژه (۴ نمره)
مراجع
[1] M. L. Murphy. The busy coder’s guide to Android development. CommonsWare, 2011.
[2] M. Neuburg. iOS 12 Programming Fundamentals with Swift. O’Reilly Media, 2018.
رایانش چند هسته ای (شماره درس:۴٠۴٣٢)
Multicore Computing
اهداف درس
هدف اصلی درس آشنایی با ساختار سیستم های چندهسته ای و پرهسته ای و برنامه نویسی موازی برای این سیستم ها است. به این منظور، ابتدا معماری کلی، مفاهیم اولیه و چالش های موجود در سیستم های چندهسته ای و پرهسته ای ارائه می گردد. در ادامه، ابزار و روش های برنامه نویسی موازی روی چند بستر چندهسته ای و پر هسته ای معرفی می شود.
ریز مواد
- معرفی معماری سیستم های چندهسته ای و مدل های برنامه نوسی موازی
- تاریخچه ظهور سیستم های چند هسته ای
- چالش های برنامه نویسی کارا روی سیستم های چند هسته ای
- معرفی سطوح موازات در برنامه ها
- تحلیل تسریع در سیستم های چند هسته ای همگون و ناهمگون
- ارائه ی چند نمونه واقعی از سیستم های چند هسته ای
- چند پردازنده ها با حافظه مشترک
- معرفی کلی معماری
- ارائه ی مسئله ی Cache Coherence و راه حل ها
- معرفی اجمالی مدل برنامه نویسی و نحوه همگام سازی نخ ها
- نحوه برخورد با ناحیه های بحرانی
- ایده های کلی در بهبود برنامه های موازی
- الگو های رایج موازی سازی محاسبات و مدیریت داده
- موازیی محاسبات وهایگال: Fork-Join ،Recurrence ،Stencil ،Scan ،Reduction ،Map
- داده مدیریت موازی وهاگال: Partitions & Geometric Decomposition ،Pack ،Scatter ،Gather
- برنامه نویسی موازی عمومی در سیستم های چند هسته ای
- برنامه نویسی با Pthreads
- برنامه نویسی با OpenMP
- برنامه نوسی موازی در سیستم های برداری
- معرفی کلی سیستم های برداری و آرایه ای
- معرفی ISA مخصوص پردازنده Intel برای محاسبات SIMD
- معرفی معماری و نحوه برنامه نویسی پردازنده BE CELL
- برنامه نویسی موازی در پردازنده های گرافیکی عام منظوره
- معرفی جامع معماری پردازنده های گرافیکی
- معرفی معماری چند نمونه واقعی از پردازنده های گرافیکی شرکت NVIDIA
- برنامه نویسی با زبان CUDA
- معرفی Profiler شرکت NVIDIA
- معرفی اجمالی برنامه نویسی موازی در سیستم های توزیع شده
- معرفی کتابخانه (MPI)Message Passing Interface و نحوه ی برنامه نویسی موازی براساس مدل تبادل پیام
ارزیابی
- تمرین های نظری: ٣ نمره
- آزمون های میان ترم و پایانی: ١۵ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] D. A. Patterson and J. L. Hennessy. Computer Architecture: A quantitative approach. Morgan Kauf-mann, 2019.
[2] J. Sanders and E. Kandrot. CUDA by examples: An introduction to GPGPU programming. Addison-Wesley, 2011.
[3] D. B. Kirk and W. W. Hwu. Programming massively parallel processors: A hands-on approach.
[4] M. McCool, A.D. Robison, and J. Reinders. Structured Parallel Programming. Elsevier, 2012
مدارهای واسط (شماره درس: ۴٠۴٣٣)
Interface Circuits
اهداف درس
در این درس دانشجویان با انواع رابط های فیزیکی سامانه های کامپیوتری با دیگر سامانه ها یا محیط واقعی (آنالوگ یا پیرامونی) آشنا می شوند و پروتکل های حاکم بر ارتباط بین این واسطه ها، مزایا و معایب، کاربردها، و اصول طراحی آن ها را فرا می گیرند تا بتوانند: ١) با تسلط نسبی به اصول طراحی هریک از رابط های مطرح شده، توان طراحی مداری یا درک جامع عملکرد هریک از رابط های معرفی شده را داشته باشند. ٢) با انتخاب درست نحوه اتصال بین دو یا چند سامانه کامپیوتری و یا سیستم کامپیوتری و محیط آنالوگ پیرامونی و بسته به نوع و محیط کاربرد، نسبت به طرح ریزی برای انتقال اطلاعات درون یک سامانه یا بین سامانه ها اقدام کنند. ٣) با تسلط نسبی به طیف وسیعی از رابط های کامپیوتری (در کنار تسلط به بخش های پردازشی و ذخیره سازی اطلاعات)، شناخت کامل تری نسبت به معماری یک سامانه، اجزا و نحوه هم بندی آن حاصل نمایند (به عنوان مثال، در مطالعه و بررسی یک سامانه ی کنترل صنعتی برای شناخت آن به منظور بازطراحی سامانه)
ریز مواد
- مفاهیم اصلی تبادل اطلاعات
- مفهوم و ویژگی های سیگنال در خطوط انتقال در سامانه های کامپیوتری
- مفهوم پهنای باند، نرخ انتقال، فشرده سازی اطلاعات، کدگذاری و محدودیت های فناوری
- اصول ارتباط واسط های سریال و موازی
- مدارهای واسط سنکرون و آسنکرون
- شیوه های سرویس دهی و آدرس دهی در مدارهای واسط
- گذرگاه های انتقال درون سامانه ای
- گذرگاه های پردازنده و ادوات ذخیره سازی Hard و On-board Memory
- گذرگاه های ادوات جانبی
- مدارهای واسط در سامانه های نهفته و صنعتی
- گذرگاه های انتقال بین سامانه های کامپیوتری
- رابط USB (انتقال اطلاعات)
- رابط HDMI (رابط کاربری)
- مروری بر واسط های بی سیم
- Bluetooth
- Wireless USB
- Zigbee
- بررسی واسط های نرم افزاری با سخت افزار (Device driver) و شیوه ی به کارگیری سیستم های عامل نهفته و بی درنگ
- بررسی اجمالی شیوه ی ارتباط با دنیای آنالوگ و مبدل های آنالوگ به دیجیتال و دیجیتال به آنالوگ و حسگرها (Sensors) و محرک ها (Actuators) و مشکلات الکترومغناطیسی و همشنوایی و تداخل، ارتباط زمین و ملاحظات طراحی واسط های آنالوگ‐دیجیتال
- بررسی نمونه ی کاربردی مدارهای واسطه بر مبنای برد میکروکنترلر Raspberry Pi یا مشابه
ارزیابی
- تمرین های نظری: ٣ نمره
- آزمون های میان ترم و پایانی: ١۵ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] Jonathan W. Valvano. Embedded Microcomputer Systems: Real Time Interfacing. 3rd edition, Cen-gage Learning, 2011.
[2] Gourab Sen Gupta and Subhas Chandra Mukhopadhyay. Embedded Microcontroller Interfacing, De-signing Integrated Projects. Springer 2010.
[3] Stuart R. Ball. Analog Interfacing to Embedded Microprocessor Systems. Elsevier, 2004.
تجارت الکترونیکی (شماره درس: ۴٠۴٣٨)
Electronic Commerce
اهداف درس
تجارت الکترونیکی به عنوان فناوری پایه در راه حل های الکترونیکی از آنچنان اهمیتی برخوردار است که در تحلیلی بیشینه گرا، گروهی انواع راه حل های الکترونیکی را با فرض تغییر کالای مورد مبادله گونه هایی از تجارت الکترونیکی می دانند. ضرورت درس تجارت الکترونیکی به عنوان درسی جامع در حوزه های بین رشته ای فناوری اطلاعات به علت نیاز به فناوری های متعدد در طراحی و پیاده سازی در جنبه های اطلاعاتی و پیکره های دانشی و مهارتی گسترده ی آن می توان جست.
ریز مواد
- مقدمات (٢ جلسه)
- شالوده، ابزار و ساز و کارهای تجارت الکترونیکی (١ جلسه)
- خرده فروشی (٢ جلسه)
- خدمات الکترونیکی (٢ جلسه)
- کسب و کار متحرک (٢ جلسه)
- کسب و کار هوشمند (٢ جلسه)
- کسب و کار اجتماعی (٢ جلسه)
- بنگاه های اجتماعی (٢ جلسه)
- بازاریابی الکترونیکی (١ جلسه)
- تبلیغات و ترویج الکترونیکی (١ جلسه)
- امنیت تجارت الکترونیکی (٢ جلسه)
- سامانه های پرداخت الکترونیکی (١ جلسه)
- تحقق سفارش الکترونیکی (١ جلسه)
- راهبردهای تجارت الکترونیکی (٢ جلسه)
- حقوق کسب و کار الکترونیکی (١ جلسه)
- اسناد تجارت الکترونیکی (٢ جلسه)
- تجارت الکترونیکی در جهان (١ جلسه)
- تجارت الکترونیکی در ایران (١ جلسه)
ارزیابی
- تمرین های نظری و عملی: ۶ نمره
- آزمون های میان ترم و پایان ترم: ١٢ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] E. Turban, D. King, J. K. Lee, T.-P. Liang, and D. C. Turban. Electronic Commerce: A Managerial and Social Networks Perspective. 8th edition, Springer, 2018.
گرافیک کامپیوتری (شماره درس: ۴٠۴۴٧)
Computer Graphics
اهداف درس
هدف این درس آشنا کردن دانشجویان با مفاهیم پایه ای گرافیک کامپیوتری است. تکیه ی اصلی درس بر روی گرافیک کامپیوتری سه بعدی، مفاهیم افکنش ها و تبدیل های سه بعدی، نور پردازی، رنگ آمیزی صحنه های گرافیکی و بازی های کامپیوتری با استفاده از نرم افزار OpenGL است. این نرم افزار در محیط زبان های برنامه نویسی سطح بالا مانند C++ ،C ،Java قابل استفاده است. انتظار می رود که دانشجویان با یکی از این زبان ها آشنائی کامل داشته باشند و در طول ترم استفاده از OpenGL را نیز بیاموزند.
ریز مواد
- آشنایی با مفاهیم کلی و سخت افزار های گرافیکی
- تبدیل های هندسی سه بعدی
- تبدیل affine سه بعدی
- نمایش سه بعدی اشیا
- مفاهیم دید
- مراحل تولید یک صحنه
- سیستم مختصات
- تبدیل های افکنش (Projection) پرسپکتیو، موازی و مایل
- نمایش سه بعدی سطوح انخنا دار و سطوح مثلث بندی شده
- معرفی توابع و سطوح اسپلاین و کار برد آنها
- توابع درجه ٣ و ۴ اسپلاین از جمله توابع بزییر، بی، بتا، نسبی
- نمایش یک اسپلاین با استفاده از توابع اسپلاین دیگر
- اشیاء حبابی شکل، نمایش محوری، روشهای مبتنی بر اشکال خوش تعریف هندسی
- درخت های هشت تایی
- درخت های باینری تقسیم کننده فضای سه بعدی
- روش های تشخیص سطوح قابل رویت
- دسته بندی و معرفی الگوریتم ها و مقایسه آنها
- مدل محاسبه ی روشنایی فونگ، روش های نورپردازی و رنگ آمیزی (Rendering) سطوح
- الگوریتم های سریع رندرینگ
- اعمال بافت و جزییات بر سطوح
- مدل هار رنگ و کاربرد آنها
- نورپردازی کلی (Global illumination). سایه زن ها (Shaders)
- معرفی هندسه فراکتالی برای ساخت اشیا و صحنه هایی که با هندسه اقلیدسی قابل توصیف نیستند
- مصور سازی مجموعه ی داده ها
- پویا نمایی کامپیوتری
- روشهای سنتی ساخت پویانمایی
- طراحی دنباله ی پویانمایی
- توابع عمومی پویانمایی
- سیستم قاب(frame) های کلیدی
- تعیین جابجایی و حرکت در سرعت های مختلف
- محاسبه ی مسیر حرکت دوربین
- روش های ضبط حرکت کل بدن و چهره (Motion Capture) و کاربرد آن ها در ساخت پویانمایی، فیلم و بازی
- آشنایی با ساخت یک بازی کامپیوتری
- معرفی عناصر اصلی شامل طراحی اشیا ثابت (پس زمینه) و اشیا متحرک، فیزیک
- اعمال بافت بر روی اشیا
- هوش مصنوعی، سناریو، نوع بازی و موزیک
- معرفی موتور های بازی و امکانات آن ها
- مدیریت ساخت بازی
- تست مراحل مختلف تولید بازی و بازار فروش
ارزیابی
- آزمون میان ترم اول: ٢٫۵ نمره
- آزمون میان ترم دوم: ٢٫۵ نمره
- آزمون پایان ترم: ۵ نمره
- تمرین های برنامه نویسی: ١٠ نمره
مراجع
[1] Hearn and Baker. Computer Graphics with OpenGL. 4th edition, Prentice Hull, 2011.
[2] Steve Marschner and Peter Shirley. Fundamental of Computer Graphics. 4th edition, CRC Press,2016.
[3] Edward Angel. OpenGL, A primer. Addison Wesley, 2002.
مدیریت و برنامه ریزی راهبردی فا (شماره درس: ۴٠۴۴٨)
IT Strategic Planning and Management
اهداف درس
آشنایی اطلاعاتی–مهارتی با مباحث نظری و کاربردی مطالعات راهبردی فا در حوزه های مدیریت و برنامه ریزی فناوری اطلاعات در سازمان و کسب شناخت انتخاب گونه مناسب مطالعه ی راهبردی فای برای هر سازمان با توجه به توان جذب آن، استفاده از روشگان های مناسب و تولید راه حل های گذار با روش هایی سازمانی بهره گیرنده از الگوهای مهندسی اصلاح پذیر از اهداف اصلی این درس است. در اهداف ثانویه درس به درک ضرورت ترسیم نقشه های معماری و به روز رسانی آن برای گذر از وضعیت موجود به شرایط مطلوب و فراهم سازی امکان یکپارچه سازی سامانه های راه حل که پیشنیاز پروژه های ملی نظیر دولت الکترونیکی است می توان اشاره کرد. ارتقاء سطح نگرش دانشجویان و کسب توان استخراج راه حل های سامانه ای برای تحقق راه حل های سازمانی نیز در این میان با تمرینات عملی به مهارت لازم تبدیل خواهد شد.
ریز مواد
- مقدمات (٢ جلسه)
- اهداف، برنامه درسی و توافق بر الگوی تعلیم و چارچوب درس.
- واژه شناسی مدیریت و برنامه ریزی راهبردی.
- نمای ٣۶٠ درجه ی برنامه ریزی راهبردی سنتی (۴ جلسه)
- IFE + EFE + SPACE + SWOT + QSPM (جلسه٢)
- تدوین مدل–پایه برنامه ی راهبردی سازمان (٢ جلسه)
- انواع مطالعات راهبردی سازمان از کسب و کار تا فناوری (٢ جلسه)
- معماری اطلاعات سازمان برای مدیران (٣ جلسه)
- برنامه ریزی راهبردی فناوری اطلاعات (٢ جلسه)
- معماری سازمان هانشکه (٢ جلسه)
- مدیریت منظره ی فای هانشکه (٢ جلسه)
- استانداردهای فنی معماری سازمان هانشکه (٢ جلسه)
- مدل های مرجع، سیاست نامه، بیانیه ی تغییر (١ جلسه)
- مروری بر روشگان های معماری سازمان (١ جلسه)
- برنامه ریزی راهبردی فناوری اطلاعات کونیگزبرگ (١ جلسه)
- معماری سازمانی در ایران–پیشینه و مدل ملی (١ جلسه)
- مدل های بلوغ معماری سازمانی (١ جلسه)
- از حاکمیت داده تا حاکمیت معماری سازمانی تا تحول رقمی (شامل مروری بر آی.تی.آی.ال و کوبیت) (٢ جلسه)
ارزیابی
- آزمون های میان ترم و پایانی: ١٢ نمره
- آزمونک ها: ۶ نمره
- مطالعه ی انفرادی آخرین فناوری ها: ٢ نمره
مراجع
[1] Inge Hanschke. Strategic IT Management. Springer, 2010.
[2] Danny Greefhorst and Erik Proper. Architecture Principles. Springer, 2011.
[3] Martin Op’t Land. Enterprise Architecture Creating Value by Informed Governance. Springer, 2009.
[4] Mario Godinez. The Art of Enterprise Information Architecture. IBM Press, 2010.
نظریه محاسبات (شماره درس: ۴٠۴۵۵)
Theory of Computation
اهداف درس
هدف از ارائه ی این درس آشنایی دانشجویان با مبانی نظریه ی محاسبات و مفاهیم اصلی مدل های محاسبه پذیری، مسائل حل شدنی، منطق ریاضی و مقدمه ای بر نظریه آتوماتا بر ورودی های نامتناهی رشته ای یا درختی است. این درس در واقع تأمین کننده پایه ی نظری لازم برای دانشجویانی است که در دوره های تحصیلات تکمیلی در گرایش های نظریه ی محاسبات و الگوریتم یا روش های صوری در مهندسی نرم افزار و درستی یابی سیستم ها تحصیل می کنند، و همچنین منطق ریاضی لازم برای هوش مصنوعی را بنا می نهد.
ریز مواد
- نظریه ی محاسبه پذیری و مقدمه ای بر پیچیدگی محاسبات
- مدل تورینگی محاسبه، تز تورینگ‐چرچ، توابع و زبانهای تصمیم پذیر (بازگشتی)، توابع و زبان های تشخیص پذیر (بازگشتیانه شمارش پذیر)، توابع محاسبه نا پذیر، مساله ی توقف، ماشین تورینگ جهانی، ماشین تورینگ چند نواری و ماشین تورینگ غیرقطعی و قضایای معادل بودن آنها (٣ جلسه)
- روش های اثبات تصمیم ناپذیری و تشخیص ناپذیری زبان ها شامل روش کاهش به مساله توقف و روش کاهش تابعی (٢ جلسه)
- مقدمه ای بر سایر مدل های محاسبه (٢ جلسه)
- مدل تورینگی محاسبه، تز تورینگ‐چرچ، توابع و زبانهای تصمیم پذیر (بازگشتی)، توابع و زبان های تشخیص پذیر (بازگشتیانه شمارش پذیر)، توابع محاسبه نا پذیر، مساله ی توقف، ماشین تورینگ جهانی، ماشین تورینگ چند نواری و ماشین تورینگ غیرقطعی و قضایای معادل بودن آنها (٣ جلسه)
- مدل ماشین دسترسی تصادفی (RAM) فون نیومان
- نظریه ی توابع بازگشتی کلینی
- حساب لامبدا چرچ
- سیستم های پست
- قضیه ی بازگشتی و خود‐ارجاعی (١ جلسه)
- تعریف محاسباتی اطلاعات و پیچیدگی رشته ای (٢ جلسه)
- مقدمه ای بر نظریه ی پیچیدگی و مروری بر کلاس های پیچیدگی زمان و حافظه و مسایل دشوار (٣ جلسه)
- منطق ریاضی از منظر نظریه ی محاسبات
- منطق گزاره ها، نحو و معناشناسی آن، سیستم استنتاجی اصل موضوعی و قضایای صحت و تمامیت آن، قضایای تصمیم پذیری منطق گزاره ها (٢ جلسه)
- منطق مرتبه اول، نحو و معناشناسی آن، قضایای فشردگی و لوون هایم‐اسکولم (٢ جلسه)
- سیستم استنتاجی اصل موضوعی منطق مرتبه ی اول و قضیه ی صحت آن (١ جلسه)
- قضیه ی گدل در تمامیت سیستم استنتاجی منطق مرتبه ی اول (١ جلسه)
- قضیه چرچ در تصمیم ناپذیری منطق مرتبه ی اول (٢ جلسه)
- سیستم های اصل موضوعی نظریه اعداد و قضیه ناتمامیت گدل (شکل اول و دوم) (٢ جلسه)
- مقدمه ای بر نظریه آتوماتا بر ورودی های نامتناهی
- آتوماتای بوخی و رابین بر رشته های نامتناهی (٢ جلسه)
- قضایای مربوط به مکمل کردن و آزمون تهی بودن زبان آتوماتای بوخی، آتوماتای بوخی غیرقطعی، قضیه سفرا (٣جلسه)
- مقدمه ای بر رابطه مسایل تصمیم پذیری منطق با نظریه آتوماتا (٢ جلسه)
- مقدمه ای بر آتوماتای بر ورودی درختی (٢ جلسه)
ارزیابی
- آزمون میان ترم (٢۵ ٪کل نمره)
- آزمون پایان ترم (۴٠ ٪کل نمره)
- حداقل شش سری تمرین (٢۵ ٪کل نمره)
- ارزش یابی مستمر در کلاس شامل چند امتحانک از پیش اعلام شده (١٠ ٪از نمره اصلی و با امکان حداکثر معادل ۵ ٪نمره کمکی)
- گزارش و ارائه ی پژوهش (اختیاری حداکثر ١۵ ٪نمره اضافی)
مراجع
[1] G. Boolos, J. Burgess, and R. Jeffrey. Computability and Logic. 5th edition, Cambridge UniversityPress, 2007.
[2] D. Kozen. Theory of Computation. Springer, 2006.
[3] S. Hedman. A First Course in Logic: An introduction to model theory, proof theory, computability,and complexity. Oxford University Press, 2004.
[4] M. Sipser. Introduction to the Theory of Computation. 2nd edition, Thompson Co., 2006.
نظریه بازی ها (شماره درس : 40456)
Game Theory
اهداف درس
نظریه ی بازی ها کاربردهای وسیعی در بسیاری از حوزه ها دارد که مهم ترین آن ها حوزه های اقتصادی، کسب وکار، علوم اجتماعی است. به طور کلی در نظریه ی بازی ها با سیستم هایی شامل عامل های هوشمند و خودخواه سروکار داریم که هر کدام از آن ها بنا به مصالح خویش وضعیت سیستم را تغییر می دهند. نظریه ی بازی ها ابزار تحلیل این گونه از سیستم ها را در اختیار ما قرار می دهد و کمک می کند که بتوانیم آن ها را به شیوه ای درست و منطقی کنترل کنیم. هدف از این درس آشنایی مقدماتی با مفاهیم این نظریه و چند نمونه از کاربردهای آن در مدل سازی، تحلیل ریاضی و شبیه سازی است.
ریز مواد
- بازی های فرم نرمال (normal Form Games) (۴ جلسه)
- رفتار منطقی (Rational Behavior) و تابع سودمندی (Utility Function)
- تعریف بازی های فرم نرمال
- نقطه تعادل نش (Nash Equilibrium) ساده و ترکیبی
- مثال های متنوعی از بازی های فرم نرمال کلاسیک
- روش های محاسبه نقاط تعادل در بازی های فرم نرمال ساده
- بازی های فرم گسترده (Extensive Form Games) (٢ جلسه)
- تعریف بازی های فرم گسترده
- تعادل زیربازی کامل (Subgame Perfect Equilibrium)
- مثال های متنوعی از بازی های فرم گسترده کلاسیک
- روش های محاسبه ی نقاط تعادل در بازی های فرم گسترده ساده
- نظریه بازی های تکاملی (Evolutionary Game Theory) (٢ جلسه)
- استراتژی های تکاملی پایدار
- ارتباط با تعادل های نش
- استراتژی های تکاملی پایدار ترکیبی
- پارادوکس برائس (Braess Paradox) مدل سازی ترافیک شبکه ها با استفاده از نظریه بازی ها (١ جلسه)
- مدل سازی نظریه بازی های ترافیک
- ترافیک نقطه ی تعادل
- پارادوکس برائس
- بازار های تطابق (Matching Markets) (٢ جلسه)
- گراف های دوبخشی
- تطابق کامل
- قیمت های پاک کننده بازار
- ارتباط با مزایده ها
- مدل سازی قدرت و چانه زنی (Bargaining) (٢ جلسه)
- مدل سازی ارتباط دو انسان (راه کار چانه زنی نش، بازی نهایی)
- مدل سازی تبادل بین دو انسان (خروجی های پایدار، خروجی های متوازن)
- طراحی مکانیزم مزایده های ساده (۵ جلسه)
- تعریف مزایده و مدل سازی مبتنی بر نظریه بازی ها
- اقسام مزایده ها و ارتباط آن ها با یکدیگر حداقل شامل مزایده آلمانی، ژاپنی، انگلیسی، اولین قیمت (Auction First Price) و دومین قیمت (Auction Price Second)
- تحلیل مزایده دومین قیمت
- مقدمه ای بر VCG و مزایده های جست وجوی حمایت شده (Sponsored Search Auction)
- مدل های تجارت شبکه ای ساده همراه با واسط (٢ جلسه)
- قیمت گذاری در بازار
- مدل سازی تجارت بر روی شبکه های واسط دار با استفاده از نظریه بازی ها
- نقاط تعادل و ارتباط با مزایده ها
- مدل سازی سیگنال های ارتباطی و آبشارهای اطلاعاتی (٣ جلسه)
- بازی های سیگنالی (Signaling Game)
- تئوری سخن‐عمل (speech-act)
- قانون بیز و تصمیم گیری در شرایط عدم اطمینان
- اعمال گله ای (Herding)
- آبشارهای اطلاعاتی
- تحلیل بازار، تاثیرات شبکه ای (Network Effects) و بیگانگی ها (Externalities) (٢ جلسه)
- تحلیل بازار بدون در نظر گرفتن تاثیرات شبکه ای
- تحلیل بازار با در نظر گرفتن تاثیرات شبکه ای
- دید پویا به بازارها و نقاط پایدار و ناپایدار
- بیگانگی های مثبت و منفی
- انتخاب جمعی (Social Choice) و مکانیزم های رای گیری (٢ جلسه)
- تعریف انتخاب جمعی و مکانیزم های رای گیری
- آشنایی با مکانیزم های رای گیری معروف
- قضیه عدم امکان ارو (Arrow’s Impossibility Theorem)
- ارزش دارایی ها و دارایی های معنوی (٢ جلسه)
- بیکانگی ها و قضیه کوز (Coase Theorem)
- تراژدی اشتراکات
- دارایی معنوی
- مقدمه ای بر بازی های ائتلافی (Theory Game Coalitional) (١ جلسه)
- تعریف بازی های ائتلافی
- مفهوم هسته
- حل چند نمونه بازی های ائتلافی کلاسیک
- مقدار شپلی (Shapely-Value)
ارزیابی
- تمرین نظری: ٢٠ ٪نمره
- آزمون ها (میان ترم، پایان ترم و آزمونک ها): ٨٠ ٪نمره
مراجع
[1] Yoav Shoham and Kevin Leyton-Brown. Multiagent systems: Algorithmic, game-theoretic, and logical foundations. Cambridge University Press, 2008.
[2] David Easley and Jon Kleinberg. Networks, crowds, and markets: Reasoning about a highly connected world. Cambridge University Press, 2010.
[3] Martin J. Osborne and Ariel Rubinstein. A course in game theory. MIT press, 1994
اندازه گیری و کنترل کامپیوتری (شماره درس: ۴٠۴۶٣)
Computer Measurement and Control
اهداف درس
هدف از اين درس، آشنایی دانش جویان با انواع حسگرها و عملگرها، مدارهای رابط، تقویت کننده و مبدل سطح ولتاژ خروجی حسگرها و فرمان های اعمالی به عملگرها، مدارهای مبدل آنالوگ به دیجیتال و دیجیتال به آنالوگ، بخش پردازنده و دیگر اجزای یک سامانه کنترل کامپیوتری (دیجیتال) است.
ریز مواد
- آشنایی با مفاهیم کنترل روند (٣ جلسه)
- سیستم های کنترل
- بلوک دیاگرام کنترل روند
- ارزیابی سیستم کنترل
- پردازش های آنالوگ و دیجیتال
- واحدها، استانداردها و تعاریف
- پاسخ زمانی حساسه
- دقت محاسبات و کمیت های آماری
- شکل دهی آنالوگ سیگنال (۴ جلسه)
- اصول اولیه ی شکل دهی آنالوگ سیگنال ها
- مدارهای غیرفعال
- مدارهای با تقویت کننده ی عملیاتی
- شکل دهی دیجیتال سیگنال ها (۴ جلسه)
- اصول اولیه ی شکل دهی آنالوگ سیگنال ها
- مبدل ها
- سیستم های جمع آوری اطلاعات
- حساسه های دما (۴ جلسه)
- مقاومت های فلزی
- ترمیستور
- ترموکوپل
- دیگر حساسه های دما
- حساسه های مکانیکی (۴ جلسه)
- حساسه های جابه جایی، موقعیت و وضعیت
- حساسه های نیرو
- حساسه های حرکت
- حساسه های فشار
- حساسه های جریان سیالات
- حساسه های نوری (٢ جلسه)
- آشکارسازهای شدت نور
- دماسنجی از راه دور
- منابع نور
- کنترل نهایی (٣ جلسه)
- عملیات کنترل نهایی
- تبدیل سیگنال
- الکترونیک صنعتی
- فعال کننده ها
- اجزای کنترل کننده
- کنترل روند حالت گسسته (٢ جلسه)
- تعریف
- مشخصات سیستم
- کنترل کننده های رله ای و دیاگرام های نردبانی
- کنترل کننده های منطقی قابل برنامه ریزی
- اصول اولیه ی کنترل کننده ها (١ جلسه)
- مشخصات روند
- پارامترهای سیستم کنترل
- حالات کنترل کننده ی ناپیوسته
- حالات کنترل کننده ی پیوسته
- حالات کنترل ترکیبی
- کنترل کننده های آنالوگ (١ جلسه)
- قابلیت های عمومی
- کنترل کننده های الکترونیکی
- کنترل کننده های پنوماتی
- کنترل کننده های دیجیتال (٢ جلسه)
- روش های کنترل دیجیتال
- به کارگیری کامپیوتر در کنترل روند
- مشخصات اطلاعات دیجیتال
- نرم افزار کنترل کننده
- مثال هایی از کنترل کامپیوتری
ارزیابی
- تمرین های نظری: ۴ نمره
- آزمون های میان ترم و پایانی: ١۶ نمره
مراجع
[1] Curtis D. Johnson. Process Control Instrumentation Technology. 7th edition, Prentice-Hall Interna-tional, Inc., 2006.
[2] Alan J. Crispin. Programmable Logic Controllers and Their Engineering Applications. McGraw-Hill,1990.
فناوری اطلاعات (شماره درس:۴٠۴۶٧)
Information Technology
اهداف درس
حوزه ی گسترده ی به کارگیری رایانه چهارچوب مباحث فناوری اطلاعات را تشکیل می دهد و پیش فهم های این فناوری، گستره ها، اثرات اجتماعی، اقتصادی و فرهنگی را تاثیر گذار تلقی می کنند. دانشجویان در این درس اول با اصول، تعاریف، مفاهیم، کاربردها، اثرات سازمانی و اجتماعی، مفاهیم مدیریتی این فناوری، شالوده ها و معماری آن آشنا می شوند. به دلیل اینکه مهندسان رایانه و فناوری اطلاعات ابداع گران و ترویج کنندگان راه حل های نو در این حوزه هستند باید از آخرین مفاهیم، دستاوردها و حوزه های به کارگیری این فناوری در جهان و ایران آ گاه باشند. گستردگی سطحی مفاهیم این درس به علت عمق دهی به هر مبحث در دروس بعدی، شاکله ی ساختاری آن را تشکیل می دهد.
ریز مواد
- مقدمه (١ جلسه)
- درس اول، ارزش ها و آسیب ها
- تفاوت ها و شباهت ها و اشتراکات رشته های علوم رایانه، مهندسی رایانه، مهندسی نرم افزار، فناوری اطلاعات
- اطلاعات (فا) و سامانه های اطلاعاتی در استانداردهای جهانی
- پیشینه، تعاریف، اصول، چارچوب و پیش فهم ها (٢ جلسه)
- از وینر تا دریفوس، تافلر، کاستلز تا انگاره فای فریمن
- از سایبرنتیک تا رایانه، انفورماتیک ،فناوری اطلاعات
- دیدگاه قائل به تائیر: فناوری نه خوب است نه بد اما قطعا خنثی نیست (کرانبرگ)
- داده، اطلاع و دانش: تعاریف، تفاوت ها و شباهت ها و ارزش های فناوری اطلاعات (٣ جلسه)
- تعاریف داده، اطلاع و دانش و نسبت آن ها
- نظریه ی اطلاعات شانون، ارزش اطلاع لوسین ژراردن
- زیست چرخ های داده، اطلاع و دانش و نسبت آن ها
- انواع ارزش های یک اطلاع
- سازمان های مبتنی بر فاوا در اقتصاد رقمی و مدیریت فناوری اطلاعات
- رایانش شبکه ای و مدیریت فا در سازمان های مبتنی بر فا در اقتصاد رقمی (٢ جلسه)
- شبکه، ابزار و قراردادهای شبکه سازی و انواع شبکه ها و ارتباطات بین شبکه ای و اینترنت
- سیر تکوینی خودکاری سازی در سازمان ها
- دورکاری و سازمان های مجازی
- توان جذب فا، آمادگی الکترونیکی ،رتبه بندی های رقمی و ضوابط و معیارها و شکاف رقمی (٢ جلسه)
- توان جذب فناوری، نحوه ی محاسبه و ارتقای آن
- آمادگی رقمی و شکاف رقمی و کاربردهای این سنجش ها
- مدل های رتبه بندی، پارامترها و نحوه ی محاسبه و ارزش های آن ها
- آمادگی الکترونیکی و مدل محاسباتی آن
- تجارت و کسب و کار الکترونیکی ،هوش تجاری و مخازن داده ای (٣ جلسه)
- تعاریف، تفاوت ها و شباهت های تجارت و کسب و کار الکترونیکی
- انواع پیوندهای متعامل در تجارت الکترونیکی
- انواع مدل های کسب و کاری در اقتصاد رقمی
- هوش تجاری، تعاریف، کاربردها و نحوه ی به کارگیری آن
- مخازن داده ای، تعاریف، معماری و استفاده از آن در تحقق هوش تجاری
- انواع کاوش های داده ای، متنی و وبی و کاربردهای داده کاوی در هوش تجاری
- رایانش بی سیم و متحرک، فراگیر، حی و حاضر و ارزش افزا (٢ جلسه)
- ارتباطات متحرک و بی سیم: شالوده ها و کاربردها
- فناوری های ارتباطی و اطلاعاتی و تحقق رایانش فراگیر
- رایانش حی و حاضر و الزامات آن
- رایانش ارزش افزا و راه های تحقق و الزامات پیاده سازی آن
- سامانه های کاری، بنگاهی، محلی و بین المللی، ویژگی ها و یکپارچه سازی انها (٢ جلسه)
- سامانه های کاری و اولویت های تهیه آنها
- سامانه های جهانی و بین المللی، الزامات طراحی و ویژگی های پیاده سازی
- سامانه های عتیقه یا موروثی، نیازها و راه حل های تجمیع
- فناوری ها و ابزارهای یکپارچه سازی
- سامانه های حامی مدیریت، زنجیره های تامین، برنامه ریزی منابع سازمان و پیوند با مشتریان (٢ جلسه)
- انواع سامانه های اطلاعات مدیریت، اطلاعات راهبردی، اطلاعات اجرا و تصمیم یاری
- معماری و ویژگی ها.
- کاربردها و تنگناها
- انواع ساختارهای اینترنتی، شالوده و معماری فا (٣ جلسه)
- اینترانت ها و اکسترانت ها
- سایت ها، وب نوشت ها، شبکه های اجتماعی تا درگاه های بنگاهی و انواع آن ها
- چارچوب یک ساختار تجارت الکترونیکی
- نسبت معماری و شالوده فا در بنگاه ها
- کاربردهای ترکیبی ارزش افزای امروزین فا (٢ جلسه)
- سامانه های اطلاعات جغرافیائی، معماری و کاربرد
- سامانه جهانی مکان یابی
- سامانه های مدیریت گردش کار
- کاربردها و نحوه ی به کارگیری فناوری سنجش از راه دور
- دورکاری، امکانات و تبعات آن
- اثرات، آداب و امنیت فا (٢ جلسه)
- تبعات حضور گسترده ی فا در جهان
- ضرورت آداب و اخلاق فا و نحوه ی تحقق و پیاده سازی آن
- جهان مجازی، زندگی دوم و تبعات اجتماعی و فرهنگی آن
- امنیت در جهان فا و راه های تحقق آن
- جامعه ی اطلاعاتی و دولت الکترونیکی، خدمات الکترونیکی و شالوده ها (٢ جلسه)
- تعریف دولت الکترونیکی :نیازها و الزامات و پیش نیازهای تحقق آن
- جامعه ی اطلاعاتی، ویژگی ها و الزامات جهانی تحقق آن
- آموزش و یادگیری الکترونیکی، انواع و نیازها و اثرات اجتماعی آن
- انواع خدمات الکترونیکی و کاربردهای آنها
- سیمای ملی و بین المللی فناوری اطلاعات (٢ جلسه)
- پیشینه فناوری اطلاعات در ایران
- متولیان، قوانین، اسناد بالادستی فا در ایران
- صنعت و بازار فا در ایران
- بانک داری الکترونیکی در ایران
- آموزش رایانه و فا در ایران
- نقش پارک های فناوری اطلاعات در انتقال فناوری
- سیمای کنونی فناوری اطلاعات در جهان
ارزیابی
- تمرین های نظری: ٧ نمره
- آزمون های میان ترم و پایانی: ١١ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] Linda Volonino and Efrain Turban. Information Technology for Management Improving Performancein The digital Economy. 8th edition, WILEY, 2011.
[2] Efraim Turban, Dorothy Leidner, Ephraim Mclean and James Wetherbe. Information Technology forManagement, Transforming Organizations in the Digital Economy. 5th edition, John Wiley & SonsInc, 2006.
[3] E.Turban, R.K.Rainer, and R.E.Potter. Introduction to Information Technology. 3rd edition, WILEY,2005.
[4] Urs Birchler and Monika Butler. Information Economics. Routledge, 2007.
[5] E. W. Martin and C. V. Brown. Managing Information Technology. 5th Edilion, Prentice Hall, 2004.
[6] K. D. Willett. Information Assurance Architecture. CRC, 2008.
[7] Thomas. H. Davenport and Laurence Prusak. Information Ecology : Mastering the Information andKnowledge Environment. OXFORD University Press, 1997.
ایجاد چابک نرم افزار (شماره درس: ۴٠۴٧۵)
Agile Software Development
اهداف درس
هدف این درس، آشنا کردن دانشجویان کارشناسی مهندسی کامپیوتر با مفاهیم، اصول و روش های پیشرفته ی ایجاد چابک سیستم های نرم افزاری است. دانشجویان پس از مروری بر اصول چابکی و متدولوژی XP ،با متدولوژی های DSDM و DAD آشنا خواهند شد، و از آن ها در کنار الگوها و رویه های کاربردی چابک برای ایجاد یک سیستم نرم افزاری استفاده خواهند نمود.
ریز مواد
- مقدمه: مروری بر مفاهیم اولیه و تاریخچه ی ایجاد چابک ،منشور چابک و اصول چابکی (١ جلسه)
- آشنایی با متدولوژی XP(Extreme Programming ) (٢ جلسه)
- متدولوژی DSDM(Dynamic Systems Development Method)
- چارچوب کلی و اصول و قواعد (٢ جلسه)
- فاز امکان پذیری (Feasibility) (١ جلسه)
- فاز مبانی (Foundations) (٢ جلسه)
- فاز ایجاد تکاملی (Evolutionary Development) (٢ جلسه)
- فاز مستقرسازی (Deployment) (٢ جلسه)
- نقش ها، محصولات و رویه های کاربردی (٣ جلسه)
- متدولوژی DAD (Disciplined Agile Delivery)
- چارچوب کلی (١ جلسه)
- فاز آغاز (Inception) (١ جلسه)
- فاز تفصیل (Elaboration) (٢ جلسه)
- فاز ساخت (Construction) (٢ جلسه)
- فاز انتقال (Transition) (١ جلسه)
- فعالیت های تکراری و رویه های کاربردی (٢ جلسه)
- رویه های کاربردی چابک (Agile Practices): مدیریت تیم، طراحی و Kanban (٣ جلسه)
- الگوها (٣ جلسه)
ارزیابی
- آزمون: آزمون های میان ترم و پایان ترم (۶٠ درصد نمره)
- تمرین و پروژه: تمرینات در قالب یک پروژه ی DSDM یا DAD تعریف شده و به تدریج در طول نیم سال انجام شده و تحویل داده می شوند (۴٠ درصد نمره).
مراجع
[1] D. Wells. Extreme Programming: A Gentle Introduction. Published online at:http://www.extremeprogramming.org, 2013 (visited: 20 September 2019).
[2] DSDM Consortium. The DSDM Project Framework Handbook. Agile Business Consortium, Publishedonline at: https://www.agilebusiness.org/page/TheDSDMAgileProjectFramework, 2014 (visited: 20September 2019).
[3] S. W. Ambler and M. Lines. Disciplined Agile Delivery: A Practitioner’s Guide to Agile SoftwareDelivery in the Enterprise. IBM Press, 2012.
[4] Agile Alliance. Agile 101: Subway Map to Agile Practices. Published online at:https://www.agilealliance.org/agile101/subway-map-to-agile-practices/, 2015 (visited: 20 September2019).
[5] E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
مهندسی کاربرد (شماره درس: ۴٠۴٧٨)
Application Engineering
اهداف درس
هدف اصلی از این درس، ایجاد ارتباط بین آموخته های دانشجویان در دروس انتزاعی فناوری اطلاعات نظیر مدیریت استراتژیک، تجارت الکترونیک و دروس عملیاتی نظیر پایگاه داده، شبکه و برنامه نویسی است. در این راستا اهداف فرعی شامل آشنایی با اجزای سازنده راه حل های فناوری اطلاعات و متدولوژی های ایجاد یک سیستم از طریق ترکیب این اجزا؛ شناخت سامانه های رایج و حوزه ی کاربرد هر یک از آنها نظیر ERP ،CRM و پرتال؛ آشنایی با میان افزارها و پلتفرم های قابل استفاده در طراحی راه حل های فناوری اطلاعات: آشنایی با مفاهیم تولید سیستم های مدرن و فناوری های روز؛ آشنایی با روش های مواجهه با سیستم های قدیمی در سازمان ها نیز دنبال می شوند. سازمان هایی که در این درس به عنوان هدف در نظر گرفته می شوند، سازمانٰ های بزرگ و توزیع شده هستند که نیاز به راهکارهای توزیع شده و پیچیده تر فناوری اطلاعات دارند.
ریز مواد
- مقدمه (٣ جلسه)
- آشنایی با استراتژی های سازمانی
- آشنایی با سیستم های رایج در حوزه کسب و کار
- آشنایی با سازمان ها و سیستم های توزیع شده
- آشنایی با سیستم های کاربردی (٧ جلسه)
- تعریف سیستم های کاربردی
- آشنایی با سیستم های کاربردی رایج نظیر Portal،CRM ،ERP
- نحوه ی ارتباط سیستم های کاربردی با استراتژی های سازمانی
- مدلسازی فرایندهای سازمانی
- نحوه ی شناسایی سیستم های کاربردی بر اساس فرایندهای سازمانی
- متدولوژی شناسایی سیستم های کاربردی
- معماری (٧ جلسه)
- معماری نرم افزار
- معماری داده ها
- معماری راه حل
- یکپارچه سازی سیستم ها (٨ جلسه)
- نحوه مواجهه با سیستم های قدیمی موجود در سازمان
- نحوه یکپارچه سازی سیستم ها با هم (یا با سیستم های قدیمی)
- انباره داده ها و استفاده از آن جهت یکپارچه سازی
- استراتژی های تعویض یا بازسازی سیستم های قدیمی
- الگوهای مهندسی مجدد
- میان افزارها و تکنولوژی های نوین جهت تعامل سیستم ها با هم (۵ جلسه)
- معماری سرویس گرا
- وب سرویس، J2EE،CORBA و ...
- مدیریت تراکنش های توزیع شده
- تبادل پیام به صورت غیرهمگام
ارزیابی
- تمرین های نظری و عملی: ٣ نمره
- آزمون های میان ترم و پایانی: ١۵ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] Amjad Umar. Enterprise Architectures and Integration with SOA – Concepts, Methodoly and a Toolset.NGE Solutions, 2010.
[2] Amjad Umar. e-Business and Distributed Systems Handbook (from strategies to working solutions).NGE Solutions, 2003.
[3] Hans-Erik Eriksson and Magnus Penker. Business Modeling with UML, 2000
زبان های توصیف سخت افزار (شماره درس: ۴٠۴٨٣)
Hardware Description Languages
اهداف درس
هدف از این درس آشنایی دانش جویان با ویژگی های موردنیاز در زبان های توصیف سخت افزار در مقایسه با زبان های نرم افزاری، مرور و معرفی سه زبان معروف طراحی سخت افزار شامل VHDL ،وریلاگ، و سیستم سی، کارکردن با زبان های فوق و شناخت تفاوت های مهم بین آن ها در مدل سازی سخت افزار و نیز درک تفاوت های مدل سازی سخت افزار و مدل سازی سیستم با سیستم سی است.
ریز مواد
- زبان سیستم سی و نحوه ی مدل سازی سخت افزار با آن
- تاریخچه و روند رشد زبان سیستمی
- ماژول و اجزای آن
- پورت و انواع آن، مفهوم سیگنال و کاربردهای آن
- انواع روال (process) در سیستم سی و کاربردهای آن ها
- داده گونه ها (Types Data) در سیستم سی، منطق دوحالته، منطق چهار حالته، داده گونه ها برای عملیات محاسباتی، داده گونه ها برای عملیات بیتی
- types data Complex ،نحوه تعریف و استفاده از struct برای سیگنال ها و پورت ها
- روش های پیاده سازی مدارهای ترکیبی و ترتیبی با سیستم سی، استفاده از انواع مختلف پروسس برای این کار و تفاوت های آن ها
- ماشین حالت و انواع میلی و مور آن، روشهای پیاده سازی ماشین حالت با سیستم سی، توصیف ضمنی ماشین حالت، توصیف صریح ماشین حالت
- سنتز مدل های سیستم سی، سنتز مدارهای ترکیبی، نکات مهم برای تولید مدار موردنظر، جلوگیری از تولید Latch، سنتز مدارهای ترتیبی و سبک توصیه شده برای این کار
- مدل (FSMD) Finite State Machine with Datapath و اهمیت آن، نحوه ی پیاده سازی این مدل با سیستم سی
- زبان VHDL و نحوه ی مدل سازی سخت افزار با آن
- تاریخچه و روند رشد و نقاط قوت VHDL
- مرور ساختار کلی زبان
- انواع تاخیر در VHDL
- توصیف ساختاری، روش های اتصال درگاه ها، مثال طراحی فلیپ فلاپ، مثال طراحی ساختارهای تکراری
- نحوه ی پارامتری کردن طرح و تعریف پیکربندی (config)
- انواع داده ها، آرایه ها، داده های فیزیکی
- منطق چند مقداره و بسته های مربوطه IEEE
- دستورالعمل process ،طراحی ماشین حالت
- زیرمجموعه ی قابل سنتز و سبک های طراحی
- مرور سریع زبان وریلاگ و مقایسه ی کیفی زبان های سیستم سی، VHDL و وریلا
ارزیابی
- تمرین های نظری: ٣ نمره
- آزمون های میان ترم و پایانی: ١۵ نمره
- آزمونک ها: ٢ نمره
مراجع
[1] SystemC User’s Guide. Ver. 2.0, SystemC Consortium, 2002.
[2] J Bhaskar. A SystemC Primer. Star Galaxy Publishing, 2002.
[3] Peter J. Ashenden. The designer’s guide to VHDL. Elsevier (Morgan Kaufmann), 2008.
[4] Z. Navabi. VHDL: Analysis and Modeling of Digital Systems. McGraw Hill, 1998.
[5] D. L. Perry. VHDL: Programming by examples. McGraw Hill, 2002
مقدمه ای بر بیوانفورماتیک (شماره درس: ۴٠۴٩۴)
Introduction to Bioinformatics
اهداف درس
هدف از این درس، آشنایی دانشجویان با ضروریات تحلیل داده های بیوانفورماتیک است. این ضروریات شامل مروری از کلیدی ترین مباحث زیست شناسی سلولی و مولکولی، الگوریتم های پایه ای بیوانفورماتیک ،روش های آماری و یادگیری ماشین مورد استفاده در تحلیل داده های زیست‐پزشکی ،داده پایگاه های بیوانفورماتیک ،و تحلیل عملی داده ها بر روی سیستم عامل لینوکس و در محیط برنامه نویسی R است. انتظار می رود دانشجویان پس از گذراندن این درس، دانش پایه ای لازم را برای مطالعه ی پژوهش های جدید و گذراندن سایر درس های این حوزه کسب کنند.
ریز مواد
- مقدمه
- ضرورت یادگیری بیوانفورماتیک
- کاربردهای بیوانفورماتیک در پژوهش های زیست شناسی و پزشکی
- ضروریات زیست شناسی سلولی و مولکولی
- اجزای سلول
- ساختار DNA و تکثیر آن
- ساختار RNA و رونویسی
- ساختار پروتئین و ترجمه
- تنظیم بیان ژن ها
- تمایز سلولی
- آشنایی با داده های بیوانفورماتیک
- فن آوری های تولید داده های زیستی شامل Microarray و Next Generation Sequencing
- داده پایگاه های مهم داده های زیست پزشکی
- ادغام داده های داده پایگاه های مختلف
- مقدمه ای بر روش های آماری
- تحلیل تفاوت بیان ژن
- آزمون های آماری
- مقدار پی
- روش های اصلاح مقدار پی
- کاهش ابعاد داده های زیستی
- تحلیل مقدماتی داده های زیستی با استفاده از زبان برنامه نویسی R
- مقدمه ای بر برنامه نویسی در R
- نمایش داده ها در R
- کتابخانه های R/Bioconductor
- تحلیل داده های بیان ژنی Microarray
- تحلیل داده های RNASeq
- تحلیل GO و Pathway
- تحلیل GSEA
- متاآنالیز داده ها
- آشنایی با تحلیل داده ها روی سرور Linux
- ارتباط با سرور لینوکس از طریق SSH و انتقال امن فایل
- برنامه نویسی Bash در محیط لینوکس
- نصب و به کارگیری نرم افزارهای بیوانفورماتیک به صورت مستقیم
- آشنایی با BioConda
- اجرای هم روند نرم افزارها
- مقدمه ای بر الگوریتم های بیوانفورماتیک
- هم ردیفی توالی های زیستی
- درخت های تبار (Phylogenetic Trees)
- اسمبلی ژنوم
- تطابق خوانده ها با ژنوم (Alignment)
- پیداکردن موتیف ها (Motifs)
- تحلیل های زیست شناسی سیستمی
- کاربرد معادلات دیفرانسیل
- تحلیل تمایز
- تحلیل داده های ساختاری
- آشنایی با مساله های تاخوردگی RNA و پروتئین
- اتصال پروتئین ها
ارزیابی
- کارگاه (٢ نمره)
- تمرین (۵ نمره)
- پروژه (٣ نمره)
- آزمون میان ترم (۵ نمره)
- آزمون پایان ترم (۵ نمره)
مراجع
[1] Bruce Alberts et al. Essential Cell Biology. Garland Science, 2013.
[2] Neil C. Jones and Pavel A. Pevzner. An Introduction to Bioinformatics Algorithms. The MIT Press,2004.
یادگیری ماشین (شماره درس: ۴٠٧١٧)
Machins Learning
اهداف درس
در این درس مفاهیم یادگیری ماشین مطرح شده و آشنایی با شاخه های مختلف این زمینه صورت گرفته و جنبه های مهم عملی و نظری آن معرفی خواهد شد. در شاخه های مختلف تکنیک ها و الگوریتم های مهم بحث می شود. در حوزه ی یادگیری با ناظر، مسائل رگرسیون و دسته بندی مورد بررسی قرار خواهند گرفت و روش های حل این مسائل و ارزیابی مدل ها معرفی خواهد شد. برای مساله دسته بندی انواع دیدگاه ها و الگوریتم های مربوطه مطرح می شود. در بخش یادگیری بدون ناظر در مورد تخمین چگالی، کاهش ابعاد بدون ناظر و خوشه بندی صحبت خواهد شد. در نهایت آشنایی مختصری با شاخه ی یادگیری تقویتی صورت خواهد گرفت.
ریز مواد
- مقدمه ای بر یادگیری ماشین و مرور مباحث احتمال و جبرخطی (١ جلسه)
- روش های تخمین ML و MAP (١ جلسه)
- رگرسیون (٣ جلسه)
- رگرسیون خطی و غیرخطی
- بیش برازش (overfitting)
- تجزیه ی خطا به بایاس (bias )، واریانس (variance) و نویز
- منظم سازی (regularization)
- رگرسیون آماری (statistical ): ارتباط توابع هدف مبتنی بر SSE با تخمین های احتمالی ML و MAP برای مساله ی رگرسیون
- ارزیابی (evaluation) و تنظیم کردن مدل ها (١ تا ٢ جلسه)
- اعتبارسنجی (validation)
- اعتبارسنجی متقابل (Cross-validation)
- انتخاب مدل (model selection)
- انتخاب ویژگی (feature selection)
- دسته بندی (classification)
- دسته بندهای احتمالی (probabilistic classifiers) (سه جلسه)
- تئوری تصمیم (theory decision (و دسته بند بهینه بیز (Bayes optimal classifier)
- دسته بندی احتمالی جداساز (discriminative) و مولد (generative)
- Logistic regression دو دسته ای و چند دسته ای (multi-class) و بیز ساده (Naïve Bayes)
- دسته بندی با استفاده از توابع جداسازی (discriminant functions) (شش جلسه)
- پرسپترون (Perceptron)
- جداساز خطی فیشر (Fisher)
- ماشین بردار پشتیبان (SVM) و هسته (kernel)
- شبکه های عصبی (neural networks)
- درخت تصمیم (Decision Tree) (یک جلسه)
- آنتروپی و بهره اطلاعاتی (Information Gain)
- الگوریتم ٣ID
- توقف رشد و هرس درخت تصمیم
- روش های یادگیری مبتنی بر نمونه (instance-based) (دو جلسه)
- تخمین چگالی غیر پارامتری (Non-parametric density estimation)
- دسته بند k‐نزدیکترین همسایه (k-Nearest Neighbors )
- رگرسیون خطی وزن دار محلی (Locally Weighted Linear Regression)
- تئوری یادگیری محاسباتی (٢ جلسه)
- PAC-learning
- VC dimension
- کمینه سازی ریسک ساختاری (structural risk minimization)
- یادگیری جمعی (ensemble learning) (دو جلسه)
- Bagging و Boosting
- AdaBoost
- کاهش ابعاد (dimensionality reduction) بدون ناظر (٢ جلسه)
- تحلیل مولفه اصلی (PCA)
- تحلیل مولفه مستقل (ICA)
- خوشه بندی (clustering) (سه جلسه)
- روش های افرازی partitional) :k-means ،EM+GMM)
- روش روش های سلسله مراتبی (hierarchical)
- یادگیری تقویتی (reinforcement learning) (دو جلسه)
- فرایند تصمیم مارکوف (MDP)
- روش های یادگیری مبتنی بر مدل (model-based)
- روش تکرار مقدار (value iteration) و تکرار سیاست (policy iteration)
- روش های یادگیری بی مدل (mode-freel)
- الگوریتم های Q-learning ،SARSA تفاضل زمانی (Temporal Difference)
- مباحث پیشرفته در یادگیری ماشین
ارزیابی
- تمرین: ٢٠٪
- میان ترم: ٢۵٪
- پایان ترم: ٣۵٪
- امتحان های کوتاه: ١٠٪
- پروژه: ١٠٪
مراجع
[1] C. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.
[2] T. Mitchell. Machine Learning. MIT Press, 1998.
[3] K. Murphy. Machine Learning: A Probabilistic Perspective. MIT Press, 2012.
[4] T. Hastie, R. Tibshirani, and J. Friedman. The elements of statistical learning. 2nd edition, 2008.
آزمون نرم افزار (شماره درس: ۴٠٨٢٨)
Software Testing
اهداف درس
هدف از این درس پرداختن به روش های مدل رانه ی تولید داده ی آزمون از روی ساختار های منتزع شده از مدل های مختلف نرم افزاراز جمله کد و ورودی به طور سیستماتیک است. همچنین در طی این درس در حد امکان ابزارهای لازم برای خودکارسازی مراحل آزمون نرم افزار معرفی می گردد.
ریز مواد
- مقدمه (٢ جلسه)
- آزمون مدل رانه (٢ جلسه)
- آزمون خودکار (٢ جلسه)
- آزمون چابک (٢ جلسه)
- معیارهای پوشش (٢ جلسه)
- افراز فضای ورودی (۴ جلسه)
- پوشش گراف (۴ جلسه)
- پوشش منطق (۴ جلسه)
- آزمون مبتنی بر نحو (۴ جلسه)
- ملاحظات عملی (٢ جلسه)
- ساخت ابزار آزمون (٢ جلسه)
ارزیابی
- تمرین (١۵ درصد نمره) و پروژه (١۵ درصد نمره):
- دانشجویان به گروه های ٢ یا ٣ نفره تقسیم می شوند و هر گروه سه صورت برنامه در اندازه های کوچک ،متوسط و بزرگ را پیشنهاد می نماید. پس از تصویب برنامه ها، هر گروه تمرینات (حداقل ٣ تمرین) را در طول ترم براساس مسائل پیشنهادی خود پاسخ خواهد داد.
- برنامه ی بزرگ صورت پروژه هر گروه را مشخص می کند که یک ماه پس از پایان امتحانات فرصت دارند تا پروژه خود را تحویل نمایند.
- دانشجویان باید حتی الامکان با استفاده از نرم افزارهای موجود در این زمینه کار کنند.
- سمینار: دانش جویان به طور اختیاری سمیناری را در ارتباط با مطالب درس پس از گرفتن تایید ارایه می نمایند (١٠ درصد نمره اضافه).
- آزمون: حدود ٧ آزمون کوچک به عنوان امتحان میان ترم (١۵ درصد نمره)، و آزمون نهایی (۵۵ درصد نمره)
مراجع
[1] P. Ammann and J. Offutt. Introduction to Software Testing. Cambridge University Press, 2017.
آز سخت افزار (شماره درس: ۴٠١٠٢)
Hardwer Lab
اهداف درس
هدف این آزمایشگاه تقویت و ارتقای مهارت دانشجویان در طراحی و پیاده سازی سامانه های سخت افزاری برای مسائل پرکاربرد در کشور یا جهان است. از جمله ی این کاربردها می توان به سیستم های نهفته، سامانه های داده برداری و نظارت، اینترنت اشیا و سیستم های دیجیتال در حوزه های مختلف صنعتی و پزشکی اشاره کرد. بنابراین دانشجویان باید معلومات کسب شده در طول دوران تحصیل خود را در زمینه های سخت افزار و معماری کامپیوتر و سیستم عامل و برنامه نویسی در سطح سیستم را به کار ببندند تا یک وسیله ی کارآمد برای حل یک مسئله ی واقعی را بسازند. موضوعات این آزمایشگاه ثابت نیست و پروژه محور می باشد که در طول نیم سال های مختلف ممکن است تغییر کند.
ریز مواد
- پیاده سازی یک سیستم نمونه برداری علائم حیاتی و نظارت بیمار با گوشی تلفن همراه
- طراحی و شبیه سازی یی سامانه ی کنترل ترافیی
- پیاده سازی یک سامانه ی کنترل ورود و خروج بر اساس اثر انگشت/کارت RFID
- طراحی سامانه ی جایابی خودروها و اعلام وضعیت محل های پارک در پارکینگ به کمک دوربین/حسگرهای مجاورت/حسگرهای نوری ...
- تشخیص مطابقت ظاهری بدنه ی خودروهای وارد شده به پارکینگ با هنگام خروج آن ها از جهت عدم آسیب دیدگی در طول مدت توقف با استفاده از چهار دوربین
- پیاده سازی دست کم یک کاربرد مبتنی بر اینترنت اشیا و یا سامانه های سایبرفیزیکی (Cyber Physical Systems) به کمک حسگرها/محرک ها/بوردهای در دسترس امروزی
- پیاده سازی عملی دست کم یک آزمایش «سخت افزار در حلقه» (Hardware in the loop) برای یک کاربرد پردازش سیگنال یا مشابه و ترجیحاً به کمک نرم افزار Simulink/Matlab
مراجع
[1] M. A. Mazidi, Sh. Chen, and E. Ghaemi. Atmel ARM programming for embedded systems. MicroDig-italEd, Vol 5, 2017.
[2] M. A. Mazidi, Se. Naimi, and Sa. Naimi. AVR Microcontroller and Embedded Systems: Using Assemblyand C. MicroDigitalEd, 2017.
[3] R. H. Chu and D. D. Lu. Project-based lab learning teaching for power electronics and drives. IEEETransactions on Education, Vol. 51, No.1, pp. 108-113, 2008.
[4] J. Ma and J.V. Nickerson. Hands-on, simulated, and remote laboratories: A comparative literaturereview. ACM Computing Surveys, Vol. 38, No. 3, 2006
آز اتوماسیون صنعتی (شماره درس: ۴٠۴٠١)
Industrial Automation Lab
اهداف درس
هدف این آزمایشگاه آشنا کردن عملی دانشجویان با ابزار، تجهیزات و نرم افزارهای مورد استفاده در اتوماسیون صنعتی است به گونه ای که دانشجویان بتوانند در چنین محیط هایی نمونه های خودکارسازی فرایندهای تولید، مونتاژ، بسته بندی، نظارت و کنترل کیفیت را درک و در صورت لزوم طراحی و پیاده سازی کنند و یا ارتقا دهند.
ریز مواد
- محرک ها (Actuators) مثل انواع موتور، سرووموتور و درایورها، شیر و دریچه های لوله (Valve )، و انواع رله و کلیدهای قطع و وصل
- آموزش چگونگی نصب و راه اندازی نرم افزار LabView و آشنایی با محیط کار آن
- ساخت و آزمایش یک TCP Connection در محیط LabView
- طراحی و پیاده سازی یک آسانسور سه طبقه در محیط LabView
- آشنایی با نرم افزار LogoSoft
- آشنایی با یک یا چند دستگاه کنترلر صنعتی برنامه پذیر (Programmable Logic Controller: PLC) پراستفاده در صنعت و زبان نردبانی (Ladder) و همین طور بوردهای واسط ورودی/خروجی آنالوگ، دیجیتال مبتنی بر کامپیوتر های PC صنعتی
- پیاده سازی چراغ راهنمایی چهار زمانه به کمک تابلوی آموزشی چراغ راهنمایی و پیاده سازی آن بر روی تابلوی PLC
- طراحی سیستم همزن مخازن به کمک تابلوی آموزشی و پیاده سازی آن بر روی تابلوی PLC
- طراحی و پیاده سازی سیستم آسانسور در محیط نرم افزار LogoSoft
- آشنایی با برنامه نویسی سطح بالاتر اتوماسیون به زبان یا با الگوی 7 Step یا Grafcet
مراجع
[1] G. Dunning. Introduction to Programmable Logic Controller. 3rd edition, Thompson, 2017.
[2] F. D. Petruzella. Programmable Logic controllers. McGraw-Hill Education, 5th edition, 2016.
[3] C. T. Jones, STEP 7 programming made easy in LAD, FBD, and STL: A practical guide to programming S7-300/S7-400 Programmable logic Controllers. Patrick-Turner Publishing, 2013.
[4] R. D. Rosandich. Fundamentals of Ladder diagram programming. EC & M Books, 1999.
[5] J. Ravis and J. Kring. LabVIEW for Everyone: Graphical Programming Made Easy and Fun. 3rdedition, Prentice Hall, 2006.
آز VLII (شماره درس :40402)
VLSI Lab
اهداف درس
هدف این آزمایشگاه، آشنا کردن دانشجویان با ابزارهای خودکار طراحی و تحلیل تراشه های دیجیتال می باشد. دانشجویان با استفاده از این ابزار، مطالبی را که در درس طراحی VLSI آموخته اند مورد آزمایش قرار می دهند.
ریز مواد
- پیاده سازی وارونگر و تحلیل خصوصیات مداری آن
- طراحی و شبیه سازی یک شمارنده ی ۴ بیتی با استفاده از HSpice
- پیاده سازی گیت NOR3 در سه منطق Pseudo-NMOSX،Static CMOS و Domino Logic و بررسی آن ها
- تعیین اندازه ی گیت ها برای بهینه کردن سرعت یک مسیر
- طراحی یک گیت با استفاده از ابزار رسم جانمایی و درستی یابی آن
- آشنایی با ابزار سنتز Design Compiler و سنتز یک ضرب کننده ی ١۶ بیتی برای بهینه کردن سرعت و مساحت
- محاسبه ی توان مصرفی مدار با استفاده از ابزار Power Compiler و اعمال روش Clock Gating و مقایسه ی توان مصرفی با توان مصرفی پیشین
- آشنایی با ابزار طراحی جانمایی (layout) خودکار Encounter SOC و طراحی جانمایی یک مدار ترتیبی ساده
- طراحی جانمایی مدار
- طراحی خودکار جانمایی مدار ضرب کننده ی ١۶ بیتی و درستی یابی عملکرد آن توسط Modelsim و Hsim
مراجع
[1] Wayne Wolf. Modern VLSI Design: IP-Based Design. 4th edition, Prentice-Hall, 2009.
آز مهندسی نرم افزار (شماره درس: ۴٠۴٠۴)
Software Engineering Lab
اهداف درس
این درس برای دانشجویان کارشناسی ارائه می شود و هدف از آن پرداختن به مباحث کاربردی مهندسی نرم افزار است. در این درس روش های مهندسی در قالب پروژه های عملی تجربه می شوند. کار آزمایشگاه در پنج حوزه ی اصلی مهندسی نرم افزار شامل مهندسی نیازمندی ها، تحلیل، طراحی، پیاده سازی و آزمون انجام می پذیرد. آزمایشگاه از ١٠ جلسه ی سه ساعته تشکیل می شود. به هر گروه یک پروژه تخصیص داده می شود که کار خود را تا پایان ترم برروی آن پروژه و مستندات آن انجام خواهد داد.
ریز مواد
- معرفی درس، گروه بندی، تعیین پروژه و سایر مباحث اولیه ی درس
- مهندسی نیازمندی ها
- تحلیل (قسمت ١)
- معرفی کلی بحث تحلیل و جایگاه آن نسبت به دو فعالیت مهندسی نیازمندی ها و طراحی
- پرداختن به چیستی به جای چگونگی
- نمودار فعالیت سطح بالا مربوط واقعیت بخشی به موارد کاربرد
- نحوه ی شناسایی کلاس های تحلیل و نمودار کلاس ها
- الگوهای تحلیل (در صورت امکان، فعالیت اضافه)
- تحلیل (قسمت ٢)
- نمودار ترتیب و استفاده از آن در تحلیل
- Package Diagram
- الگوهای تحلیل (در صورت امکان، فعالیت اضافه)
- طراحی (قسمت ١)
- معرفی کلی بحث طراحی
- الگوها و معیار های GRASP :کتاب Larman فصل ١٧ و ٢۵ بعلاوه ارائه کامل مثال ارائه شده در فصل ١٧٬٨ این کتاب با جزئیات آن
- طراحی (قسمت ٢)
- انواع Coupling و Cohesion با ذکر مثال
- نمودار کلاس ها با همه جزئیات آن
- منبع: پوشش کامل از مطالب فصلهای ٣ و ۵ از کتاب UML Distilled ویرایش سوم
- پیاده سازی: Rafactoring
- معرفی بحث Refactoring:
- منبع: کتاب Refactoring نوشته ی Martin Fowler
- ارائه ی یک مثال از کد پیاده سازی شده و Rafactoring در آن
- منبع: پوشش کامل فصل ١ کتاب Refactoring نوشته ی Martin Fowler
- معرفی بو های بد در کد (Smells Bad)
- منبع: فصل ٣ کتاب Refactoring نوشته Martin Fowler
- معرفی بحث Refactoring:
- آزمون (١ قسمت): Unit Testing
- Unit Testing مفاهیم
- معرفی کلی چارچوب های موجود در این زمینه برای زبان ها و محیط های برنامه سازی مختلف
- معرفی کامل JUnit و ابزار جانبی مرتبط با آن و پشتیبانی های IDEها از آن
- ارائه ی یک مثال از نحوه ی استفاده از JUnit و اجرای آن
- آزمون (٢ قسمت) :ISP and PPC Testing Techniques
- Input Space Partitioning
- (Based on Source Code) Graph Based Prime Path Coverage
- جلسه ی پایانی و جمع بندی
- ارائه های اختیاری
- ابزارهای مدیریت پیکربندی نرم افزار (Software Configuration Management Tools )
- ابزارهای ارزیابی پوشش آزمون به همراه ارائه ی یک مثال عملی (Test Coverage Tools)
مراجع
[1] M. Fowler. Analysis Patterns: Reusable Object Models. Addison-Wesley, 1996.
[2] M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
[3] M. Fowler. UML Distilled. 3rd edition, Addison-Wesley, 2004.
[4] E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
[5] C. Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. 3rd edition, Prentice-Hall, 2004
جمع بندی
در این صفحه تمامی دروس رشته کامپیوتر را به تفصیل معرفی کردیم و در خصوص هدف هر درس، سرفصل هر یک از دروس، نحوه ارزشیابی در هر درس و مراجع آن صحبت کردیم
ساختار دروس رشته کامپیوتر چگونه است؟
دروس رشته کامپیوتر به 5 دسته زیر تقسیم میشود: 1- دروس عمومی رشته کامپیوتر 2- دروس پایه رشته کامپیوتر 3- دروس اصلی رشته کامپیوتر 4- دروس تخصصی رشته کامپیوتر 5- دروس اختیاری رشته کامپیوتر در این صفحه بصورت کامل در مورد یک از دروس رشته کامپیوتر صحبت کردهایم
دروس رشته کامپیوتر چند تا است و چه دروسی را باید پاس کنیم؟
در طی دوره لیسانس دانشجویان باید 22 واحد درس عمومی، 19 واحد دروس پایه، 67 واحد دروس تخصصی، 29 واحد دورس اختیاری و 3 واحد پروژه و 3 واحد کارآموزی که در مجموع 140 واحد میشود را اخد کنند. البته اینکه دانشجویان رشته مهندسی کامپیوتر چند واحد از دروس عمومی، پایه، تخصصی یا اختیاری بردارند ممکن است از یک دانشگاه به دانشگاه دیگر متفاوت باشد. در این صفحه تک تک دروس رشته کامپیوتر معرفی شده است