با حضور اساتید و مولفین موسسه بابان: نتیجه‌گرا

دروس رشته کامپیوتر

موسسه بابان
0 دیدگاه
دروس رشته کامپیوتر

دروس رشته کامپیوتر

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

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

حتما بخوانید: تحصیل در رشته کامپیوتر هنرستان فنی و حرفه‌ای و کاردانش

نقشه راه قبولی کنکور کامپیوتر

منابع قبولی کنکور کامپیوتر

عادل آخکندی قبولی علوم کامپیوتر دانشگاه صنعتی شریف

هدیه مفتخری قبولی معماری کامپیوتر دانشگاه صنعتی شریف

پویا خانی قبولی هوش مصنوعی دانشگاه صنعتی شریف

فاطمه محمدی قبولی مهندسی آی تی دانشگاه صنعتی امیرکبیر

رشته کامپیوتر در هنرستان فنی و حرفه‌ای: ورود به دنیای فناوری

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

دروس رشته کامپیوتر در هنرستان فنی و حرفه‌ای

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

جدول مقایسه دروس رشته کامپیوتر در هنرستان فنی و حرفه‌ای

جدول مقایسه دروس رشته کامپیوتر در هنرستان فنی و حرفه‌ای

ویژگی‌های رشته کامپیوتر در هنرستان فنی و حرفه‌ای:

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

مقایسه با هنرستان کاردانش:

در هنرستان کاردانش، رشته کامپیوتر دارای تنوع بیشتری از زیرشاخه‌ها است و به دانش‌آموزان امکان انتخاب رشته مورد علاقه خود را می‌دهد. همچنین، تعداد دروس عملی در هنرستان کاردانش بیشتر بوده و دانش‌آموزان بیشتر وقت خود را در کارگاه‌ها و آزمایشگاه‌ها سپری می‌کنند.

انتخاب بین رشته کامپیوتر در هنرستان فنی و حرفه‌ای و کاردانش:

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

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

دروس رشته کامپیوتر در هنرستان کاردانش

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

زیرشاخه‌های پرطرفدار رشته کامپیوتر در کاردانش:

  • برنامه‌نویسی
  • پایگاه داده
  • تصویرسازی دیجیتال
  • عیب‌یابی سیستم‌های رایانه‌ای
  • تولید و توسعه دهنده پایگاه‌های اینترنتی
  • تولیدکننده چندرسانه‌ای
  • برنامه‌نویسی بازی‌های رایانه‌ای
  • تولید محتوای الکترونیکی
  • طراحی و توسعه صفحات وب

جدول دروس رشته کامپیوتر در هنرستان کاردانش

جدول دروس رشته کامپیوتر در کاردانش

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

دروس رشته کامپیوتر در دانشگاه

دوره‌ی کارشناسی مهندسی کامپیوتر دوره‌ای به طول چهار سال و برای دانشجویان شرکت‌کننده در دوره‌ی کار و آموزش پایدار (کوآپ) پنج سال است. دوره‌ی کارشناسی مهندسی کامپیوتر دارای گرایش نیست. در طی این دوره دانشجویان لازم است ۱۴۰ واحد درسی به شرح زیر اخذ کنند.

در این بخش، ساختار کلی دروس رشته کامپیوتر را به طور دقیق بررسی می‌کنیم. همانطور که می‌دانید، دروس این رشته به پنج دسته اصلی تقسیم می‌شود:

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

ساختار دروس رشته کامپیوتر

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

خرید کتاب دانشگاهی

دروس عمومی رشته کامپیوتر

در زیر دروس عمومی رشته کامپیوتر عنوان شده است

علاوه بر اخذ درس‌های مندرج در ردیف‌های ۱ تا ۶، اخذ یک درس از هر یک از مجموعه دروس مشخص‌شده در ردیف‌های ۷ تا ۱۱ الزامی است.

دروس عمومی رشته کامپیوتر

دروس پایه رشته کامپیوتر

در زیر دروس پایه رشته کامپیوتر عنوان شده است.

دروس پایه رشته کامپیوتر

توضیحات مختصر در مورد ستون‌ها:

  • کد درس: یک کد عددی یا حروف الفبایی است که برای شناسایی هر درس استفاده می‌شود.
  • عنوان درس: نام کامل درس را نشان می‌دهد.
  • تعداد واحد: تعداد واحد درسی که برای آن درس منظور می‌شود.
  • پیش نیاز: درسی که باید قبل از این درس گذرانده شود.
  • هم نیاز: درسی که همزمان با این درس یا در ترم‌های نزدیک به آن باید گذرانده شود.

نکات مهم:

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

جدول دروس اصلی رشته کامپیوتر

در زیر دروس اصلی رشته کامپیوتر عنوان شده است.

دروس اصلی رشته کامپیوتر

دروس تخصصی رشته کامپیوتر

در زیر دروس تخصصی رشته کامپیوتر بیان شده است.

دروس تخصصی رشته کامپیوتر

* اخذ حداقل 7 درس از جدول دروس تخصصی الزامی است.

** درس «ایجاد چابک نرم‌افزار» با درس «طراحی شیء‌گرای سیستم‌ها» و درس «برنامه‌سازی موبایل» با درس «برنامه‌سازی وب» قابل تطبیق است.

آموزش دروس کنکور کامپیوتر

دروس اختیاری رشته کامپیوتر

در زیر دروس اختیاری رشته کامپیوتر بیان شده استدروس اختیاری رشته کامپیوتر

اخذ حداقل 13 واحد شامل 4 درس سه واحدی و 1 آزمایشگاه از جدول فوق الزامی است.

بررسی دقیق هر یک از دروس رشته کامپیوتر

تاکنون به طور کلی با دروس رشته کامپیوتر آشنا شدیم. در ادامه قصد داریم هر یک از این دروس رشته کامپیوتر را به طور دقیق بررسی کنیم تا درک عمیق‌تری از محتوای آن‌ها و نقششان در مسیر یادگیری شما به دست آوریم.

در این بررسی به موارد زیر خواهیم پرداخت:

هدف درس: هدف اصلی از تدریس هر یک از دروس رشته کامپیوتر چیست؟ چه مهارت‌ها و دانش‌هایی قرار است به دانشجو منتقل شود؟

سرفصل‌ها: چه مباحثی در هر درس از دروس رشته کامپیوتر پوشش داده می‌شود؟

نحوه ارزیابی: چه روش‌هایی برای سنجش یادگیری دانشجویان در هر درس استفاده می‌شود؟ (مثلاً امتحان، پروژه، ارائه و …)

منابع و مراجع: چه کتاب‌ها، مقالات و ابزارهای آموزشی برای مطالعه بیشتر توصیه می‌شود؟

بررسی دروس پایه رشته کامپیوتر

ابتدا به بررسی دروس پایه از دروس رشته کامپیوتر می‌پردازیم. دروس پایه، زیربنای قوی برای یادگیری دروس تخصصی‌تر در رشته کامپیوتر فراهم می‌کنند. با ما همراه باشید تا به طور دقیق‌تر با این دروس آشنا شویم.

درس: ریاضی عمومی 1 (شماره درس: 22015) 

General Mathematics  1

شماره درس: ۲۲۰۱۵

تعداد واحد: ۴

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: –

هم‌نیاز: –

هدف درس:

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

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

ریز مواد:

  1. اعداد (۸ جلسه)
    • مروری تاریخی بر مفهوم عدد اعداد گویا و ناگویا، اصل تمامیت، مختصات دکارتی، مختصات قطبی، اعداد مختلط، جمع و ضرب و ریشه، نمایش اعداد مختلط، جمع و ضرب و ریشه، نمایش هندسی اعداد مختلط، دنباله‌های عددی
  2. توابع پیوسته و مشتق (۱۲ جلسه)
    • تابع، جبر توابع، حد و قضایای مربوط، حد بی‌نهایت و حد در بی‌نهایت، حد چپ و راست، پیوستگی، مشتق، دستورهای مشتق‌گیری، تابع معکوس و مشتق آن، مشتق توابع مثلثاتی و توابع معکوس آن‌ها، قضیه‌ی رل، قضیه‌ی میانگین، بسط تیلور، کاربردهای هندسی و فیزیک مشتق، خم‌ها، سرعت و شتاب در مختصات قطبی، کاربرد مشتق در تقریب ریشه‌های معادلات
  3. انتگرال (۸ جلسه)
    • تعریف انتگرال توابع پیوسته و قطعه قطعه پیوسته، قضایای اساسی حساب دیفرانسیل و انتگرال، تابع اولیه، روش‌های تقریبی برآورد انتگرال، کاربرد انتگرال در محاسبه‌ی مساحت و حجم و طول منحنی و گشتاور و مرکز ثقل و کار و نظایر آن (در مختصات دکارتی و قطبی)، لگاریتم و تابع نهائی و مشتق آن‌ها، تابع‌های هذلولوی، روش‌های انتگرال گیری مانند تعویض متغیر و جزء‌به‌جزء و تجزیه‌ی کسرها
  4. سری‌های تابعی (۴ جلسه)
    • دنباله و سری به عنوان تابع، سری‌های عددی و قضایای همگرایی سری توانی، سری تیلور، و سری فوریه، قضیه‌ی تیلور با باقی‌مانده و بدون باقی‌مانده

ارزیابی:

  • آزمون‌ میان‌ترم: ۸ الی ۱۰ نمره
  • آزمون‌ پایانی: ۱۰ الی ۱۲ نمره

منابع و مراجع:

  • کتاب‌های درسی:
    • [1] Robert A. Adams and Cristopher Essex. Calculus, A Complete Course. 9th edition, Pearson, 2018
    • [2] James Stewart. Calculus. 8th edition, Cengage learning, 2016
    • [٣] سیاوش شهشهانی”حساب دیفرانسیل و انتگرال،“ جلد اول، ویراست دوم، انتشارات فاطمی، ١٣٩۶.
  • منابع آنلاین:
    • وب‌سایت‌های دانشگاهی
    • فیلم‌های آموزشی
    • نرم‌افزارهای آموزشی )مانند MATLAB، Mathematica)

اهمیت درس:

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

درس: ریاضی عمومی 2 (شماره درس: 22016)

General Mathematics 2

شماره درس: ۲۲۰۱۶

تعداد واحد: ۴

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: ریاضی عمومی ۱

هم‌نیاز: –

هدف درس:

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

ریز مواد:

  1. آشنایی با جبر خطی (۱۰ جلسه)
    • مختصات فضائی، بردار در فضا، ضرب عددی، دستگاه معادلات خطی، عملیات روی سطرها، معکوس ماتریس، حل دستگاه معادلات، استقلال خطی، پایه، تبدیل خطی و ماتریس آن، دترمینان، مقدار و بردار ویژه، ضرب برداری، معادلات خط و صفحه
  2. خم‌ها و رویه‌ها (۴ جلسه)
    • رویه‌ی درجه دو، تابع برداری و مشتق آن، سرعت و شتاب، خمیدگی و بردارهای قائم بر منحنی
  3. مشتق توابع چندمتغیری (۴ جلسه)
    • توابع چندمتغیری، مشتق سوئی و جزئی، صفحه مماس و خط قائم، گردایان، قاعده‌ی زنجیری برای مشتق جزئی، دیفرانسیل کامل
  4. بهینه‌سازی (۴ جلسه)
    • نقاط بحرانی و عادی، رده‌بندی نقاط بحرانی، یافتن بیشینه و کمینه بدون قید و با قید روش لاگرانژ
  5. انتگرال چندگانه (۴ جلسه)
    • انتگرال‌های دوگانه و سه‌گانه و کاربردهای آن‌ها در مسائل هندسی و فیزیکی، تعویض ترتیب انتگرال‌گیری
  6. انتگرال روی خم و میدان‌های برداری (۶ جلسه)
    • مختصات استوانه‌ای و کروی، میدان برداری، انتگرال منحنی‌الخط، انتگرال رویه‌ای، دیورژانس، چرخه، لاپلاسین، پتانسیل، قضایای گرین و دیورژانس و استوکس.

ارزیابی:

  • آزمون‌ میان‌ترم: ۸ الی ۱۰ نمره
  • آزمون‌ پایانی: ۱۰ الی ۱۲ نمره

منابع و مراجع:

  • کتاب‌های درسی:
    • حساب دیفرانسیل و انتگرال، جلد دوم، سیاوش شهشهانی
    • Calculus, James Stewart
  • منابع آنلاین:
    • وب‌سایت‌های دانشگاهی
    • فیلم‌های آموزشی
    • نرم‌افزارهای آموزشی (مانند MATLAB، Mathematica)

اهمیت درس:

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

درس: معادلات دیفرانسیل (شماره درس: 22034)

Defferential Equations

شماره درس: ۲۲۰۳۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: –

هم‌نیاز: ریاضی عمومی ۲

هدف درس:

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

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

ریز مواد:

  1. مقدمه (۱ جلسه)
    • نکات کلی در مورد جواب‌های معادلات دیفرانسیل، دسته‌بندی معادلات دیفرانسیل، قضیه‌ی وجود و یکتایی جواب
  2. معادلات مرتبه‌ی اول (۷ جلسه)
    • معادلات جدایی‌پذیر، معادلات همگن، معادلات قابل تبدیل به معادلات همگن، معادلات کامل، فاکتورهای انتگرال، معادلات خطی مرتبه‌ی اول، معادلات غیرخطی مهم (برنولی، لاگرانژ و …)، دسته‌های منحنی، مسیر‌های قائم، مدل‌سازی معادلات مرتبه‌ی اول
  3. معادلات مرتبه‌ی دوم (۸ جلسه)
    • کاهش مرتبه، مفاهیم مقدماتی لازم معادلات خطی، معرفی جواب عمومی معادله خطی همگن و غیرهمگن، استفاده از یک جواب معلوم برای یافتن جوابی دیگر، معادلات خطی همگن با ضرایب ثابت (مرتبه‌ی دوم و بالاتر)، معادلات خطی غیرهمگن، روش‌های عملگری معادلات با ضرایب غیرثابت (معادلات کوشی، اویلر، …)، نظریه‌ی مقدماتی معادلات با شرایط مرزی (مقادیر و توابع ویژه و …)
  4. جواب‌های سری توانی و توابع خاص (۶ جلسه)
    • مروری بر سری‌های توانی، جواب‌ها حول نقاط عادی، معادله‌ی لژاندر، چندجمله‌ای‌های لژاندر، خواص چندجمله‌ای‌های لژاندر، جواب‌ها حول نقاط غیرعادی (روش فروبنیوس)، معادله‌ی بسل، تابع گاما خواص تابع بسل
  5. تبدیل لاپلاس و کاربردهای آن (۶ جلسه)
    • مقدمه (نکاتی در مورد نظریه لاپلاس) قضیه‌ی وجودی، تبدیل لاپلاس، مشتق و انتگرال، قضایای انتقال و معرفی توابع پله‌ای واحد و تابع دلتای دیراک، موارد استعمال در معادلات دیفرانسیل، مشتق و انتگرال تبدیل لاپلاس، معرفی پیچش (کانولوشن)، معرفی معادلات انتگرالی، حل دستگاه خطی با تبدیل لاپلاس
  6. دستگاه‌های معادلات خطی (۲ جلسه)
    •  معرفی دستگاه‌های  خطی، حل دستگاه‌های خطی همگن و غیرهمگن با ضرایب ثابت، روش‌های مقادیر و توابع ویژه

ارزیابی:

  • آزمون‌ میان‌ترم: ۸ الی ۱۰ نمره
  • آزمون‌ پایانی: ۱۰ الی ۱۲ نمره

منابع و مراجع:

  • کتاب‌های درسی:
    • [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
  • منابع آنلاین:
    • وب‌سایت‌های دانشگاهی
    • فیلم‌های آموزشی
    • نرم‌افزارهای آموزشی (مانند MATLAB, Mathematica)

اهمیت درس:

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

درس: فیزیک 1 (شماره درس: 24011)

Physics 1

شماره درس: ۲۴۰۱۱

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: –

هم‌نیاز: –

هدف درس:

هدف اصلی از این درس، آشنایی دانشجویان با مفاهیم بنیادی مکانیک کلاسیک و ایجاد پایه محکمی برای درک پدیده‌های فیزیکی در دنیای اطراف است. با گذراندن این درس، دانشجویان قادر خواهند بود:

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

ریز مواد:

  1. اندازه‌گیری (۱ جلسه)
  2. حرکت در یک بعد (۱ جلسه)
  3. حرکت در صفحه (۲ جلسه)
  4. دینامیک ذره (۴ جلسه)
  5. کار و انرژی (۳ جلسه)
  6. سامانه‌ی ذرات (۳ جلسه)
  7. تکانه‌ی خطی و برخورد (۲ جلسه)
  8. سینماتیک دورانی (۳ جلسه)
  9. دینامیک دورانی (۴ جلسه)
  10. تعادل (۲ جلسه)
  11. گرانش (۲ جلسه)
  12. نوسان (۳ جلسه)

ارزیابی:

  • تمرین‌های نظری: ۴ نمره
  • آزمون‌ میان‌ترم: ۶ نمره
  • آزمون پایانی: ۱۰ نمره

منابع و مراجع:

  • کتاب‌های درسی:
    • [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
  • منابع آنلاین:
    • وب‌سایت‌های دانشگاهی
    • فیلم‌های آموزشی
    • شبیه‌سازهای فیزیکی

اهمیت درس:

فیزیک 1 به عنوان یکی از دروس پایه در رشته‌های مهندسی و علوم پایه، نقش بسیار مهمی در آموزش مفاهیم اساسی فیزیک و ایجاد پایه محکمی برای درک پدیده‌های طبیعی دارد. مفاهیم آموخته شده در این درس، پایه و اساس بسیاری از دروس تخصصی‌تر مانند مکانیک، الکترومغناطیس و ترمودینامیک را تشکیل می‌دهد.

درس: فیزیک 2 (شماره درس: 24012)

Physics 2

شماره درس: ۲۴۰۱۲

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: فیزیک ۱

هم‌نیاز: –

هدف درس:

هدف اصلی این درس از دروس رشته کامپیوتر، آشنایی دانشجویان با مفاهیم بنیادی الکتریسیته و مغناطیس و درک ارتباط بین آن‌ها است. با گذراندن این درس، دانشجویان قادر خواهند بود:

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

ریز مواد:

  1. بار و ماده (۱ جلسه)
  2. قانون کولون و میدان الکتریکی (۳ جلسه)
  3. قانون گاوس و کاربرد (۲ جلسه)
  4. پتانسیل الکتریکی (۲ جلسه)
  5. خازن و دی‌الکتریک (۳ جلسه)
  6. جریان و مقاومت (۲ جلسه)
  7. مدارهای الکتریکی (۲ جلسه)
  8. میدان مغناطیسی (۲ جلسه)
  9. قانون آمپر (۲ جلسه)
  10. قانون فاراده (۲ جلسه)
  11. خواص مغناطیسی ماده (۱ جلسه)
  12. معادلات ماکسول (۲ جلسه)
  13. مدارهای RLC (۲ جلسه)
  14. جریان AC (۲ جلسه)
  15. امواج EM (۲ جلسه)

ارزیابی:

  • تمرین‌های نظری: ۴ نمره
  • آزمون‌ میان‌ترم: ۶ نمره
  • آزمون پایانی: ۱۰ نمره

منابع و مراجع:

  • کتاب‌های درسی:
  • [1] David Halliday, Robert Resnick, and Jearl Walker. Fundamentals of Physics Extended. 10th Edition, Wiley, 2013
  • [2] 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
  • منابع آنلاین:
    • وب‌سایت‌های دانشگاهی
    • فیلم‌های آموزشی
    • شبیه‌سازهای فیزیکی

اهمیت درس:

فیزیک 2 به عنوان ادامه درس فیزیک 1، دانشجویان را با یکی از مهم‌ترین شاخه‌های فیزیک یعنی الکترومغناطیس آشنا می‌کند. مفاهیم آموخته شده در این درس، پایه و اساس بسیاری از فناوری‌های مدرن مانند الکترونیک، مخابرات و انرژی‌های تجدیدپذیر را تشکیل می‌دهد.

درس: آز فیزیک 2 (شماره درس: 24002)

Physics Lab 2

شماره درس: ۲۴۰۰۲

تعداد واحد: ۱

مقطع: کارشناسی

نوع درس: عملی

پیش‌نیاز: –

هم‌نیاز: فیزیک ۲

 هدف درس:

هدف اصلی این درس از دروس رشته کامپیوتر، تقویت مفاهیم نظری آموخته شده در درس فیزیک 2 به صورت عملی و کسب مهارت‌های تجربی در زمینه الکتریسیته و مغناطیس است. دانشجویان با انجام آزمایش‌های مختلف، قادر خواهند بود:

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

ریز مواد:

حداقل ۱۲ آزمایش از آزمایش‌های زیر با توجه به امکانات موجود در ۱۲ جلسه‌ی ۲ ساعتی کار آزمایشگاهی ارایٔه می‌شود.

  1. روش‌های اندازه‌گیری مقاومت الکتریکی (قانون اهم، پل وتستون، با استفاده از اهم‌متر) و اندازه‌گیری مجموعه مقاومت‌های اتصال: سری و موازی
  2. تحقیق رابطه‌ی R=ρL/A و بررسی تغییرات مقاومت بر حسب طول، مساحت مقطع سیم و مقاومت ویژه (۱ جلسه)
  3. تحقیق قوانین کرشوف در مدار‌های الکتریکی و ا ندازه‌گیری مقاومت دستگاه‌های اندازه‌گیری، از جمله مقاومت درونی و نیروی محرکه یک منبع ولتاژ
  4. مطالعه‌ی شارژ و دشارژ خازن‌ها و تعیین زمان مشخصه‌ی مدار و ظرفیت خازن یا مجموعه‌ی خازن‌ها
  5. اندازه‌گیری نیروی محرکه القایٔی بر حسب طول سیم موثر، سرعت حرکت سیم در میدان مغناطیسی و شدت میدان مغناطیسی
  6. مطالعه‌ی ترانسفورماتورها (تعیین ضریب تبدیل جریان، ولتاژ، محاسبه مقاومت اهمی اولیه و ثانویه، مقاومت ظاهری
  7. بررسی مدارهای متناوب R-L و R-C سری، اندازه‌گیری جریان و ولتاژ هر عنصر در فرکانس‌های متناوب و امپدانس، فاز و در نتیجه تعیین ظرفیت خازن و ضریب خودالقایی سیم پیچ
  8. تعیین امپدانس مدار متناوب R-C-L سری و محاسبه فرکانس تشدید و تعیین ظرفیت خازن یا ضریب خودالقایی
  9. بررسی و مشاهده‌ی پدیده‌ی الکترومغناظیسی، جریان‌های القایی، جریان‌های گردابی، ترمز مغناظیسی و کاربرد آن‌ها
  10. آشنایی بااسیلسکوپ و کاربردآن (مشاهده‌ی انواع امواج متناوب، اندازه‌گیری طول موج، زمان تناوب، اختلاف فاز، مشاهده منحنی‌های لیساژو)
  11. نیروی وارد بر سیم حامل جریان در یک میدان مغناطیسی
  12. بررسی ظرفیت خازن و اندازه‌گیری ضریب دی‌الکتریک آن
  13. بررسی کنتور جریان متناوب (یک‌فاز و سه‌فاز) و اندازه‌گیری‌های مربوطه
  14. الکترواستاتیک-روش‌های القای بار، مولدهای بار الکترواستاتیک (وان دی گراف، ویمشورتس)، کاربردها
  15. ترسیم خطوط الکترواستاتیک (توپوگرافی میدان الکتریکی، هم پتانسیل برای آرایشهای مختلف الکترودها)
  16. بررسی ژنراتورها و الکتروموتورها و اندازه‌گیری‌های مربوطه
  17. اتصالات ستاره و مثلث در جریان‌های سه‌فاز و اندازه‌گیری توان

ارزیابی:

  • گزارش کار آزمایش‌های هفتگی: ۱۰ نمره
  • آزمون پایانی: ۱۰ نمره

منابع و مراجع:

  • کتاب‌های درسی:
  • [1] David Halliday, Robert Resnick, and Jearl Walker. Fundamentals of Physics Extended. 10th Edition, Wiley, 2013
  • [2] 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
  • کتاب راهنمای آزمایشگاه:

 کتاب راهنمای آزمایشگاه فیزیک 2 که شامل توضیحات کامل در مورد هر آزمایش، روش انجام آزمایش، داده‌های مورد انتظار و سوالات برای تحلیل داده‌ها است.

اهمیت درس:

آز فیزیک 2 نقش بسیار مهمی در تکمیل دانش نظری دانشجویان و ایجاد ارتباط بین تئوری و عمل دارد. با انجام آزمایش‌ها، دانشجویان درک عمیق‌تری از مفاهیم الکتریسیته و مغناطیس پیدا کرده و مهارت‌های عملی خود را تقویت می‌کنند.

درس: کارگاه عمومی (شماره درس: ۳۳۰۱۸)

General Workshop

شماره درس: ۳۳۰۱۸

تعداد واحد: ۱

مقطع: کارشناسی

نوع درس: عملی

پیش‌نیاز: –

هم‌نیاز: –

 هدف درس:

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

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

ریز مواد:

  1. کارگاه اتومکانیک
    • دسته‌بندی بخش‌های مختلف خودرو
    • عملکرد موتور چهارزمانه
    • قطعه‌شناسی موتور
    • قطعه‌شناسی سیستم انتقال قدرت
    • قطعه‌شناسی سیستم‌های شاسی
  2. کارگاه ماشین‌ابزار
    • آشنایی با ابزارهای اندازه‌گیری و اندازه‌گذاری از قبیل سوزن خط کش، خط کش، گونیا، کولیس و …
    • آشنایی با ابزارهای براده‌برداری دستی کمان‌اره و سوهان
    • آشنایی با نقشه‌خوانی و خطاهای ساخت
    • توانایی ساخت قطعات ساده‌ی آهنی با استفاده از ابزارهای معرفی‌شده و کنترل ابعادی آن‌ها با ابزارهای اندازه‌گیری
  3. کارگاه برق
    • ایمنی در کار با برق
    • اصول سیم‌کشی معابر و منازل مسکونی
    • ابزارهای بکار‌رفته در سیم‌کشی
    • نقشه‌های سیم‌کشی
    • اجرای یک نمونه نقشه‌ی روشنایی در کابین
  4. کارگاه جوشکاری
    • هدف از کارگاه جوشکاری (الکترود دستی SMAW)
    • آشنایی با دستگاه‌های ترانس جوشکاری
    • تجهیزات مربوط به جوشکاری الکترود دستی از قبیل الکترود، ماسک، چکش جوشکاری، دستکش، میزکار عینک و پیش‌بند جوشکاری
    • نکات ایمنی قبل و حین انجام کار (خطر برق گرفتگی)
    • آشنایی با الکترود و روکش مربوطه
    • توانایی روشن کردن الکترود (قوس)
    • دانستن طول قوس مناسب
    • توانایی جوشکاری به صورت خط جوش ساده بر روی سطح پلیت با ضخامت ۸ میلی‌متر
    • توانایی جوشکاری به صورت خط جوش زیگزاگ (هلالی) بر روی سطح تسمه‌ی آهنی
  5. کارگاه ورق‌کاری
    • آشنایی با ورق‌های فلزی
    • پیاده کردن نقشه (ساخت استند موبایل)
    • آشنایی با ابزارهای مربوطه و کاربرد هر یک (سوزن خط کش، خط کش فلزی، قیچی و چکش پلاستیکی)
    • آشنایی با دستگاه‌های خم کن و نحوهٔ کار با آن
    • آشنایی با دستگاه نقطه‌جوش پدالی و نحوه‌ی کار با آن برای اتصال ورق
  6. کارگاه مدل‌سازی
    • آشنایی با ابزارهای نجاری و مدل‌سازی
    • توضیحات و آشنایی با ریخته‌گری و مدل‌سازی و انواع آن و روش‌های تولید در این حوزه
    • ساخت مدل ریخته‌گری طبق نمونه و با استفاده از ابزارهای معرفی‌شده‌ی مدل‌سازی

ارزیابی:

  • کارگاه اتومکانیک: ۴ نمره (امتحان تئوری)
  • کارگاه ماشین‌ابزار: ۴ نمره
  • کارگاه برق: ۴ نمره
  • کارگاه جوشکاری و ورق‌کاری: ۴ نمره
  • کارگاه مدل‌سازی: ۴ نمره

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

اهمیت درس:

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

اهمیت درس کارگاه عمومی به دلایل زیر است:

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

به طور خلاصه، درس کارگاه عمومی نقش بسیار مهمی در تربیت مهندسان کامل و آماده برای ورود به بازار کار دارد. این درس به دانشجویان کمک می‌کند تا:

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

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

درس: مبانی برنامه‌نویسی (شماره درس: 40153)

Fundamentals of Programming

شماره درس: ۴۰۱۵۳

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: –

هم‌نیاز: –

هدف درس:

هدف اصلی این درس از دروس رشته کامپیوتر، آشنایی دانشجویان با مفاهیم پایه برنامه‌نویسی به زبان سی و توانمندسازی آن‌ها برای نوشتن برنامه‌های کاربردی است. با گذراندن این درس، دانشجویان قادر خواهند بود:

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

ریز مواد:

  • مفاهیم اولیه (۱ جلسه)
    • تاریخچه‌ی توسعه‌ی کامپیوتر (سیستم‌های عامل، زبان‌های برنامه‌سازی)
    • معرفی اجزای اصلی کامپیوتر
    • تاریخچه‌ی C/C++
    • برنامه‌سازی ساخت‌یافته و نوشتن کد مهندسی‌ساز
    • ساختار و مراحل ساخت و اجرای برنامه
  • محاسبات در کامپیوتر (۱ جلسه)
    • سیستم‌های عددی (دودویی، ده‌دهی، مبنای شانزده)
    • جمع و تفریق در مبناها
    • تبدیل مبناها
  • آشنایی با الگوریتم و فلوچارت (۲ جلسه)
    • تعریف الگوریتم و مراحل حل مسئله
    • اجزای الگوریتم (محاسبات، تصمیم‌گیری، تکرار)
    • نمایش تصویری الگوریتم به وسیله‌ی فلوچارت
    • نمونه‌هایی از چند الگوریتم اولیه
  • مقدمات برنامه‌سازی (۱ جلسه)
    • متغیرها، انواع داده
    • دستورهای ورودی/خروجی
    • آشنایی با کدنویسی خوب (توضیح‌گذاری، جدانویسی)
    • محاسبات ریاضی (جمع، تفریق، ضرب، تقسیم، باقی‌مانده)
    • اولویت محاسبات
    • مقایسه
  • فرمت‌بندی ورودی/خروجی (۱ جلسه)
    • قالب‌بندی خروجی با printf
    • کنترل دقت نمایش اعداد در خروجی
    • چاپ اعداد صحیح، اعداد ممیزدار، رشته‌ها، و کاراکترها
    • خواندن قالب‌بندی شده از ورودی با scanf
  • دستورها (۳ جلسه)
    • دستورهای انتخاب (if, if/else, switch)
    • دستورهای تکرار (while, for, do/while)
    • تبدیل داده‌ها
    • ثابت‌ها (const)
    • عملگرهای منطقی
    • عملگر انتخاب ? :
    • استفاده از typename
  • توابع (۴ جلسه)
    • توابع ریاضی
    • توابع تصادفی
    • توابع زمان
    • الگوی توابع (prototype)
    • رده‌های ذخیره‌سازی (static, register, extern)
    • حوزه‌های تعریف (file, function, block)
    • پشته در فراخوانی تابع
    • توابع بازگشتی
    • مقایسه توابع بازگشتی و غیربازگشتی
    • پرونده‌های header
  • آزمون و خطایابی برنامه (۱ جلسه)
    • استفاده از دستورهای خروجی برای پیدا کردن خطا
    • استفاده از امکانات IDE برای پیدا کردن خطا
  • آرایه‌ها (۵ جلسه)
    • تعریف و به‌کارگیری آرایه‌ها
    • ارسال آرایه به تابع
    • جستجوی دودویی در آرایه
    • مرتب سازی آرایه
    • آرایه‌های چندبعدی
    • تعریف ثابت‌ها با استفاده از define
  • اشاره‌گرها (۳ جلسه)
    • عملگرهای اشاره‌گری
    • فراخوانی با ارجاع توسط اشاره‌گرها
    • استفاده از const در اشاره‌گرها
    • عملگر sizeof
    • محاسبات آدرس بر روی اشاره‌گرها (جمع، تفریق)
    • ارتباط بین اشاره‌گرها و آرایه‌ها
    • آرایه‌ای از اشاره‌گرها
  • کاراکترها و رشته‌ها (۱ جلسه)
    • تبدیل کاراکترها
    • توابع رشته‌ای
    • دست‌کاری رشته‌ها
  • ساختارها (۲ جلسه)
    • تعریف ساختار (struct)
    • دست‌رسی به اعضای ساختار
    • ارسال ساختارها به توابع
    • ایجاد نام‌های مترادف با typedef
    • نوع داده‌ی union
    • ثابت‌های شمارشی (enum)
    • عملگرهای بیتی
  • آشنایی با زبان سی++ (۱ جلسه)
    • ورودی و خروجی با استفاده از جویبار‌ها
    • فضای نام‌ها، استفاده از using
    • عملگر تغییر حوزه “::”
    • انواع فراخوانی توابع (با مقدار و با ارجاع)
    • توابع درون‌خط (inline)
    • تعریف مقدار پیش فرض در توابع
    • سربارگذاری توابع
  • آشنایی با رده‌ها (۱ جلسه)
    • رده‌ها (class)
    • اعضای داده‌ای و توابع عضو
    • حوزه‌های public و private
    • سازنده‌ها
    • مقداردهی اشیاء
    • ارسال/دریافت اشیاء به/از توابع
  • پرونده‌ها (۱ جلسه)
    • خواندن و نوشتن در پرونده‌های ترتیبی
    • جویبار‌های ورودی و خروجی
    • خواندن و نوشتن در پرونده‌های تصادفی (اختیاری)
  • مباحث اختیاری (در صورت فرصت)
    • آشنایی با رده‌های نمونه نظیر 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….
  • منابع آنلاین:
    • آموزش‌های ویدئویی
    • سایت‌های برنامه‌نویسی
    • انجمن‌های برنامه‌نویسی

اهمیت درس:

مبانی برنامه‌نویسی به عنوان اولین قدم برای ورود به دنیای برنامه‌نویسی، نقش بسیار مهمی در آموزش دانشجویان دارد. با یادگیری این درس، دانشجویان می‌توانند مشکلات را به صورت منطقی تحلیل کرده و برای حل آن‌ها برنامه بنویسند.

 

درس: آمار و احتمال مهندسی (شماره درس: 40181)

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
  • منابع آنلاین:
    • دوره‌های آموزشی آنلاین
    • نرم‌افزارهای آماری )مانند R، Python)

اهمیت درس:

آمار و احتمال مهندسی یکی از دروس پایه و اساسی در بسیاری از رشته‌های مهندسی است. با یادگیری این درس، دانشجویان می‌توانند داده‌های مهندسی را تحلیل کرده، مدل‌های آماری مناسب برای سیستم‌ها ایجاد کرده و تصمیم‌گیری‌های بهتری بگیرند.

بررسی دروس اصلی:

در ادامه به بررسی دروس اصلی رشته کامپیوتر می‌پردازیم.

درس: کارگاه کامپیوتر (شماره درس: 40108)

Computer Workshop

شماره درس: ۴۰۱۰۸

تعداد واحد: ۱

مقطع: کارشناسی

نوع درس: عملی

پیش‌نیاز:  

هم‌نیاز:  

هدف درس:

هدف اصلی از این درس، آشنایی دانشجویان با مفاهیم پایه فناوری اطلاعات و مهارت‌های عملی کار با کامپیوتر است. با گذراندن این درس از دروس رشته کامپیوتر، دانشجویان قادر خواهند بود:

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

ریز مواد:

هریک از ده مورد فهرست زیر در یک جلسه‌ی سه‌ساعته ارائه می‌شود.

  • آشنایی با سخت‌افزار کامپیوتر
    • ساختار کلی و عملکرد اجزاء سخت‌افزار شامل صفحه کلید، موشواره، نمایشگر، کیس، برد اصلی، حافظه‌ها، پردازنده، سیستم خنک‌کننده، منبع تغذیه، نحوه‌ی ارتباطات اجزاء
  • اصول و مفاهیم کامپیوتر و سیستم عامل
    • فهم کلی جایگاه سیستم عامل در کامپیوتر و آشنایی عمومی با سیستم عامل ویندوز، عملکردهای اولیه مانند کپی، جستجو در فایل‌ها، کلیدها و میانبرهای متداول، منوی استارت و امکانات موجود در آن، فرمان‌های مهم و سوییچ‌ها در خط فرمان، متغیرهای محیطی، نوشتن فایل‌های Windows Registry،Domain ،Active Directory ،BAT، نرم‌افزارهای پرکاربرد مانند آنتی‌ویروس، Download Manager، محیط‌های برنامه‌نویسی، ابزارهای گرافیکی
  • آشنایی مقدماتی با حروف‌چینی کامپیوتری
    • کار با نرم‌افزار مایکروسافت ورد، ساخت یک سند جدید، قالب‌دهی به کلمه، پاراگراف، صفحه، آشنایی با استایل، افزودن جدول/تصویر/فرمول به متن، ویژگی‌های خاص برای نگارش فارسی
  • آشنایی مقدماتی با پاورپوینت و اکسل
    • کاربرد پاورپوینت و اکسل، ایجاد و ویرایش فایل‌ها، مفهوم Slide Master در پاورپوینت، پویانمایی‌ها در پاورپوینت، قالب‌دهی سلول‌های صفحه در پاورپوینت، استفاده از فرمول‌ها و توابع در اکسل، انواع نمودارها
  • آشنایی با سرویس‌های کاربردی
    • سرویس‌های ابری گوگل شامل پست الکترونیکی جیمیل، گوگل درایو و گوگل داکس، سرویس‌های مدیریت گروهی مانند Trello و Doodle، سرویس‌های سوال و جواب و تبادل دانش مانند Stack Exchange و Stack Overflow
  • آشنایی با شبکه‌های کامپیوتری
    • ساختار کلی شبکه و اینترنت، موتورهای جستجو، مفاهیم اولیه مانند URL و IP، آشنایی با پروتکل‌های متداول مانند FTP ،HTTP و IMAP، آشنایی با دستورهای پرکاربرد در شبکه مانند ipconfig ،ping و traceroute
  • آشنایی با سیستم عامل لینوکس
    • مفهوم shell، جستجو در فایل‌ها، مجوزها، Help، فشرده‌سازی، دستورهای مهم مانند passwd ،cp ،ls ،cd ،grep ،su ،chmod و kill
  • مقدمات برنامه‌نویسی وب
    • اصول کلی HTML، برنامه‌نویسی مقدماتی HTML، آشنایی با JavaScript و CSS، ویرایشگرهای HTML مانند FrontPage
  • مقدمات برنامه‌نویسی 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

اهمیت درس:

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

درس: ساختمان‌های گسسته (شماره درس: 40115)

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
  • منابع آنلاین:
    • دوره‌های آموزشی آنلاین
    • مقالات علمی
    • انجمن‌های علمی

اهمیت درس:

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

درس: برنامه‌نویسی پیشرفته (شماره درس: 40244)

Advanced Programming

شماره درس: ۴۰۲۴۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: مبانی برنامه‌سازی

هم‌نیاز: –

هدف درس:

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

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

ریز مواد:

  • آشنایی با زبان جاوا (۱ جلسه)
    • تاریخچه
    • ویژگی‌های زبان جاوا
    • اولین برنامه در جاوا
  • مفاهیم اولیه برنامه‌سازی در جاوا (۳ جلسه)
    • متغیر، متد، شرط، حلقه
    • داده‌های اولیه (Primitive Data Types)
    • رشته
    • آرایه
  • مقدمه‌ای بر طراحی و برنامه‌سازی شیءگرا (۲ جلسه)
    • تاریخچه تکامل رویکردها تا رویکرد شیءگرایی
    • مفاهیم اولیه شیءگرایی
    • طرز تفکر و طراحی شیءگرا
    • لفاف‌بندی، واسط، رده، بسته، دسترسی
  • برنامه‌سازی شیءگرا در جاوا (۶ جلسه)
    • نحوه تعریف کلاس‌ها
    • اشیاء در حافظه و مدیریت حافظه
    • بارگذاری اولیه و مرگ اشیاء در حافظه
    • زباله‌روب (Garbage Collector)
    • روش‌های ارسال پارامتر در زبان‌های مختلف و جاوا
    • سازنده
    • this
    • اعضای ایستا
    • بسته (package)
    • آشنایی اولیه با نمودار UML Class Diagram
  • وراثت (۲ جلسه)
    • مفهوم وراثت
    • Protected, abstract, super
    • وراثت چندگانه در سایر زبانها
  • چندریختی (۱ جلسه)
    • چندریختی با کمک وراثت
    • مفهوم virtual در زبان C++
    • اعضای final
  • واسط (interface) (۱ جلسه)
    • کاربرد واسط
    • وراثت چندگانه با کمک واسط
  • آزمون نرم‌افزار (۱ جلسه)
    • مفهوم تضمین کیفیت نرم‌افزار، اهمیت، جایگاه و مصادیق آن
    • آزمون واحد
    • نوشتن آزمون واحد با استفاده از JUnit
    • چگونگی تست پرتاب استثناء با استفاده از JUnit
    • مفهوم بدل‌سازی (Mocking) و مقدمه ای بر یک کتابخانه بدل‌سازی در جاوا
  • الگوهای طراحی (۱ جلسه)
    • تعریف الگوها در مهندسی نرم‌افزار، جایگاه و اهمیت آن‌ها
    • الگوهای طراحی GoF و دسته‌بندی آن‌ها
    • شرح الگوهای طراحی Singleton، Sate، Strategy، Observer، Fecade
    • شرح الگوی معماری MVC
  • بازآرایی کد (Refactoring) (۲ جلسه)
    • چیستی بازآرایی و اهمیت نوشتن کد تمیز
    • نشانه‌های کد بد
    • الگوهای بازآرایی
      • ساختن متدها
      • انتقال ویژگی‌ها بین اشیاء
      • سازماندهی داده‌ها
      • ساده‌سازی عبارات شرطی
      • ساده‌سازی فراخوانی متدها
  • مدیریت خطا و استثنا (۲ جلسه)
    • مدل سنتی مدیریت خطا
    • چارچوب مدیریت خطا در جاوا
    • مزایای این مدل
    • Finally, Runtime Exception
  • داده‌های عام (Generics) (۱ جلسه)
    • متدها و کلاس‌های عام
    • کاربردها
    • تولید و استفاده از کلاس‌های عام
    • کلاس‌های عام و وراثت
    • ماهیت کلاس‌های عام و تفاوت آن‌ها با Template در زبان C++
  • مجموعه‌ها و ظرف‌ها (Containers) (2 جلسه)
    • ساختمان‌داده‌های موجود در جاوا
    • Colections, ArrayList, LinkedList, Set, Map
    • Iterator
  • فایل، جویبار و شبکه (۲ جلسه)
    • ورودی و خروجی در فایل
    • Serialization
    • برنامه‌سازی تحت شبکه (socket)
  • برنامه‌سازی همروند (۱ جلسه)
    • نیاز به همروندی
    • همروندی در جاوا
    • طول عمر یک thread
    • آشنایی اولیه با مفاهیم Synchronization و critical 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
  • منابع آنلاین:
    • آموزش‌های ویدئویی
    • مستندات رسمی جاوا
    • انجمن‌های برنامه‌نویسی

اهمیت درس:

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

درس: مدارهای منطقی (شماره درس: 40212)

Logic Design

شماره درس: ۴۰۲۱۲

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: –

هم‌نیاز: –

هدف درس:

هدف اصلی از این درس، آشنایی دانشجویان با اصول طراحی و تحلیل مدارهای دیجیتال است. با گذراندن این درس از دروس رشته کامپیوتر، دانشجویان قادر خواهند بود:

  • مفاهیم پایه جبر بولی را درک کنند.
  • انواع گیت‌های منطقی و عملکرد آن‌ها را بشناسند.
  • مدارهای ترکیبی و ترتیبی را طراحی و تحلیل کنند.
  • قطعات منطقی برنامه‌پذیر )PLD) را معرفی شوند.

ریز مواد:

  • نمایش اعداد در مبنای ۲ (۲ جلسه)
    • تغییر مبنای اعداد
    • نمایش اعداد منفی با اندازه‌ی علامت، مکمل ۲ و مکمل ۱
    • جمع و تفریق اعداد
    • رقم نقلی
    • نمایش BCD اعداد
  • مدارهای ترکیبی (۳ جلسه)
    • جبر بول و جبر کلیدی
    • گیت‌های منطقی
    • جملات minterm و Maxterm
    • نمایش SOP و POS
    • تاخیر و مسیر بحرانی
  • ساده‌سازی توابع منطقی (۴ جلسه)
    • روش جبری
    • جدول کارنو
    • مفهوم don’t care و ورودی ممنوعه
    • پیاده سازی مدارهای دو طبقه
    • مفهوم Race، Hazard و 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
    • معرفی SPLD
    • 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.
  • منابع آنلاین:
    • آموزش‌های ویدئویی
    • شبیه‌سازهای مدار منطقی
    • مقالات علمی

اهمیت درس:

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

دروس رشته کامپیوتر در هنرستان فنی و حرفه‌ای

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

درس: آزمایشگاه مدارهای منطقی (شماره درس: 40206)

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.
  • دفترچه راهنمای تجهیزات آزمایشگاه:
    • دفترچه راهنمای هر یک از تجهیزات آزمایشگاهی

اهمیت درس:

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

درس: ساختمان داده‌ها و الگوریتم‌ها (شماره درس: 40254)

Data Structures and Algorithms

شماره درس: ۴۰۲۵۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: ساختمان‌های گسسته

هم‌نیاز: برنامه‌سازی پیشرفته

 هدف درس:

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

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

ریز مواد:

  • مقدمات (۱ جلسه)
    • سطوح انتزاع
    • مراحل مختلف حل مسئله و انتزاع
    • داده‌مدل‌ها، داده‌گونه‌ها، داده‌ساختارها، داده‌گونه‌ی انتزاعی، شی‌
  • تحلیل الگوریتم (۳ جلسه)
    • تحلیل زمانی الگوریتم: مرتب‌سازی درجی
    • رشد توابع
    • روش‌های تحلیل سرشکن
  • تقسیم و حل (۲ جلسه)
    • مرتب‌سازی ادغامی، محاسبه‌ی تعداد نابجایی، زیردنباله‌ی متوالی، ضرب‌اعداد
    • قضیه اصلی
  • تحلیل الگوریتم‌های تصادفی (۱ جلسه)
    • محاسبه‌ی میانه‌ی تقریبی، مسئله‌ی استخدام
  • داده‌ساختارهای پایه (۱ جلسه)
    • صف و پشته
    • لیست پیوندی
  • داده‌ساختارهای درخت (۵ جلسه)
    • پیاده‌سازی‌های مختلف درخت‌ها، پیمایش درخت‌ها، استقراء ساختاری
    • درخت عبارت، تبدیل نگارش‌های مختلف یک عبارت ریاضی
    • داده‌ساختار ترای
    • درخت دودویی جستجو
    • صف اولویت (هرم کمینه و بیشینه)
  • مرتب‌سازی (۴ جلسه)
    • درخت تصمیم و کران پایین
    • مرتب‌سازی هرمی
    • مرتب‌سازی سریع (تحلیل تصادفی)
    • مرتب‌سازی با تعداد مقایسه‌های بهینه
    • مرتب‌سازی خطی: شمارشی، مبنایی، سطلی
    • مرتب‌سازی خارجی (اختیاری)
  • مرتبه‌ی آماری (۲ جلسه)
    • محاسبه‌ی کمینه و بیشینه
    • انتخاب k-امین عنصر (الگوریتم تصادفی و قطعی)
  • درهم‌سازی (۲ جلسه)
    • درهم‌سازی زنجیره‌ای
    • درهم‌سازی سراسری
    • درهم‌سازی باز
    • درهم‌سازی کامل
  • داده‌ساختارهای پیشرفته (۳ جلسه)
    • مجموعه‌های مجزا
    • درخت‌های دودویی متوازن: درخت قرمز-سیاه
    • درخت بازه
  • گراف‌ها (۳ جلسه)
    • روش‌های مختلف پیاده‌سازی گراف
    • جست‌وجوهای عمق‌اول و سطح‌اول و کاربردهای آن‌ها
    • ترتیب توپولوژیکی، مؤلفه‌های قویاً همبند
    • کوتاه‌ترین مسیر در گراف‌ها: الگوریتم‌های دایکسترا و بلمن-فورد

ارزیابی:

  • پنج بسته تمرین داده خواهد شد (هر بسته شامل تعدادی مسئله نظری و چند مسئله برنامه‌نویسی است)؛ نیازی به تحویل مسئله‌های نظری نیست.
  • پنج آزمون کوتاه از مسئله‌های نظری بالا + یک مسئله مشابه (۳ نمره)
  • پنج تمرین عملی بالا (۳ نمره)
  • آزمون‌ میان‌ترم (۶ نمره)
  • آزمون نهایی (۸ نمره)

منابع و مراجع:

  • کتاب‌های درسی:
  • [١]محمد قدسی، ”داده ساختارهای و مبانی الگوریتم‌ها،“ چاپ چهارم، انتشارات فاطمی، .١٣٩٣
    [٢]محمد قدسی و آیدین نصیری شرق، ” ۶٠٠مسئله ی چندگزینه‌ای از داده ساختارها و الگوریتم‌ها،“ چاپ ششم، انتشارات فاطمی، .١٣٩٧
  • [3] T. Cormen, C. Leiserson, R. Riverst, and C. Stein. Introduction to Algorithms. 3rd edition, MIT Press, 2011.
  • منابع آنلاین:
    • دوره‌های آموزشی آنلاین
    • مقالات علمی
    • انجمن‌های برنامه‌نویسی

اهمیت درس:

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

درس: مبانی مدارهای الکتریکی و الکترونیکی (شماره درس: 40124)

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
  • [٢] ارنست کوه و چارلز دسور، «نظریه اساسی مدارها و شبکه‌ها»، ترجمه دکتر جبه دار مارلانی، موسسه انتشارات دانشگاه تهران، ١٣٩۵.
  • [٣] عادل صدرا و کنت اسمیت، ”مدارهای میکروالکترون ک ،“ترجمه مجید ملکان و هاله واحدی، ویرایش چهارم، نشر علوم دانشگاهی، ١٣٨١.
  • [۴] محمود تابنده، «تکنیک پالس و مدارهای دیجیتال»، نشر مؤسسه انتشارات علمی دانشگاه صنعتی شریف، .١٣٧۶
  • منابع آنلاین:
    • آموزش‌های ویدئویی
    • شبیه‌سازهای مدار
    • مقالات علمی

اهمیت درس:

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

درس: ساختار و زبان کامپیوتر (شماره درس: 40126)

Computer Structure and Machine Language

شماره درس: ۴۰۱۲۶

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: مبانی برنامه‌سازی، مدارهای منطقی

هم‌نیاز: –

هدف درس:

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

  • ساختار داخلی یک کامپیوتر را به طور کامل درک کنند.
  • زبان ماشین و زبان اسمبلی را بیاموزند و برنامه‌های ساده‌ای را به این زبان‌ها بنویسند.
  • تفاوت بین معماری‌های مختلف کامپیوتر )CISC و RISC) را درک کنند.
  • اصول طراحی و پیاده‌سازی سیستم‌های کامپیوتری را فرا بگیرند.

ریز مواد:

  • تاریخچه کامپیوتر
    • مقدمه‌ای بر نسل‌های کامپیوتر و انواع آن
    • مدل فون‌نیومن (Von Neumann)
  • نمایش داده
    • اعداد: صحیح/اعشاری، بی‌علامت/باعلامت، ممیز ثابت/ممیز شناور، دودویی/دهدهی، …
    • نویسه‌ها (Characters): کدهای پایه ۷ و ۸ بیتی، کدهای جامع ۱۶ و ۳۲ بیتی
  • ساختار کامپیوتر
    • واحد پردازش مرکزی (CPU)، واحد محاسبات و منطق (ALU)، ثبات‌ها (Registers)، واحد کنترل (CU)، حافظه اصلی
    • گذرگاه (Bus) مشترک، سیکل واکشی- اجرا (Fetch-Execute)
    • مدهای آدرس‌دهی: آنی (چسبیده به عملوند)، مستقیم (مطلق)، غیرمستقیم، نسبی، ضمنی، اندیسی، قطعه‌ای، صفحه‌ای
    • برنامه نویسی به زبان اسمبلی و ترجمه‌ی آن به زبان ماشین در چند کامپیوتر ساده
    • اسمبلر (Assembler) و اشکال‌زدا (Debugger)، کامپایلر (Compiler)، ربط‌دهنده (Linker) و بارکننده (Loader).
  • آشنایی با مجموعه دستورالعمل (Instruction Set) حداقل یک کامپیوتر CISC (پردازنده‌های Intel 8086 ، IBM 360/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)
  • [۴] مقالات سایت‌های معتبر حوزه‌ی علوم و مهندسی کامپیوتر (مانندcom)
  • [۵] منابع کمکی تقویت پایه‌ی زبان انگلیسی (مانند Elements of Style وEnglish Grammar in Use )
  • منابع آنلاین:
    • آموزش‌های ویدئویی
    • شبیه‌سازهای کامپیوتر
    • مقالات علمی

اهمیت درس:

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

درس:  طراحی سیستم‌های دیجیتال (شماره درس: ۴٠٢٢٣)

Digital Systems Design

شماره درس: ۴۰۲۲۳

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: ساختار و زبان کامپیوتر

هم‌نیاز: –

 

هدف درس:

هدف این درس، آموزش اصول و مبانی طراحی مدارهای دیجیتال با استفاده از زبان توصیف سخت‌افزار Verilog HDL است. دانشجویان پس از گذراندن این درس از دروس رشته کامپیوتر قادر خواهند بود:

  • مدارهای منطقی ترکیبی و ترتیبی را مدل‌سازی و شبیه‌سازی کنند.
  • از ابزارهای طراحی الکترونیکی )EDA) برای سنتز و پیاده‌سازی مدارها بر روی تراشه‌های قابل برنامه‌ریزی استفاده کنند.
  • با مفاهیم پیشرفته‌ای مانند ماشین حالت متناهی، زمان‌بندی، و همزمانی آشنا شوند.
  • پروژه‌های طراحی مدار دیجیتال را به صورت مستقل انجام دهند.

ریز مواد:

  • ASM و FSM
  • نمودار FSM و کاربردهای آن
  • نحوه‌ی مدل‌سازی و سنتز مدار کنترلی با FSM
  • نمودار ASM وطراحی سیستمهای دیجیتال با استفاده از آن
  • مفهوم واحدهای کنترل و مسیرداده
  • روش سنتز مسیر داده از روی نمودار ASM
  • روشهای گوناگون سنتز واحد کنترل از روی نمودار ASM
  • معرفی زبان‌های توصیف سخت‌افزار
  • مروری بر زبان‌های توصیف سخت‌افزار
  • ویژگی‌های کلیدی و تفاوت کدهای همروند و کدهای ترتیبی
  • مراحل طراحی سیستم‌های دیجیتال
  • مروری بر ویژگی‌های زبان وریلاگ
  • مقایسه زبان وریلاگ با سایر زبان‌های توصیف سخت‌افزار
  • دلایل اهمیت استفاده از زبان‌های توصیف سخت‌افزار
  • مقدمات زبان وریلاگ
  • مروری کلی بر نحوه نوشتن یک توصیف با وریلاگ
  • معرفی روش‌های طراحی بالا به پایین و پایین به بالا
  • روش‌های مدل‌سازی ساختاری و رفتاری
  • آشنایی اولیه با برخی مفاهیم موجود در وریلاگ همچون module، initial، always، @
  • طراحی مدولار و امکانات زبان وریلاگ برای این کار
  • مفهوم Test bench و چگونگی نوشتن Test bench صحیح
  • داده‌گونه‌ها و مفاهیم پایه در وریلاگ
  • wire و register و تفاوت‌ها و کاربردهای آن‌ها
  • منطق 4 مقداره و مفهوم قدرت سیگنال
  • مفهوم آرایه و بردار و تفاوت‌ها و کاربردهای آن‌ها
  • داده گونه‌های Real، Integer و Time، رشتهها
  • parameter و طراحی پارامتری در وریلاگ
  • System Taskها، Directive ها و Macro در وریلاگ
  • نام گذاری سلسله مراتبی و کاربردهای آن
  • مدل‌سازی ساختاری در وریلاگ
  • 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ها در تحقیقات و صنعت
  • SPLDها و CPLDها
  • SPLDها و ساختار آن‌ها (شامل PAL، PLA و ROM)
  • CPLDها و ساختار آن‌ها
  • تکنولوژی‌های ساخت SPLDها و CPLDها
  • مروری بر برخی از CPLDها به عنوان Case Study
  • FPGAها
  • FPGAها و ساختار آن‌ها
  • انواع FPGA (مبتنی بر LUT و مبتنی بر MUX)
  • تکنولوژی‌های ساخت FPGAها (مبتنی بر Anti-fuse و مبتنی بر SRAM)
  • روش‌های ساخت Programmable Connections در FPGAها
  • مروری بر برخی از 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) و قطعات الکترونیکی قابل برنامه‌ریزی مانند CPLD و FPGA، مدارهای مختلفی را طراحی و پیاده‌سازی خواهند کرد.

ریز مواد:

  • آزمایش اول: طراحی مدارهای ترکیبی با استفاده از امکانات شماتیک
  • آزمایش دوم: طراحی مدارهای ترتیبی با استفاده از امکانات شماتیک
  • آزمایش سوم: توصیف جریان داده
  • آزمایش چهارم: توصیف رفتاری
  • آزمایش پنجم: طراحی ضرب‌کننده
  • آزمایش ششم: طراحی یک انکوباتور
  • آزمایش هفتم: UART
  • آزمایش هشتم: ALU اعداد مختلط
  • آزمایش نهم: پیاده‌سازی حافظه‌های شرکت‌پذیر نوع سه‌گانه
  • آزمایش دهم: پیاده‌سازی یک پردازنده‌ی ساده

ارزیابی:

  • گزارش‌نویسی دقیق از هر آزمایش
  • ارائه شفاهی نتایج آزمایش‌ها
  • شرکت فعال در جلسات آزمایشگاه
  • پروژه پایانی

ابزارها و تجهیزات:

  • نرم‌افزارهای CAD مانند Xilinx Vivado یا Altera Quartus
  • نرم‌افزارهای شبیه‌ساز مانند ModelSim
  • بردهای توسعه مجهز به FPGA
  • قطعات الکترونیکی جانبی (مقاومت، خازن، …)

منابع و مراجع:

  • [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 altera.com
  • [3] ModelSim User’s Manual. Available at actel.com.
  • [4] Introduction to the Quartus II Software. Available at www.altera.com

اهمیت درس:

هدف از این آزمایشگاه آن است که دانشجویان به صورت عملی با مفاهیم و روش‌های طراحی مدارهای دیجیتال آشنا شوند و بتوانند مدارهای پیچیده‌تری را طراحی و پیاده‌سازی کنند.

درس: معماری کامپیوتر (شماره درس: ۴٠٣٢٣)

Computer Architecture

شماره درس: ۴۰۳۲۳

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: ساختار و زبان کامپیوتر

هم‌نیاز: –

 هدف درس:

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

ریز مواد:

  • مروری بر اجزای پایه و تاریخچه‌ی کامپیوتر
    • یادآوری مدارهای ترکیبی و ترتیبی، مزیت‌های تکنولوژی دیجیتال نسبت به آنالوگ، مالتی پلکسر، دیکودر، گیت سه‌حالته، گذرگاه (باس)
    • سطوح تجرید و توصیف کامپیوتر
    • تاریخچه و مرور نسل‌های کامپیوتر
  • نمایش اعداد
    • مرور و آموزش انواع شیوه‌های سیستم‌های نمایش دیجیتال برای اعداد علامت‌دار و بدون علامت، صحیح و ممیز شناور، بررسی دقت مطلق و نسبی و بازه‌ی نمایش
  • تعریف و اندازه‌گیری کارایی پردازنده و کامپیوتر
    • عوامل موثر در کارایی کامپیوتر
    • تعریف کارایی (معکوس زمان اجرا)
    • فرمول کارایی
    • افزارسنجی (Benchmarking) و نمونه‌های آن
  • طراحی واحد اجرایی (یا مسیر داده=Data path) و کنترل سیم‌بندی‌شده
    • مروری بر مدهای آدرس دهی
    • مروری بر سطح و زبان انتقال بین ثبات (RTL)
    • معماری مجموعه‌‌دستورالعمل (Instruction Set Architecture)
    • تحلیل و طراحی گام به گام یک پردازنده‌ی نمونه (Mips)
    • بررسی پیاده‌سازی وقفه و روش سرکشی
    • توصیف و طراحی واحد کنترل
  • واحد کنترل ریزبرنامه‌پذیر
    • مرور کاستی‌ها و مزایای نسبی این نوع کنترل به کنترل سیم‌بندی‌شده
    • بررسی معماری نمونه و مثال
  • سیستم حافظه
    • طرز کار و معرفی انواع حافظه و سلسله مراتب آن
    • حافظه‌ی نهان و بررسی انواع نگاشت‌های مستقیم، کاملا شرکت‌پذیر و شرکت‌پذیر مجموعه‌ای
  • الگوریتم‌های حسابی
    • الگوریتم‌های جمع، تفریق، ضرب و تقسیم
    • معماری‌های حسابی
    • ضرب با کدگذاری بوت (Booth) و آرایه‌ای
  • مروری برروش‌های I/O
    • روش‌های دست‌تکانی (Handshaking)
  • معماری‌های پیشرفته
    • مروری بر روش‌های تسریع و موازی‌سازی
    • بررسی اجمالی معماری پایپلاین و زمان اجرا در آن

ارزیابی:

  • تمرین‌های نظری: ۳ نمره
  • آزمون‌‌های میان‌ترم و پایانی: ۱۵ نمره
  • آزمونک‌ها: ۲ نمره

 

منابع و مراجع:

  • [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 altera.com
  • [3] ModelSim User’s Manual. Available at actel.com
  • [4] Introduction to the Quartus II Software. Available at altera.com

اهمیت درس:

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

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

درس: آزمایشگاه معماری کامپیوتر (شماره درس: ۴٠١٠٣)

Computer Architecture Lab

شماره درس: ۴۰۱۰۳

تعداد واحد: ۱

مقطع: کارشناسی

نوع درس: عملی

پیش‌نیاز: معماری کامپیوتر، آز مدارهای منطقی

هم‌نیاز: –

هدف آزمایشگاه:

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

ریز مواد:

  • آشنایی با ابزارهای CAD جهت طراحی و آزمایش درستی عملکرد مدارهای منطقی
    • آشنایی با یک شبیه‌ساز نمونه (همانند Quartus)
    • طراحی، پیاده‌سازی و آزمون عملکرد یک مدار نمونه (همانند مدار جمع دو عدد ده‌دهی دو رقمی) با استفاده از شبیه‌ساز
  • طراحی و پیاده سازی معماری‌های محاسباتی
    • طراحی و پیاده‌سازی ضرب‌کننده‌ی ممیزثابت چهاربیتی
    • طراحی و پیاده‌سازی جمع/تفریق‌کننده‌ی ممیز شناور
    • طراحی و پیاده‌سازی مبدل ده‌دهی به دودوئی
  • طراحی و پیاده‌سازی معماری یک کامپیوتر ساده
    • طراحی و پیاده‌سازی واحد محاسبه با امکان انتخاب مبداء
    • طراحی و پیاده‌سازی واحد محاسبه با امکان کنترل توسط برنامه
    • طراحی و پیاده‌سازی کامل کامپیوتر با حافظه‌ی داده و دستورهای پرش
  • طراحی و پیاده‌سازی پردازنده
    • ‌طراحی و پیاده‌سازی مدار کنترل ریزبرنامه‌پذیر
    • ‌آزمون کارایی مدار پیاده‌سازی شده

ابزارها و تجهیزات:

  • نرم‌افزارهای طراحی مدار (مانند Quartus, Vivado)
  • بردهای توسعه FPGA
  • قطعات الکترونیکی جانبی (مقاومت، خازن، …)

 

منابع و مراجع:

  • [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

اهمیت درس:

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

  • مدارهای دیجیتالی پیچیده را طراحی و پیاده‌سازی کنند.
  • عملکرد مدارهای طراحی شده را شبیه‌سازی و آزمایش کنند.
  • با ابزارهای طراحی و شبیه‌سازی آشنا شوند.
  • مفاهیم معماری کامپیوتر را به صورت عملی درک کنند.

درس: نظریه زبان‌ها و ماشین‌ها (شماره درس: ۴۰۴۱۵)

 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, and computation. 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

اهمیت درس:

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

  1. درک عمیق از محاسبات: این درس به شما کمک می‌کند تا درک عمیقی از ماهیت محاسبات و محدودیت‌های آن به دست آورید. با مطالعه این درس، می‌توانید به سوالاتی مانند “چه مسائلی توسط کامپیوتر قابل حل هستند؟” و “چه الگوریتم‌هایی برای حل مسائل مختلف وجود دارد؟” پاسخ دهید.
  2. پایه و اساس بسیاری از حوزه‌ها: نظریه زبان‌ها و ماشین‌ها پایه و اساس بسیاری از حوزه‌های علوم کامپیوتر است. برای مثال، طراحی کامپایلر بدون درک مفاهیم زبان‌های رسمی و اتوماتا امکان‌پذیر نیست. همچنین، در حوزه هوش مصنوعی، از ماشین‌های حالت محدود برای مدل‌سازی زبان‌های طبیعی استفاده می‌شود.
  3. مهارت‌های حل مسئله: این درس به شما کمک می‌کند تا مهارت‌های حل مسئله خود را تقویت کنید. با مطالعه این درس، یاد می‌گیرید که چگونه مسائل پیچیده را به اجزای کوچکتر تقسیم کنید و برای هر جزء یک مدل محاسباتی مناسب انتخاب کنید.
  4. تفکر انتقادی: نظریه زبان‌ها و ماشین‌ها به شما یاد می‌دهد که چگونه به صورت انتقادی درباره مسائل محاسباتی فکر کنید و از روش‌های اثبات ریاضی برای اثبات ادعاهای خود استفاده کنید.
  5. مهارت‌های طراحی الگوریتم: این درس به شما کمک می‌کند تا الگوریتم‌های کارآمدی برای حل مسائل مختلف طراحی کنید. با مطالعه این درس، می‌توانید الگوریتم‌های خود را از نظر پیچیدگی زمانی و فضایی تحلیل کنید.

درس: هوش مصنوعی (شماره درس: ۴٠۴١٧)

Artificial Intelligence

شماره درس: ۴۰۴۱۷

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: ساختمان داده‌ها و الگوریتم‌ها، آمار و احتمال مهندسی

هم‌نیاز: –

 هدف درس:

در این درس از دروس رشته کامپیوتر، دانشجویان با مفاهیم و تکنیک‌های اصلی هوش مصنوعی آشنا می‌شوند. هدف اصلی این درس، آموزش روش‌هایی برای ساخت سیستم‌هایی است که بتوانند مانند انسان‌ها فکر کنند و تصمیم بگیرند.

ریز مواد:

  • مقدمه‌ای بر هوش مصنوعی و تاریخچه‌ی آن
  • معرفی عامل‌های هوشمند
  • جست‌وجوی ناآگاهانه (uninformed)
    • جست‌وجوی اول-سطح (BFS) و جستجوی اول-عمق (DFS)
    • جست‌وجوی عمق بخشی تکراری (Iterative Deepening)
    • جست‌وجوی هزینه-یکنواخت (Uniform Cost Search)
  • جست‌وجوی آگاهانه (informed)
    • توابع ابتکاری قابل قبول (admissible) و سازگار (consistent)
    • جست‌وجوی اول بهترین حریصانه (greedy best first search)
    • الگوریتم *A و اثبات بهینگی
    • خودکارسازی تولید توابع ابتکاری
  • جست‌وجوی محلی (local)
    • تپه‌نوردی (hill-climbing)، شبیه‌سازی ذوب (simulated annealing)، جست‌وجوی شعاعی محلی (local beam search) و الگوریتم ژنتیک (genetic algorithm)
    • جستجوی محلی در فضای پیوسته: روش کاهش در راستای گرادیان (gradient descent)
  • مسائل ارضای محدودیت (Constraint Satisfaction Problems)
    • جست‌وجوی عقبگرد (backtrack)
    • استفاده از تکنیک‌هایی نظیر LCV، MRV، بررسی جلورو (Forward Checking) ‌، MAC، AC3
    • حل مسائل 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) علمی
    • شرح اجمالی کارهای پیش روی دانشجویان
  • ارائه شفاهی
    • انواع ارائه‌ی شفاهی (سخنرانی، تدریس، سمینار و وبینار)
    • ویژگی‌‌های ارائه شفاهی
    • آداب و فنون سخنوری و شیوه‌ی اداره‌ی جلسه‌ی ارائه
    • ملاحظات محیطی و فنی یک ارائه‌ی موفق
    • آشنایی با روش‌های جستجوی منابع علمی (در پایگاه‌‌های علمی و اطلاع‌رسانی، کتابخانه‌ها، وبگاه نویسندگان و شرکت‌ها و موسسات، …)
  • ارائه‌ی نوشتاری
    • ویژگی‌های ارائه‌ی نوشتاری (کتبی)
    • شرح انواع ارائه‌های نوشتاری و چگونگی سازماندهی محتویات، شامل پایان‌نامه، گزارش کارآموزی، کتاب، مقاله‌ی مجله یا ژورنال (پژوهشی، ترویجی و مروری)، مجموعه‌ی مقالات همایش (Conference proceedings)، پیشنهاد پژوهشی، گزارش فنی و ثبت اختراع (Patent)
    • معیارهای ارزیابی پایان‌نامه‌ها، مقالات و پیشنهادهای پژوهشی (و در صورت وجود وقت، سایر ارائه‌های نوشتاری)
  • ارائه‌‌های صنعتی و حرفه‌ای
    • شیوه‌ی تدوین طرح تجاری (Business plan)، درخواست اعتبار (Grant) یا تسهیلات برای طرح پژوهشی یا صنعتی، درخواست پیشنهاد (RFP: Request For Proposal)، اسناد مناقصه
    • شیوه‌ی معرفی یا تبلیغ یک محصول یا خدمت
  • مرجع‌‌نویسی
    • اهمیت داشتن مراجع معتبر و به‌روز در کار پژوهشی
    • آشنایی با شیوه‌های ارجاع به مراجع و مآخذ
    • معرفی انواع سبک‌های مرجع‌‌نویسی
  • برگزاری سمینارهای دانشجویی
    در این مرحله دانشجویان به ارائه سمینارهای فردی در زمینه‌هایی که از قبل با استاد درس هماهنگ کرد‌ه‌اند می‌پردازند. مدت سمینار برای هر دانشجو ۱۵ تا ۲۰ دقیقه و زمان پرسش و پاسخ یا نقد ارائه شفاهی دانشجو بین ۵ تا ۱۰ دقیقه است.

ارزیابی:

  • آزمون‌های میان‌ترم و پایانی: ۴۵٪
  • ارائه‌ی شفاهی و گزارش کتبی: ۲۵٪
  • تمرین‌های عملی: ۳۰٪

منابع و مراجع:

  • [١] سید محمد تقی روحانی رانکوهی، “شیوه ارائه مطالب علمی و فنی”، ویرایش پنجم، انتشارات جلوه، ١٣٩۴.
  • [٢] فرهنگستان زبان و ادب فارسی، “دستور خط فارسی”، نشر آثار، ١٣٨٩.
  • [٣] علی اشرف صادقی و زهرا زندی مقدم، “فرهنگ املایی خط فارسی”، نشر آثار، ١٣٩۴.
  • [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

اهمیت درس:

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

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

درس: طراحی پایگاه داده‌ها (شماره درس: ۴٠٣٨۴)

Database Design

شماره درس: ۴۰۳۸۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: ساختمان داده‌ها و الگوریتم‌ها

هم‌نیاز: –

 هدف درس:

در این درس، دانشجویان با اصول طراحی پایگاه‌های داده آشنا می‌شوند. هدف اصلی این درس از دروس رشته کامپیوتر، آموزش روش‌های طراحی پایگاه داده‌هایی است که بتوانند حجم زیادی از داده‌ها را به صورت کارآمد ذخیره، بازیابی و مدیریت کنند.

ریز مواد:

  • مشی پایگاهی و سیستم‌های پایگاهی (۳ جلسه)
    • معرفی درس
    • تعریف پایگاه داده‌ها
    • مشی فایلینگ و مشی پایگاهی
    • عناصر محیط پایگاه داده
    • انواع معماری سیستم پایگاهی (متمرکز، مشتری-خدمتگزار، توزیع‌شده)
    • اجزای سیستم مدیریت پایگاه داده رابطه‌ای (RDBMS، OLTP)
  • مدل‌سازی معنایی داده‌ها با روش ER و ERR (۴ جلسه)
    • موجودیت
    • صفت
    • ارتباط
    • نمودار ER و EER
    • انواع دام‌ها
    • تکنیک‌های تخصیص، تعمیم، تجزیه، ترکیب و تجمیع
    • ویژگی‌های روش مدل‌سازی معنایی
  • اصول طراحی پایگاه داده‌ها (۲ جلسه)
    • اشنایی با ساختار جدولی و پایگاه داده جدولی
    • روش طراحی بالا به پایین (تبدیل مدل‌سازی معنایی به طراحی منطقی)
  • مقدمات پیاده‌سازی و SQL (۳ جلسه)
    • زبان پایگاه داده‌ی جدولی (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

توجه: از مرحله معرفی ساختارهای داده‌ای جدولی و پس از آن، هرجا که لازم باشد، از SQL برای ارائه مثال استفاده می‌شود. دانشجو بایستی از هفته سوم و همروند با پیشرفت درس، SQL را مطالعه کند.

ارزیابی:

  • آزمون: آزمون‌های میان‌نیم‌سال (۳۰ درصد نمره) و پایان‌نیم‌سال (۳۵ درصد نمره)
  • تمرین: (۱۷٪ کل نمره)
  • پروژه: (۱۳٪ کل نمره)
  • کوییز و فعالیت‌های کلاسی (۵٪ کل نمره)

منابع:

  • [١] سید محمد تقی روحانی رانکوهی، “مفاهیم بنیادی پایگاه داده‌ها”، ویراست چهارم، ١٣٩٠.
  • [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

اهمیت درس:

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

  • مدل‌های داده‌ای مختلف را طراحی کنند.
  • از زبان SQL برای مدیریت پایگاه داده استفاده کنند.
  • پایگاه داده‌های کارآمد و امن را طراحی کنند.
  • مسائل مربوط به پایگاه داده را تحلیل و حل کنند.

درس: سیستم‌های عامل (شماره درس: ۴٠۴٢۴)

Operating Systems

شماره درس: ۴۰۴۲۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: معماری کامپیوتر

هم‌نیاز: –

 هدف درس:

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

ریز مواد:

  • مقدمه‌ای بر سیستم‌های عامل (۲ جلسه)
    • مفاهیم اولیه‌ی سیستم‌های عامل
    • ساختار و اجزای تشکیل‌دهنده سیستم‌های عامل
    • ریسه ، فضای آدرس، I/O و عملیات مد دوگانه
    • ساختار و معماری سیستمهای عامل
  • مدیریت پردازه‌ها (۳ جلسه)
    • پردازه‌ی تک‌ریسه‌ای، چندریسه‌ای، پردازه‌ی منشعب و بلوک کنترل پردازه
    • مدیریت وقفه
    • ارتباط بین پردازه‌ها
  • همروندی و همگام‌سازی (۳ جلسه)
    • نواحی بحرانی و انحصار متقابل
    • عملیات تجزیه‌ناپذیر
    • قفل، سمافور و مانیتور
  • زمان‌بندی (۳ جلسه)
    • اهداف الگوریتم‌های زمان‌بندی
    • زمان‌بندی اول ورودی-اول خروجی، نوبت-چرخشی، کوتاه‌ترین-کار-اول و کمترین-زمان باقیمانده-اول
    • زمان‌بندی بی‌درنگ
  • بن‌بست و گرسنگی (۲ جلسه)
    • شرایط ایجاد بن‌بست
    • روش‌های رسیدگی، تشخیص و پیشگیری از بن‌بست
    • مسئله غذاخوری وکیلان و الگوریتم بانکدار
  • مدیریت حافظه (۲ جلسه)
    • مدیریت حافظه، صفحه‌بندی، قطعه‌بندی، ترکیب صفحه‌بندی و قطعه‌بندی
    • ترجمه‌ی آدرس، جدول صفحه، صفحه‌بندی دوسطحی و چندسطحی و جدول صفحه وارونه
    • TLB
  • حافظه‌ی مجازی (۲ جلسه)
    • صفحه‌بندی بر اساس تقاضا
    • تخصیص قاب صفحات و نقص صفحه
    • روش‌های جایگزینی صفحه (الگوریتم‌های اول ورودی-اول خروجی، حداقلی، تصادفی، اخیرا به کار نرفته، ساعت و شانس n-ام)
    • مدل مجموعه کاری و بیهوده‌کاری
  • سیستم‌های ذخیره‌سازی انبوه (۲ جلسه)
    • انواع دستگاه‌ها و کنترل کننده‌های I/O و درایورهای دستگاه‌ها
    • دستگاه‌های ذخیره‌سازی (درایو دیسک سخت و دیسک حالت جامد)
    • زمان‌بندی دیسک (اول ورودی- اول خروجی، کوتاهترین زمان جستجو اول، SCAN و C-SCAN)
  • فایل سیستم (۳ جلسه)
    • روش‌های مدیریت دیسک و اجزای فایل سیستم
    • جدول تخصیص فایل، فایل سیستم یونیکس و 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 Systems)
  • برنامه‌ریزی دیسک و دستگاه‌های ورودی و خروجی (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 Analysis and Design

شماره درس: ۴۰۴۱۸

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: ارائه مطالب علمی و فنی، طراحی پایگاه داده‌ها

هم‌نیاز: –

 هدف درس:

در این درس از دروس رشته کامپیوتر، دانشجویان با روش‌ها و تکنیک‌های تحلیل و طراحی سیستم‌های نرم‌افزاری آشنا می‌شوند. هدف اصلی این درس، آموزش دانشجویان برای طراحی و توسعه سیستم‌های نرم‌افزاری که نیازهای کاربران را به طور کامل برآورده کند.

ریز مواد:

  1. مقدمه‌ای بر سامانه‌های رایانه‌ای (۱ جلسه)
  2. مفاهیم توسعه سامانه‌های رایانه‌ای (۱ جلسه)
  3. تحلیل امکان‌سنجی (۱ جلسه)
    • جنبه‌های مختلف امکان‌سنجی
    • تحلیل هزینه/درآمد
    • مقدمه‌ای بر طراحی مدل‌ کسب‌وکار
  4. مدیریت و برنامه‌ریزی پروژه توسعه‌ سامانه‌های یارانه‌ای (۱ جلسه)
  5. آشنایی با ساختار سامانه‌های کسب‌وکاری مختلف نظیر سامانه‌های حسابداری، انبارداری و … (۲ جلسه)
  6. برنامه‌ریزی محصول و برنامه‌ریزی انتشار محصول (۱ جلسه)‌
  7. تحلیل سامانه‌های رایانه‌ای (۶ جلسه)
    • آشنایی با مفاهیم تحلیل سامانه‌های رایانه‌ای
    • استخراج و مدل‌سازی نیازمندی
      1. روش‌های استخراج نیازمندی‌ها
      2. مدل‌سازی نیازمندی‌ها با Use Case Diagram
    • مدل‌سازی و نگاشت فرایند‌ها
      1. مفاهیم فرایندهای کسب‌وکار
      2. روش‌های استخراج و تحلیل فرایندها
      3. مدل‌سازی و نگاشت فرایند با Activity Diagram
    • یادآوری تحلیل داده‌‌ای در سامانه‌های یارانه‌ای
      1. مدل‌سازی و تحلیل موجودیت با Class Diagram
  8. طراحی سامانه‌های رایانه‌ای (۶ جلسه)
    • آشنایی با مفاهیم طراحی سامانه‌های رایانه‌ای
    • طراحی معماری
      1. انواع نیازمندی‌های غیرعملکردی
      2. طراحی تاکتیک معماری
      3. آشنایی با مفهوم دید
      4. بیان معماری با Component Diagram‌ و Deployment Diagram
      5. معرفی الگوها و سبک‌های طراحی معماری سامانه‌های سازمانی حداقل شامل معماری‌های لایه‌ای، معماری‌های سرویس‌گرا و میکروسرویس، معماری مبتنی بر سرویس‌های پیام‌رسانی آسنکرون
    • طراحی UI/UX
    • یادآوری طراحی مدل داده‌ای در سامانه‌های یارانه‌ای
  9. روشگان توسعه سامانه‌های رایانه‌ای (۱۰ جلسه)
    • آشنایی با انواع روشگان‌ها شامل روشگان‌های آبشاری، مبتنی بر مدل و چابک
    • روشگان Scrum
      1. چارچوب Scrum
      2. کاربردپذیری Scrum
      3. مهندسی نیازمندی‌ها در Scrum
      4. تعریف و مدیریت Product Backlog
      5. برنامه‌ریزی Sprint
      6. اجرای Sprint
      7. بازبینی Sprint
      8. پس‌نگری Sprint
  10. ساخت و نگه‌داری سامانه‌های رایانه‌ای (۴ جلسه)
    • آشنایی با مفاهیم ساخت، عملیات، مراقبت و نگه‌داری و پایان‌دهی سامانه‌های رایانه‌ای
    • آشنایی مقدماتی با DevOps
    • چابک‌سازی تیم Dev و تیم Ops
    • یکپارچه‌سازی مستمر، تحویل مستمر و استقرار مستمر

ارزیابی

  • آزمون: آزمون‌های میان‌نیم‌سال (۲۵ درصد نمره) و پایان‌نیم‌سال (۳۵ درصد نمره)
  • تمرین: انجام تمرین‌هایی در حوزه‌ی تحلیل و طراحی سامانه (۲۰ درصد نمره)‌
  • پروژه: توسعه‌ی چابک یک محصول کوچک مبتنی بر روشگان 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)
  • سوئیچ ها و پل‌ها (Switches 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 در Packet Tracer
    • راه‌اندازی پروتکل مسیریابی OSPF در Packet Tracer
  • آشنایی با مکانیزم 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
  • مدل امنیتی وب
    • امنیت نرم‌افزارهای کاربردی تحت وب (sql, XSS, CSRF)
    • مدیریت نشست های تحت وب (Cookies)
    • مفاهیم رمزنگاری متقارن و نامتقارن
    • کدهای احراز صحت پیام و توابع درهمساز
    • امنیت اطلاعات وب در حین تبادل (Https/SSL)
    • مکانیزم‌های دفاعی سمت مرورگر (SOP, CSP, CORS)
  • امنیت شبکه
    • تهدیدات امنیتی در پروتکل های شبکه (etc, routing, BGP, DNS, TCP)
    • ابزارهای دفاعی در شبکه (etc, IDS, VPN, Firewall)
    • حملات منع سرویس و راهکارهای دفاعی
    • محاسبات با اعتماد (Trusted Computing) و SGX
  • امنیت موبایل
    • امنیت سکوهای موبایل (iOS, Android)
    • تهدیدات در حوزه موبایل

ارزیابی:

  • تمرین‌های نظری: ۸ نمره
  • آزمون‌های میان‌ترم و پایانی: ۱۰ نمره
  • آزمونک‌ها: ۲ نمره

منابع و مراجع:

  • [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

اهمیت درس:

هدف اصلی این درس از دروس رشته کامپیوتر، آموزش اصول و مبانی امنیت داده و شبکه است. دانش آموختگان این درس قادر خواهند بود:

  • تهدیدات امنیتی را شناسایی کنند.
  • روش‌های مقابله با تهدیدات امنیتی را بشناسند.
  • سیستم‌های اطلاعاتی را ایمن کنند.
  • در طراحی و پیاده‌سازی سیستم‌های امن نقش داشته باشند.

دروس تخصصی رشته کامپیوتر

 

محاسبات عددی (شماره درس: ۴۰۲۱۵)

Numerical Computations

شماره درس: ۴۰۲۱۵

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: معادلات دیفرانسیل

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  • آشنایی با ابزار نرم‌افزاری مورد استفاده، مانند MATLAB یا Python (۲ جلسه)
    • محاسبات مربوط به ماتریس‌ها
    • بردارها و ترسیم
    • فایلها و تعریف توابع
    • آشنایی با برخی توابع داخلی ابزار موردنظر
  • خطاها (۴ جلسه)
    • مقدمه‌ای بر خطاها
    • سیستم ممیز شناور
    • منشأ خطاها
    • خطاهای نسبی و مطلق
    • خطاهای گردکردن، ذاتی و برشی
    • انتشارخطا و گراف فرایند
    • ناپایداری در محاسبات عددی
  • حل عددی معادلات غیرخطی (۴ جلسه)
    • مقدمه‌ای بر پیدا کردن ریشه‌های تابع تک‌متغیره غیرخطی
    • روش تنصیف
    • روش نابه‌جایی
    • روش وتری یا خط قاطع
    • روش نیوتن-رافسون
    • روش تکرارساده یا نقطه ثابت
    • نرخ همگرائی روش‌های مختلف
    • شرط‌های لازم/کافی برای همگرائی روش‌های نیوتن-رافسون، روش وتری و روش تکرار ساده
    • روش هرنر برای محاسبه مقدار چندجمله‌ای
    • روش تعمیم‌یافتة نیوتن-رافسون برای حل دستگاه معادلات غیرخطی
    • اثبات شهودی و ریاضی روش‌های مذکور
  • درون‌یابی، برون‌یابی و برازش منحنی (۵ جلسه)
    • مقدمه‌ای بر درون‌یابی، برون‌یابی و برازش منحنی
    • روش‌های مختلف درون‌یابی شامل روش لاگرانژ، روش تفاضلات تقسیم‌شده‌ی نیوتن، روش‌های تفاضلات پیشرو، پسرو و مرکزی نیوتن
    • اثبات روش‌های مذکور و تحلیل خطا در آن‌ها
    • برازش به چندجمله‌ای‌ها توسط روش کمترین مربعات
    • برازش به منحنی‌های مختلف با کمک خطی‌سازی
    • برون‌یابی
  • انتگرال‌گیری و مشتق‌گیری عددی (۴ جلسه)
    • مقدمه‌ای بر انتگرال‌گیری و مشتق‌گیری عددی
    • روش‌های مختلف انتگرال‌گیری عددی شامل روش مستطیلی، روش نقطه میانی، روش ذوزنقه‌ای، روش گاوس-لژاندر، روش سیمپسون ۱/۳ و سیمپسون ۳/۸ و روش رامبرگ
    • بررسی میزان خطای روش‌های ذکر شده
    • اثبات ریاضی و شهودی برای روش‌های مذکور
    • مشتق‌گیری عددی با استفاده از روش‌های مختلف شامل روش نقطه‌ی میانی، روش تفاضل مرکزی، روش سه‌نقطه‌ای
    • تحلیل مرتبه‌ی خطای روش‌های مذکور و استفاده از مفهوم برون‌یابی ریچاردسون برای بهبود نتایج مشتق‌گیری عددی
  • حل معادلات دیفرانسیل معمولی با شرایط اولیه (۴ جلسه)
    • مقدمه‌ای بر معادلات دیفرانسیل
    • روش‌های تک‌گامی شامل روش تایلور، روش اویلر، روش اویلر اصلاح شده، روش‌های رانگ-کوتا مرتبه ۲ (روش هیون، نقطه میانی و اصلاح‌شدۀ اویلر)، رانگ-کوتا مرتبه ۳ و رانگ-کوتا مرتبه ۴
    • روش‌های چندگامی مانند روش آدامز-مولتون
    • تحلیل خطای روش‌های مذکور و مقایسه آن‌ها
    • تبدیل معادلات دیفرانسیل درجات بالاتر به دستگاه معادلات دیفرانسیل خطی
    • تبدیل روش‌های تک‌گامی حل معادلات دیفرانسیل خطی به روش‌های عددی قابل استفاده برای حل دستگاه معادلات دیفرانسیل خطی
  • حل عددی دستگاه معادلات خطی (۴ جلسه)
    • مقدمه‌ای بر حل دستگاه معادلات خطی
    • مقدمه‌ای بر ماتریس‌ها
    • روش‌های مستقیم حل دستگاه معادلات خطی شامل روش ماتریس معکوس، روش کرامر، روش حذف گاوسی (پیشرو، پسرو و گاوس-جردن)، روش تجزیه مثلثاتی (LU چولسکی، دولیتل و کروت)
    • روش‌های تکرارشونده شامل روش ژاکوبی و روش گاوس-سایدل
    • مقادیر ویژه و بردار ویژه، روش توانی برای یافتن تخمینی از مقدار ویژه‌ی غالب و بردار ویژه‌ی متناظر با آن، و قضیه گرچ گورین

ارزیابی:

  • آزمون: آزمون‌های میان‌ترم و پایان‌ترم (۵۰% کل نمره)
  • تمرین: ۶ تمرین نظری (حل مسائل علمی با روش‌های عددی)، ۶ تمرین عملی با محیط نرم‌افزاری معرفی شده؛ تمرینات در طول نیم‌سال تحویل داده می‌شوند (۴۰% کل نمره).
  • پروژه: موضوع پروژه با کمک استاد انتخاب می‌شود. پروژه می‌تواند پژوهشی و یا عملی (با استفاده از ابزار معرفی شده) باشد. پس از انجام کار، نتیجه‌ی پروژه‌ی پژوهشی در قالب گزارش ارائه داده می‌شود. لازم به ذکر است که برای مسلط‌‌تر شدن به ابزار معرفی شده در درس ترجیح می‌رود که پروژه عملی باشد. همچنین پروژه‌های گروهی چنانچه به صورت دقیق تعریف شوند، می‌توانند بر توانایی‌های کار گروهی دانشجویان نیز تاثیر مثبت قابل توجهی داشته باشند (۱۰٪ کل نمره).

منابع و مراجع:

  • [1] Pal. Numerical Methods Principles, Analysis and Algorithms. Oxford University Press, 2010
  • [2] Kiusalaas. Numerical Methods in Engineering with Python 3. Cambridge University Press, 2013
  • [3] Kiusalaas. Numerical Methods in Engineering with MATLAB. Cambridge University Press, 2015
  • [4] B. Moler. Numerical Computing with MATLAB. MathWorks, 2013

اهمیت درس محاسبات عددی:

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

چرا درس محاسبات عددی اهمیت دارد؟

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

مفاهیم کلیدی در محاسبات عددی:

  • خطا: در روش‌های عددی همیشه خطایی وجود دارد که به دلیل تقریب زدن محاسبات، گرد کردن اعداد و محدودیت‌های کامپیوتر ایجاد می‌شود.
  • پایداری: روش‌های عددی باید پایدار باشند به این معنی که خطاهای کوچک در داده‌های ورودی نباید باعث ایجاد خطاهای بزرگ در نتایج شوند.
  • کارایی: روش‌های عددی باید کارآمد باشند و بتوانند مسائل را در زمان معقولی حل کنند.
  • نرم‌افزارهای محاسبات عددی: نرم‌افزارهایی مانند MATLAB، Python، Fortran و C++ برای پیاده‌سازی روش‌های عددی استفاده می‌شوند.

کاربردهای محاسبات عددی

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

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

درس: سیگنال‌ها و سیستم‌ها (شماره درس:۴٠٢۴٢)

Signals and Systems

شماره درس: ۴۰۲۴۲

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: مبانی مدارهای الکتریکی و الکترونیکی

هم‌نیاز: –

اهداف درس:

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

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

ریز مواد:

  • مقدمه
    • سیگنال‌های زمان‌گسسته و پیوسته
    • تبدیل‌ها (Transformation)
    • ویژگی‌ها و انواع سیگنال (periodic، even، odd و …)
    • ویژگی‌های انواع سیستم‌ها (بدون حافظه، علی، پایدار، خطی، ناوردا با زمان)
  • سیستم‌های خطی ناوردا با زمان Linear Time-Invariant LTI
    • جمع/انتگرال پیچشی (Convolution) زمان گسسته و پیوسته
    • پاسخ ضربه
    • معادلات خطی ضریب ثابت (LCCDE) برای توصیف سیستم‌ها و دیاگرام بلوکی آن‌ها
  • سری فوریه‌ی سیگنال‌های متناوب
    • پاسخ سیستم‌های LTI به توابع نمایی مختلط
    • نمایش سری فوریه‌ی سیگنال‌های متناوب زمان پیوسته و گسسته
    • ویژگی‌های سری فوریه (خطی بودن، جابجایی زمانی Time Shift، مقیاس کردن زمان و …)
    • ارتباط سری فوریه و سیستم‌های LTI : تابع سیستم (System Function) و پاسخ فرکانس (System Frequency)
  • تبدیل فوریه‌ی زمان پیوسته
    • تبدیل فوریه‌ی سیگنال‌های نامتناوب و متناوب
    • ویژگی‌های تبدیل فوریه زمان پیوسته (خطی بودن، جابجایی زمانی و …)
    • ضرب و ضرب پیچشی
    • سیستم‌های توصیف شده با LCCDE
  • تبدیل فوریه زمان گسسته
    • تبدیل فوریه زمان گسسته سیگنال‌های نامتناوب و متناوب
    • ویژگی‌های تبدیل فوریه زمان پیوسته (تناوبی بودن،‌ خطی بودن، جابجایی زمانی و …)
    • ضرب و ضرب پیچشی
    • سیستم‌های توصیف شده با LCCDE
  • توصیف زمان/فرکانس سیگنال‌ها و سیستم‌ها
    • فاز/اندازه‌ی تبدیل فوریه
    • فاز/اندازه‌ی پاسخ فرکانس
    • نمودارهای لگاریتم اندازه (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)

شماره درس: ۴۰۳۲۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: ساختمان داده‌ها و الگوریتم‌ها

هم‌نیاز: –

 هدف درس:

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

ریز مواد:

  • مقدمهای بر بازیابی اطلاعات
  • معرفی سامانه‌‌های بازیابی اطلاعات بولین و نحوه‌ی شاخص‌گذاری (indexing)
  • پیش‌پردازش اسناد: عملیات متنی و نرمال‌سازی واژه‌ها
  • بازیابی اطلاعات به صورت مقاوم (tolerant)
    • پرسمان‌های wild-card
    • تصحیح غلط املایی (spelling correction)
  • شاخص‌گذاری بلوکی و توزیع شده (distributed)
    • Map-Reduce
  • فشرده‌سازی شاخص
    • فشرده‌سازی دیکشنری
    • فشرده‌سازی شاخص به روش‌های بایت-متغیر و گاما
  • مدل فضای برداری (Vector Space Model) و نمایش tf-idf
  • امتیازدهی و رتبه‌بندی اسناد (بهبود زمانی)
  • ارزیابی سامانه‌های بازیابی اطلاعات و معرفی معیارهای ارزیابی
  • مدل‌های بازیابی اطلاعات احتمالاتی
  • مدل‌های زبانی (Language models)
  • دسته‌بندی اسناد
    • دسته‌بند Naïve Bayes
    • دسته‌بندهای خطی
  • خوشه‌بندی اسناد
    • خوشه‌بندی k-means
    • خوشه‌بندهای سلسله‌مراتبی
  • یادگیری رتبه‌بندی اسناد (learning to rank)
  • کاهش ابعاد و تعبیه کلمات
    • Latent Semantic Indexing (LSI)
    • 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

درس: طراحی VLSI (شماره درس: ۴۰۳۵۳)

VLSI Design

شماره درس: ۴۰۳۵۳

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: طراحی سیستم‌های دیجیتال، مبانی مدارهای الکتریکی و الکترونیکی

هم‌نیاز: –

اهداف درس:

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

همچنین می‌توانید از عبارت‌های زیر برای توصیف اهداف درس استفاده کنید:

درک عمیق از: مدارهای مجتمع، طراحی سطح ترانزیستوری، شبیه‌سازی مدار، سنتز منطقی، ساخت مدار

توانایی: طراحی مدارهای دیجیتال و آنالوگ، تحلیل عملکرد مدار، بهینه‌سازی مصرف توان و مساحت، استفاده از ابزارهای طراحی VLSI

آشنایی با: فناوری‌های ساخت مدار، استانداردهای طراحی، چالش‌های طراحی 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] M. Rabaey, A. Chandrakasan, and B. Nikolić. Digital Integrated Circuits, A Design Perspective. Course Handouts, 2005
  • [3] H. E. Weste and D. Harris. CMOS VLSI Design, A Circuits and Systems Perspective. Course Handouts, 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

درس: طراحی کامپایلرها (شماره درس: ۴۰۴۱۴) 

Compiler Design

شماره درس: ۴۰۴۱۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: ساختمان داده‌ها و الگوریتم‌ها

هم‌نیاز: –

 اهداف درس:

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

ریز مواد:

  • مقدمه (۲ جلسه)
  • انواع زبان‌ها و گرامرها (۱ جلسه)
  • تحلیل واژه‌ای و اصلاح خطاهای واژه‌ای (۳ جلسه)
  • تحلیل نحوی بالا به پایین (۵ جلسه)
    • تجزیه‌ی پایین‌گرد
    • تجزیه‌ی LL(1)
    • برخورد با خطاهای نحوی
  • تحلیل نحوی پایین به بالا (۸ جلسه)
    • تقدم عملگر
    • تقدم ساده
    • تجزیه‌ی LR(1) شاملSLR(1)، LALR(1) ، و CLR(1)
  • تحلیل معنایی (۱ جلسه)
  • مدیریت جدول علائم (۱ جلسه)
  • روش‌های تخصیص حافظه‌ی زمان اجرا (۲ جلسه)
  • تولید کد (۵ جلسه)
  • پرداخت و بهینه‌سازی کد (۱ جلسه)
  • تولید خودکار کامپایلرها (۱ جلسه)

ارزیابی:

  • آزمون میان‌ترم: ۳۵%
  • آزمون پایان‌ترم: ۳۵%
  • پروژه‌ی عملی: ۲۰%
  • کوئیزها و تمرینات: ۱۰%

متابع و مراجع:

  • [1] Aho, M. Lam, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, and Tools. 2nd Edition, Addison Wesley, 2007
  • [2] Grune, H. Bal, C. Jacobs, and K. Langendoen. Modern Compiler Design. John Wiley, 2001
  • [3] Tremblay and P. Sorenson. Theory and Practice of Compiler Writing. McGraw Hill, 1985
  • [4] Fisher and R. LeBlanc. Crafting a Compiler with C. Benjamin Cummings, 1991

درس: برنامه‌سازی وب (شماره درس: ۴۰۴۱۹)

Web Programming

شماره درس: ۴۰۴۱۹

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: برنامه‌سازی پیشرفته

هم‌نیاز: –

اهداف درس:

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

علاوه بر این، می‌توان به موارد زیر نیز در هدف این درس از دروس رشته کامپیوتر اشاره کرد:

  • اهمیت طراحی رابط کاربری: تاکید بر اهمیت طراحی رابط کاربری زیبا و کاربرپسند در وب‌اپلیکیشن‌ها.
  • بهینه‌سازی عملکرد: آموزش روش‌های بهینه‌سازی عملکرد وب‌اپلیکیشن‌ها برای بهبود سرعت و کارایی.
  • امنیت: آشنایی با مباحث امنیتی در طراحی وب‌اپلیکیشن‌ها.

ریز مواد:

  • مقدمه (۱ جلسه)
    • کلیات درس، تاریخچه‌ی وب، پروتکل‌ HTTP
  • طراحی صفحات (۲ جلسه)
    • ساختار HTML، عناصر و ویژگی‌ها، پاراگراف‌بندی، فرمت‌بندی، لینک‌ها، لیست‌ها
    • تصاویر، جدول‌ها، فرم‌ها، عناصر جدید در HTML5
  • سبک‌بندی (۲ جلسه)
    • تعریف CSS، فرمت‌بندی، انتخاب‌کننده‌ها، وراثت و آبشار، اصول طراحی
    • چیدمان صفحه، مدل جعبه‌ای، نمایش شناور، موقعیت‌ها، شبه‌کلاس‌ها
  • جاوا اسکریپت (۴ جلسه)
    • ساختار کلی زبان، کاربردها، دستورات و توابع، متغیرها و انواع داده‌ای، ساختارهای کنترلی
    • آرایه‌ها، اشیاء، نحوه‌ی تعریف اشیاء، سازنده‌ها، نهان‌سازی داده‌ها
    • مدل DOM، ویرایش عناصر و سبک‌ها، رسیدگی به رویدادها، استثناها
    • کتاب‌خانه‌ی jQuery، انتخاب‌کننده‌ها، رویدادها، جلوه‌ها و پویانمایی
  • ذخیره‌ی داده‌ها (۲ جلسه)
    • آشنایی با XML، کاربردها، DTD، تبدیل توسط XSLT، آشنایی با JSON
    • پایگاه‌ داده‌های رابطه‌ای‌، ایجاد پایگاه داده، زبان پرس‌وجوی SQL
  • تعامل با سرور (۲ جلسه)
    • رابط CGI، ارسال توسط GET و POST، پردازش فرم‌ها، کوکی‌ها
    • استفاده از AJAX، ارسال درخواست، دریافت و تجزیه‌ی پاسخ، کاربردها
  • پایتون (۵ جلسه)
    • ساختار زبان، عملگرها، انواع داده‌ای، لیست‌ها، رشته‌ها، چندتایی‌ها، فرهنگ‌های داده‌ای
    • توابع، ماژول‌ها، پکیج‌ها، توابع بی‌نام، آرگومان‌های متغیر، دکوراتورها
    • رده‌ها و اشیاء، سازنده‌ها، وراثت، رسیدگی به استثناها
    • پرونده‌ها، پردازش متن، عبارات منظم، کاربردها
    • خواندن صفحات وب، کارگزار وب پایتون، آشنایی با WSGI
  • معماری وب (۲ جلسه)
    • لایه‌بندی، معماری کاربر-کارگزار، معماری سه‌لایه، معماری MVC
    • مدل‌های داده، انواع رابطه‌، تطابق با پایگاه‌ داده‌های رابطه‌ای
  • چارچوب جنگو (۶ جلسه)
    • مفاهیم اولیه، نصب و راه‌اندازی، مؤلفه‌ها، معماری کلی
    • ایجاد یک پروژه، تعریف پایگاه داده، راه‌اندازی مدیر، افزودن نما
    • لایه‌ی مدل، نگاشت‌گر شیء-رابطه، وراثت، اجرای پرس‌وجو
    • لایه‌ی نما، نگاشت نشانی‌ها، اشیاء درخواست و پاسخ، نماهای عمومی
    • لایه‌ی قالب‌، زبان تعریف قالب، تگ‌ها و فیلترهای آماده
    • پردازش فرم‌ها، ابزارک‌های توکار، اعتبارسنجی
  • مباحث پیشرفته (۴ جلسه، در حد فرصت)
    • میان‌افزارها، بهینه‌سازی، فشرده‌سازی، استفاده از کش
    • احراز هویت، کنترل دسترسی‌ها، مدیریت کاربرها و گروه‌ها
    • امنیت، محافظت در مقابل حملات امنیتی، رمزنگاری
    • جلسات، ذخیره‌ی حالت جلسه، روش‌های ترکیبی
    • بین‌المللی‌سازی، محلی‌سازی، ابزارهای ترجمه‌

ارزیابی:

  • تمرین‌های عملی (۵ نمره)
  • پروژه‌ (۵ نمره)
  • آزمون‌ میان‌ترم (۴ نمره)
  • آزمون پایانی (۶ نمره)

منابع و مراجع:

  • [1] M. Schafer. HTML, XHTML, and CSS Bible. 5th Edition, Wiley Publishing, 2010
  • [2] Forcier, P. Bissex, and W. Chun. Python Web Development with Django. Pearson Addison-Wesley, 2009
  • [3] J. Chun. Core Python Applications Programming.3rd Edition, Pearson Addison-Wesley, 2012
  • [4] Fowler, D. Rice, M. Foemmel, E. Hieatt, R. Mee, and R. Stafford. Patterns of Enterprise Application Architecture. Pearson Addison-Wesley, 2003

درس: رایانش چند‌هسته‌ای (شماره درس: ۴۰۴۳۲)

Multicore Computing

شماره درس: ۴۰۴۳۲

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: برنامه‌سازی پیشرفته، معماری کامپیوتر

هم‌نیاز: –

اهداف درس:

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

علاوه بر این، می‌توان به موارد زیر نیز در هدف درس اشاره کرد:

  • اهمیت برنامه‌نویسی موازی: تاکید بر اهمیت برنامه‌نویسی موازی در دنیای امروز و کاربردهای گسترده آن در حوزه‌های مختلف.
  • ابزارهای برنامه‌نویسی موازی: معرفی ابزارها و کتابخانه‌های مختلف برای برنامه‌نویسی موازی مانند OpenMP، MPI و CUDA.
  • مقیاس‌پذیری: بررسی مفهوم مقیاس‌پذیری در برنامه‌های موازی و روش‌های افزایش مقیاس‌پذیری.

ریز مواد:

  • معرفی معماری سیستم‌های چندهسته‌ای و مدل‌های برنامه‌نوسی موازی
    • تاریخچه ظهور سیستم‌های چند‌هسته‌ای
    • چالش‌های برنامه‌نویسی کارا روی سیستم‌های چند‌هسته‌ای
    • معرفی سطوح موازات در برنامه‌ها
    • تحلیل تسریع در سیستم‌های چند‌هسته‌ای همگون و ناهمگون
    • ارائه‌ی‌ چند نمونه واقعی از سیستم‌های چند‌هسته‌ای
  • چند‌پردازنده‌ها با حافظه مشترک
    • معرفی کلی معماری
    • ارائه‌ی مسئله‌ی Cache Coherence و راه‌حل‌ها
    • معرفی اجمالی مدل برنامه‌نویسی و نحوه همگام‌سازی نخ‌ها
    • نحوه برخورد با ناحیه‌های بحرانی
    • ایده‌های کلی در بهبود برنامه‌های موازی
  • الگو‌های رایج موازی‌سازی محاسبات و مدیریت داده
    • الگوهای محاسباتی موازی: Map, Reduction, Scan, Stencil, Recurrence, Fork-Join
    • الگوهای موازی مدیریت داده: Gather, Scatter, Pack, Geometric Decomposition & Partitions
  • برنامه‌نویسی موازی عمومی در سیستم‌های چند‌هسته ای
    • برنامه‌نویسی با Pthreads
    • برنامه‌نویسی با OpenMP
  • برنامه‌نوسی موازی در سیستم‌های برداری
    • معرفی کلی سیستم‌های برداری و آرایه‌ای
    • معرفی ISA مخصوص پردازنده Intel برای محاسبات SIMD
    • معرفی معماری و نحوه برنامه‌نویسی پردازنده CELL BE
  • برنامه‌نویسی موازی در پردازنده‌های گرافیکی عام‌منظوره
    • معرفی جامع معماری پردازنده‌های گرافیکی
    • معرفی معماری چند نمونه واقعی از پردازنده‌های گرافیکی شرکت NVIDIA
    • برنامه‌نویسی با زبان CUDA
    • معرفی Profiler شرکت NVIDIA
  • معرفی اجمالی برنامه‌نویسی موازی در سیستم‌های توزیع‌شده
    • معرفی کتابخانه Message Passing Interface (MPI) و نحوه‌ی برنامه‌نویسی موازی براساس مدل تبادل پیام

ارزیابی:

  • تمرین‌های نظری: ۳ نمره
  • آزمون‌های میان‌ترم و پایانی: ۱۵ نمره
  • آزمونک‌ها: ۲ نمره

منابع و مراجع:

  • [1] A. Patterson and J. L. Hennessy. Computer Architecture: A quantitative approach. Morgan Kaufmann, 2019
  • [2] Sanders and E. Kandrot. CUDA by examples: An introduction to GPGPU programming. Addison-Wesley, 2011
  • [3] B. Kirk and W. W. Hwu. Programming massively parallel processors: A hands-on approach. NVIDIA, 2010
  • [4] McCool, A.D. Robison, and J. Reinders. Structured Parallel Programming. Elsevier, 2012

درس: سیستم‌های بی‌درنگ (شماره درس: ۴۰۴۵۳) 

Real-Time Systems

شماره درس: ۴۰۴۵۳

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: –

هم‌نیاز: سیستم‌های عامل

اهداف درس:

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

علاوه بر این، می‌توان به موارد زیر نیز در هدف درس اشاره کرد:

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

ریز مواد:

  • مقدمه‌ای بر سیستم‌های بی‌درنگ و تقسیم بندی‌ها و کاربردهای آن
    • انگیزه‌ها، تعاریف، انواع وظایف (نرم یا سخت، غیر تناوبی یا متناوب)، اجزای یک سیستم بی‌درنگ نمونه
  • مدل‌سازی و وارسی ویژگی‌های سیستم‌های بی‌درنگ (به کمک شبکه پتری)
    • بررسی و مدل‌سازی همروندی، به اشتراک گذاری منابع، زنده و محدود بودن، اجرا یا کار زماندار، برآورد و ارزیابی زمان اجرا و رعایت موعد و محدودیت‌های زمانی
  • زمان‌بندی وظایف دوره‌ای (Periodic) در تک پردازنده
    • زمان‌بندی وظایف با اولویت‌های ایستا و پویا (Rate monotonic, EDF…)
    • بررسی معیارها و شروط زمان‌بندی پذیری (Schedulability) در سیستم‌های بی‌درنگ
    • وظایف انحصاری (Non preemptive) و غیر انحصاری (یا قابل انقطاع: Preemptive)
  • زمان‌بندی وظایف غیر دوره‌ای (Aperiodic) و پراکنده (Sporadic) و حالت زمان‌بندی ترکیبی با وظایف دوره‌ای در تک پردازنده
    • شروط زمانبندی پذیری، روش‌های توزیع وظایف
    • ارائه‌ی انواع الگوریتم‌های زمان‌بندی (FCFS, Polling server, Deferred server, Slack stealing, Sporadic…)
  • اشاره‌ی اجمالی به زمان‌بندی وظایف در چندپردازنده ها
  • بررسی اجمالی مفهوم و نقش قابلیت اطمینان، قابلیت دسترسی و روش‌های تحمل پذیری اشکال در سیستم‌های بی‌درنگ
  • ارتباطات بی‌درنگ
    • محدودیت‌های زمانی در ارتباطات و پروتکل‌های ارتباطی بی‌درنگ در شبکه

ارزیابی:

  • تمرین‌های نظری: ۲ نمره
  • آزمون‌های میان‌ترم و پایانی: ۱۵ نمره
  • پروژه‌ی عملی: ۳ نمره

منابع و مراجع:

  • [1] C. Buttazzo. Hard real-time computing systems: predictable scheduling algorithms and applications. 3rd Edition, Springer, 2011
  • [2] W. S. Liu. Real-Time Systems. Prentice Hall, 2000
  • [3] A. Laplante. Real time systems design and analysis. 3rd Edition, IEEE Press & Wiley InterScience, 2004
  • [4] M. Krishna and Kang G. Shin. Real-Time Systems. McGraw-Hill, 1997
  • [5] Some real-time related conference and journal papers

درس: سیستم‌های نهفته (شماره درس: ۴۰۴۶۲)

Embedded Systems

شماره درس: ۴۰۴۶۲

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: معماری کامپیوتر

هم‌نیاز: –

اهداف درس:

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

ریز مواد

  1. مقدمه (۱ جلسه)
    • معرفی سیستم‌های نهفته، مشخصات سامانه‌های نهفته، اهمیت سامانه‌های نهفته، کاربردهای سامانه‌های نهفته، حسگرها و فعال‌سازها، سیستم‌های Reactive
  2. میکروکنترلرها به‌عنوان عنصر کلیدی سامانه‌های نهفته (۲ جلسه)
    • معرفی میکروکنترلر، دلایل اهمیت میکروکنترلر در سامانه‌های نهفته، معماری میکروکنترلر، تبدیل آنالوگ به دیجیتال، پورت‌ها، ارتباطات سریال در میکروکنترلرها، یک مثال از سیستم‌های کنترلی خودکار
  3. مدیریت منابع و وظایف در میکروکنترلرها (۳ جلسه)
    • پیاده‌سازی نرم‌افزاری یک سیستم نهفته، نقش حلقه‌های نامحدود، Remote Debugger، Emulator، نحوه‌ی برقراری ارتباط با میکروکنترلر از محیط پیرامون، حافظه در میکروکنترلرها
  4. مروری بر بسترهای سخت‌افزاری رایج سیستم‌های نهفته (۶ جلسه)
    • مروری بر بردهای سخت‌افزاری Arduino و Raspberry Pi به عنوان بسترهای سخت‌افزاری رایج کاربردهای نهفته، مقایسه و کاربردهای آن‌ها، مروری بر روش‌های توسعه‌ی نرم‌افزار برای این بسترها
  5. برنامه‌نویسی مبتنی بر اتوماتا (۴ جلسه)
    • مفهوم برنامه‌ریزی مبتنی بر اتوماتا، کاربرد برنامه‌ریزی مبتنی بر اتوماتا در توصیف سیستم‌های Reactive، ساختار سلسله‌مراتبی در برنامه‌ریزی مبتنی بر اتوماتا، مزایای برنامه‌ریزی مبتنی بر اتوماتا برای طراحی سیستم‌های نهفته، توصیف واکنش به‌صورت Mealy و Moore در برنامه‌ریزی مبتنی بر اتوماتا
  6. زبان StateCharts (۳ جلسه)
    • MoC در StateCharts، توصیف سلسله‌مراتبی در StateCharts، Or-Super-State و AND-Super-State، طراحی پیمانه‌ای در StateCharts، مثال از توصیف یک سیستم نهفته با StateCharts (سیستم منشی تلفنی)، Timerها در StateCharts، اهمیت Timerها در توصیف بی‌درنگی، توصیف رخداد، شرط و واکنش در StateCharts، مراحل شبیه‌سازی (اجرا) کد StateCharts
  7. بی‌درنگی، انرژی مصرفی و قابلیت اطمینان در سیستم‌های نهفته (۴ جلسه)
    • روش‌های سطح سیستم کاهش انرژی مصرفی در سیستم‌های نهفته، روش‌های افزونگی زمانی بهبود قابلیت اطمینان در سیستم‌های نهفته، اهمیت بی‌درنگی در سیستم‌های نهفته، مروری بر مصالحه میان بی‌درنگی، انرژی مصرفی و قابلیت اطمینان در سیستم‌های نهفته
  8. معرفی اینترنت اشیا و نقش تعیین‌کننده‌ی سامانه‌های نهفته در شکل‌گیری آن (۷ جلسه)
    • بررسی تعاریف ارائه‌شده برای اینترنت اشیاء، تفاوت اینترنت اشیا با سامانه‌های سایبرفیزیکی و شبکه‌های حسگر بی‌سیم، بررسی تاریخچه و خواستگاه اینترنت اشیا، کاربردها در دنیای نوین، معماری‌های اینترنت اشیا و تبیین جایگاه هر کدام از لایه‌ها با تأکید بر لایه‌ی شبکه، نقش و اهمیت ارتباطات در سامانه‌های اینترنت اشیا، معرفی ارتباطات D2D و چالش‌های پیرامون آن، اهمیت استفاده مناسب از پهنای باند در اینترنت اشیا، معرفی NBIOT، معرفی Flashlinq، معرفی و بررسی جایگاه نسل پنجم ارتباطات (5G) در ارتباطات اینترنت اشیا، بررسی چالش‌های اینترنت اشیا، چالش انرژی و توان مصرفی در گره‌های موجود در زیرساخت، اشاره به مباحث مطرح در امنیت و حریم خصوصی در اینترنت اشیا، روش‌های ارزیابی انرژی مصرفی در کاربردهای اینترنت اشیاء

ارزیابی:

  • تمرین‌ها: ۳ نمره
  • پروژه: ۲ نمره
  • آزمون‌‌های میان‌ترم و پایان‌ترم: ۱۳ نمره
  • آزمونک‌ها: ۲ نمره‌ی تشویقی

منابع و مراجع:

  • [1] Peter Marwedel. Embedded System Design. 1st Edition, Springer, 2006
  • [2] احمد کاردان و سید امیر اصغری. کاربرد سیستم‌های نهفته در اندازه‌گیری و کنترل، کیان رایانه‌ی سبز، ۱۳۸۷.
  • [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] S. Pressman. Software Engineering: A Practitioner’s Approach.8th Edition, McGraw-Hill, 2014
  • [2] Ammann and J. Offutt. Introduction to Software Testing. Cambridge University Press, 2008
  • [3] Woodcock and J. Davies. Using Z: Specification, Refinement, and Proof. Prentice-Hall, 1996

درس: طراحی شیءگرای سیستم‌ها (شماره درس: ۴۰۴۸۴)

Object-Oriented Systems Design

شماره درس: ۴۰۴۸۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: تحلیل و طراحی سیستم‌ها

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  • مقدمه – مروری بر شیءگرایی و معرفی تاریخچه تکاملی تحلیل و طراحی شیءگرا (۱ جلسه)
  • مروری بر زبان مدل‌سازی یکپارچه UML)) (۴ جلسه)
  • مراحل و جریان‌های کاری در USDP
    • مراحل چهارگانه (۳ جلسه)
    • جریان کاری خواسته‌ها – شناسایی و مدل‌سازی موارد کاربرد (۳ جلسه)
    • جریان کاری تحلیل
      • شناسایی و مدل‌سازی اشیاء و کلاس‌های تحلیل (۲ جلسه)
      • شناسایی و مدل‌سازی روابط بین اشیاء و کلاس‌های تحلیل (۲ جلسه)
      • بسته‌های تحلیل (۱ جلسه)
      • محقق‌سازی موارد کاربرد در تحلیل (۲ جلسه)
      • مدل‌سازی فعالیت‌ها (۲ جلسه)
    • جریان کاری طراحی
      • شناسایی و مدل‌سازی اشیاء و کلاس‌های طراحی (۱ جلسه)
      • پالایش روابط (۱ جلسه)
      • واسط‌ها و مؤلفه‌ها (۱ جلسه)
      • محقق‌سازی موارد کاربرد در طراحی (۱ جلسه)
    • جریان کاری پیاده‌سازی (۱ جلسه)
  • الگوهای طراحی
    • اصول و قواعد طراحی: اصول ششگانه پایه، الگوهای GRASP، طراحی بر اساس قرارداد (۱ جلسه)
    • الگوهای طراحی GoF
      • الگوهای آفرینشی: Factory Method، Abstract Factory، Builder، Prototype، Singleton (۱ جلسه)
      • الگوهای ساختاری: Adapter، Bridge، Composite، Decorator، Facade، Proxy (۱ جلسه)
      • الگوهای رفتاری: Chain of Responsibility، Iterator، Mediator، Memento، Observer، State، Strategy، Visitor (۲ جلسه)

ارزیابی:

  • آزمون: آزمون‌های میان‌ترم و پایان‌ترم (۶۰٪ کل نمره)
  • تمرین و پروژه: تمرینات در قالب یک پروژه درسی تحلیل و طراحی، تعریف شده و بتدریج در طول نیم‌سال انجام و تحویل داده می‌شوند (۴۰٪ کل نمره).

منابع و مراجع:

  • [1] Arlow and I. Neustadt. UML 2 and the Unified Process. 2nd Edition, Addison-Wesley, 2005
  • [2] Gomaa. Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. Cambridge University Press, 2011
  • [3] Booch, R. A. Maksimchuk, M. W. Engel, B. J. Young, J. Conallen, and K. A. Houston. Object-Oriented Analysis and Design with Applications. 3rd Edition, Addison-Wesley, 2007
  • [4] Gamma, R. Helm, R. Johnson, and 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

درس: شبیه‌سازی کامپیوتری (شماره درس: ۴۰۶۳۴)

Computer Simulation

شماره درس: ۴۰۶۳۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: آمار و احتمال مهندسی

هم‌نیاز: –

 اهداف درس:

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

ریز مواد:

  • مقدمه‌ای بر شبیه‌سازی
  • آشنایی با MATLAB‌ یا ابزارهای مشابه به عنوان ابزار محاسباتی درس
  • اصول اولیه و مثال‌هایی از شبیه‌سازی
    • مفاهیم شبیه‌سازی سیستم‌های گسسته رخداد
    • چند مثال از شبیه‌سازی
  • الگوی پیاده‌سازی سیستم‌های شبیه‌سازی گسسته‌رخداد
    • انواع ساختارهای سیستم‌های شبیه‌سازی رخدادهای گسسته
    • پردازش لیست مرتب
    • روش‌های ترسیم سیستم‌ها برای انجام شبیه‌سازی
  • مدل‌های آماری در شبیه‌سازی
    • مروری کوتاه بر آمار و احتمال
    • توزیع‌های گسسته
    • توزیع‌های پیوسته
    • توزیع‌های تجربی
  • تولید عدد تصادفی یکنواخت
    • ویژگی‌های مورد نیاز برای اعداد تصادفی
    • روش‌های تولید اعداد تصادفی
    • آزمون‌های تصادفی‌بودن دنباله‌ها
  • تولید متغیر‌های تصادفی
    • روش تبدیل معکوس
    • روش پذیرش و رد
    • ترکیب
    • کانولوشن
  • مدل‌سازی ورود
    • جمع‌اوری داده‌ها
    • ارزیابی استقلال نمونه‌ها
    • تشخیص توزیع از روی داده‌ها
    • تخمین پارامتر
    • آزمون کیفیت برازش
    • انتخاب مدل در غیاب نمونه داده
    • مدل‌های فرآیندهای ورودی
  • وارسی و اعتبارسنجی مدل‌های شبیه‌سازی
  • تحلیل داده‌های خروجی
    • رفتار گذرا و حالت پایدار فرآیندهای تصادفی
    • انواع شبیه‌سازی با توجه به تحلیل خروجی
    • تحلیل آماری پارامترهای حالت پایدار
  • طراحی آزمایش و تحلیل حساسیت
  • مباحث پیشرفته در شبیه سازی
    • شبیه‌سازی مونت‌ کارلو
    • مثال‌های دنیای واقع از شبیه‌سازی

ارزیابی:

  • تمرین‌های نظری: ۳ نمره
  • آزمون‌‌های میان‌ترم و پایانی: ۱۵ نمره
  • آزمونک‌ها: ۲ نمره

منابع و مراجع:

  • [1] Banks, Carson, Nelson, and Nicol. Discrete-Event System Simulation. 5th Edition, Prentice-Hall, 2010

درس: یادگیری ماشین (شماره درس: ۴۰۷۱۷)

Machine Learning

شماره درس: ۴۰۷۱۷

تعداد واحد: ۳

مقطع: کارشناسی ارشد

نوع درس: نظری

پیش‌نیاز: هوش مصنوعی، جبر خطی

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  1. مقدمه‌ای بر یادگیری ماشین و مرور مباحث احتمال و جبرخطی (۱ جلسه)
  2. روش‌های تخمین ML و MAP (۱ جلسه)
  3. رگرسیون (۳ جلسه)
    • رگرسیون خطی و غیرخطی
    • بیش‌برازش (overfitting)
    • تجزیه‌ی خطا به بایاس (bias)، واریانس (variance) و نویز
    • منظم‌سازی (regularization)
    • رگرسیون آماری (statistical): ارتباط توابع هدف مبتنی بر SSE با تخمین‌های احتمالی ML و MAP برای مساله‌ی رگرسیون
  4. ارزیابی (evaluation) و تنظیم کردن مدل‌ها (۱ تا ۲ جلسه)
    • اعتبارسنجی (validation)
    • اعتبارسنجی متقابل (Cross-validation)
    • انتخاب مدل (model selection)
    • انتخاب ویژگی (feature selection)
  5. دسته‌بندی (classification)
    • دسته‌بندهای احتمالی (probabilistic classifiers) (سه جلسه)
    • تئوری تصمیم (decision theory) و دسته‌بند بهینه بیز (Bayes optimal classifier)
    • دسته‌بندی احتمالی جداساز (discriminative) و مولد (generative)
    • Logistic regression دو دسته‌ای و چند دسته‌ای (multi-class) و بیز ساده (Naïve Bayes)
  6. دسته‌بندی با استفاده از توابع جداسازی (discriminant functions) (شش جلسه)
    • پرسپترون (Perceptron)
    • جداساز خطی فیشر (Fisher)
    • ماشین بردار پشتیبان (SVM) و هسته (kernel)
    • شبکه‌های عصبی (neural networks)
  7. درخت تصمیم (Decision Tree) (یک جلسه)
    • آنتروپی و بهره اطلاعاتی (Information Gain)
    • الگوریتم ID-3
    • توقف رشد و هرس درخت تصمیم
  8. روش‌های یادگیری مبتنی بر نمونه (instance-based) (دو جلسه)
    • تخمین چگالی غیر پارامتری (Non-parametric density estimation)
    • دسته‌بند k-نزدیکترین همسایه (k-Nearest Neighbors)
    • رگرسیون خطی وزن‌دار محلی (Locally Weighted Linear Regression)
  9. تئوری یادگیری محاسباتی (۲ جلسه)
    • PAC-learning
    • VC dimension
    • کمینه‌سازی ریسک ساختاری (structural risk minimization)
  10. یادگیری جمعی (ensemble learning) (دو جلسه)
    • Boosting و Bagging
    • AdaBoost
  11. کاهش ابعاد (dimensionality reduction) بدون ناظر (۲ جلسه)
    • تحلیل مولفه اصلی (PCA)
    • تحلیل مولفه مستقل (ICA)
  12. خوشه‌بندی (clustering) (سه جلسه)
    • روش‌های افرازی (EM+GMM، k-means: (partitional
    • روش‌های سلسله مراتبی (hierarchical)
  13. یادگیری تقویتی (reinforcement learning) (دو جلسه)
    • فرایند تصمیم مارکوف (MDP)
    • روش‌های یادگیری مبتنی بر مدل (model-based)
    • روش تکرار مقدار (value iteration) و تکرار سیاست (policy iteration)
    • روش‌های یادگیری بی مدل (model-free)
    • الگوریتم‌های SARSA، Q-learning، تفاضل زمانی (Temporal Difference)
  14. مباحث پیشرفته در یادگیری ماشین

ارزیابی:

  • تمرین: ۲۰٪
  • میان‌ترم: ۲۵٪
  • پایان‌ترم: ۳۵٪
  • امتحان‌های کوتاه: ۱۰٪
  • پروژه: ۱۰٪

منابع و مراجع:

  • [1] Bishop. Pattern Recognition and Machine Learning. Springer, 2006
  • [2] Mitchell. Machine Learning. MIT Press, 1998
  • [3] Murphy. Machine Learning: A Probabilistic Perspective. MIT Press, 2012
  • [4] Hastie, R. Tibshirani, and J. Friedman. The elements of statistical learning. 2nd Edition, 2008

دروس اختیاری رشته کامپیوتر

درس: سیستم‌های چندرسانه‌ای (شماره درس: ۴۰۳۴۲)

Multimedia Systems

شماره درس: ۴۰۳۴۲

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: سیگنال‌ها و سیستم‌ها

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  • آشنایی با چندرسانه‌ها (۲ جلسه)
    • معرفی چندرسانه
    • معرفی سیستم چندرسانه
    • هایپر مدیا
    • مشخصه‌ها و چالش‌ها و اجزای تشکیل‌دهنده سیستم‌های چندرسانه‌ای
    • داده‌های چندرسانه‌ای
    • پروژه‌ها و موضوعات تحقیقاتی چندرسانه‌ای
  • مرور سیگنال‌ها و سیستم‌ها (۴ جلسه)
    • معرفی سیگنال‌ها و سیستم‌های زمان‌گسسته
    • تئوری نمونه‌برداری
    • چندی‌سازی (کوانتیزاسیون) عددی و برداری
    • تجزیه و تحلیل در حوزه تبدیل
    • معرفی تبدیل‌های FFT و STFT و موجک
  • صوت (۳ جلسه)
    • نمایش و عرضه‌ی صوت
    • نمونه‌برداری و چندی‌سازی صوت
    • استانداردها و قالب ها
    • نقاب گذاری (Masking) فرکانسی و زمانی
    • پردازش سیگنال صوتی
    • فشرده‌سازی سیگنال صوتی
  • کدگذاری آنتروپی (۳ جلسه)
    • فشرده‌‌سازی باتلفات و بدون تلفات
    • کدگذاری Run-length
    • کدگذاری با طول ثابت
    • کدگذاری با طول متغیر
    • کدگذاری هافمن
    • کدگذاری Lempel-Ziv-Welch
    • کدگذاری محاسباتی
  • تصویر (۴ جلسه)
    • فضای رنگ YUV, RGB, HSV, CMYK
    • ثبت و نمایش تصویر
    • بهبود کیفیت تصویر
    • فشرده‌سازی تصویر DCT و MPEG
  • ویدئو (۴ جلسه)
    • مفاهیم پایه ویدئوی آنالوگ و دیجیتال
    • فشرده‌سازی ویدئو
    • کدگذاری درون‌قابی و بین‌قابی
    • تخمین و جبران‌سازی حرکت
    • ارزیابی کیفیت ویدئو
    • استاندارهای کدگذاری ویدئو MPEG1, MPEG2, MPEG4, H261, H263, H264
  • سیستم چندرسانه‌ای (۴ جلسه)
    • Standalone در برابر شبکه‌شده
    • Orchestrated‌ در برابر زنده
    • بلوک‌های تشکیل‌دهنده سیستم چندرسانه‌ای
    • معماری سیستم چندرسانه‌ای بی‌درنگ
  • شبکه‌ی چندرسانه‌ای (۳ جلسه)
    • کیفیت انتقال داده چندرسانه‌ای
    • پروتکل‌های جریان‌سازی
    • پنهان‌سازی خطا
    • کدگذاری اولویت‌دار
    • شبکه‌های Overlay
    • تلفات بسته‌ی داده؛ تراکم و کیفیت خدمات
    • Unicasting‌ و Multicasting
    • چندرسانه‌ای بی‌سیم
  • کاربردهای چندرسانه‌ای (۳ جلسه)
    • تلفن اینترنتی
    • پخش ویدئوی دیجیتال
    • تلویزیون اینترنتی؛ تلویزیون تعاملی و IPTV
    • آموزش الکترونیکی
    • رابط انسان و رایانه
    • پلتفرم خانه چندرسانه‌ای
    • سیستم بازیابی اطلاعات چندرسانه‌ای
    • فناوری‌های سه‌بعدی

ارزیابی:

  • تمرین‌های نظری: ۳ نمره
  • آزمون‌‌های میان‌ترم و پایانی: ۱۲ نمره
  • آزمونک‌ها: ۳ نمره

منابع و مراجع:

  • [1] Steinmettz and K. Nahrstedt. Multimedia: Computing, Communications and Applications. Prentice Hall, 1995
  • [2] Steinmettz and K. Nahrstedt. Multimedia Fundamentals: Media Coding and Content Processing. Prentice Hall, 2002
  • [3] R. Rao, Z. S. Bojkovic and D. A. Milanovic. Multimedia Communication Systems: Techniques, Standards and Networks. Prentice Hall, 2002

درس: انتقال داده‌ها (شماره درس: 40343)  

Data Transmission

شماره درس: ۴۰۳۴۳

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: سیکنال‌ها و سیستم‌ها

هم‌نیاز: –

 هدف درس:

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

ریز مواد:

  • محیط‌های انتقال (۶ جلسه)
    • زوج سیم
    • زوج سیم به‌هم‌تافته
    • کابل هم‌محور
    • موج‌بر
    • فیبر نوری
    • لینک نوری فضای آزاد
    • لینک مایکروویو
    • ماهواره
  • عوامل بروز خطا (۴ جلسه)
    • نویز حرارتی
    • نویز الکتریکی (تداخل الکترومغناطیس و تداخل رادیویی)
    • اعوجاج تضعیف
    • اعوجاج تأخیر
    • سیگنال بازگشتی
    • اعوجاج هارمونیکی
    • اعوجاج انترمدولاسیون
    • همشنوایی
    • محوشدگی
  • تشخیص و تصحیح خطا (۳ جلسه)
    • آزمایش افزونگی افقی (LRC)
    • آزمایش افزونگی عمودی (VRC)
    • آزمایش افزونگی دوبعدی (VRC-LRC)
    • آزمایش افزونگی دوره‌ای (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
  • ]۴[ادهم صادقی )مترجم)، “اصول ارتباطات داده ها”، انتشارات تیزهوشان سرزمین کهن، ١٣٨۴

اهمیت درس:

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

مهارت‌هایی که دانشجویان با گذراندن این درس کسب خواهند کرد:

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

کاربردهای عملی:

  • طراحی شبکه‌های کامپیوتری
  • توسعه نرم‌افزارهای شبکه
  • امنیت شبکه
  • ارتباطات بی‌سیم
  • اینترنت اشیا

توصیه می‌شود که در کنار این سرفصل، از نرم‌افزارهای شبیه‌سازی شبکه مانند NS-3 یا Mininet برای آموزش و انجام پروژه‌ها استفاده شود.

درس: مبانی بینایی سه‌بعدی کامپیوتری (شماره درس: ۴۰۳۴۴)

Fundamentals of 3D Computer Vision

شماره درس: ۴۰۳۴۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: جبر خطی یا ریاضی مهندسی

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  • پردازش سیگنال و تصویر
    • برخی مفاهیم مقدماتی پردازش سیگنال
    • مروری مختصر بر سیگنال‌ها و سیستم‌ها
    • تابع پیچش
    • تبدیل فوریه
    • پالایش تصویر
  • مقدمات هندسه سه‌بعدی
    • برخی مفاهیم مقدماتی هندسی
    • مروری مختصر بر جبر خطی
    • پارامتری کردن ماتریس چرخش
    • مختصات مشابه
    • دوربین مدل سوراخ سوزنی
    • از متر به مختصات پیکسل
  • دوربین‌ها و افکنش‌ها
    • افکنش موازی
    • افکنش دورنما
    • چرخش‌های دوربین تک محور
    • ساخت تصویر موزائیکی ساده
    • پارامترهای داخلی و خارجی دوربین
    • حرکت کلی دوربین
    • تخمین نگاشت‌های خطی
    • انتقال کلی دوربین
  • بازسازی سه‌بعدی از دید دوتائی
  • بازسازی سطح و اجرا
    • مثلث‌سازی مجموعه نقاط
    • نکاشت سطح، اجرای تصویرگرا
    • سطوح مسطح، نگاست خطی
  • چند دوربینی
    • دوربین‌های دورنما- تعدیل بسته
    • دوربین‌های افکنشی موازی
    • عامل‌بندی دوربین‌ها و مختصات سه‌بعدی
    • ساختار افاین
  • استخراج نقاط کلیدی
  • برازش مدل مقاوم
  • خوشه‌بندی و بخش‌بندی
  • برش‌های گراف
  • بازشناسی شیء
    • دسته‌بندی قالب
    • نزدیک‌ترین همسایه‌ها، PCA، کاهش بعد
    • بیز غیرپیچیده
    • ترکیب دسته‌بندهای ساده
    • شبکه‌های عصبی
  • نزدیک‌ترین همسایه‌ها
  • یادگیری ژرف در بینائی کامپیوتری
    • شبکه‌های عصبی و پس‌انتشار
    • معماری‌های CNN: ایده‌های جدید، مزایا، و معابب
    • شبکه‌های عصبی ژرف مکانی-زمانی
    • آموزش شبکه‌های عصبی ژرف با پای‌تورچ

ارزیابی:

  • امتحان پایان‌ترم: ۴۰٪
  • امتحان میان‌ترم: ۱۵٪
  • آزمونک: ۱۰٪
  • تمرین‌ها: ۱۵٪
  • پروژه نهایی: ۲۰٪

منابع و مراجع:

  • [1] Stefan Carlsson. Geometric Computing in Image Analysis and VisualizationLecture Notes, KTH University, 2007
  • [2] Richard Szeliski. Computer Vision: Algorithms and Applications. 1st Edition, Springer, 2010

درس: آداب فناوری اطلاعات (شماره درس: ۴۰۳۴۷)

 Information Technology Ethics

شماره درس: ۴۰۳۴۷

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: –

هم‌نیاز: –

 

هدف درس:

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

ریز مواد:

  • مقدمات (۲ جلسه)
    • اهداف، برنامه‌ی درسی و توافق بر الگوی تعلیم و چارچوب درس
    • مبانی و اصول اخلاق و آداب مهندسی، حرفه‌ای و فاوا
  • نسبت آداب و اخلاق و جایگاه آن‌ها در قبال قانون (۱ جلسه)
    • مروری بر تناسبات، تفاوت‌ها و همسانی‌های آداب با اخلاق
    • موید و مراعی بودن و تعارض ناپذیری آداب در قبال قانون
    • پیشینه‌گرایی قانون و آینده‌تابی آداب
  • پیشینه و انواع نظامات ارزشی اخلاقی حامی آداب و مشخصات عمومی آن‌ها (۵ جلسه)
    • پیشینه‌ی فلسفی اخلاق و انواع نظام‌های اخلاقی در غرب
    • اخلاق اسلامی، اخلاق ایرانی و ایرانیان
    • اخلاق جهانی و قوانین طلایی و عرفی اخلاقی.
  • تعارضات، بلاتکلیفی و تنگناهای اخلاق و راه حل‌های مواجهه با این وضعیت‌ها (۳ جلسه).
    • تنگنای اخلاقی
    • تعارض اخلاقی
    • بلاتکلیفی اخلاقی
    • الگوهای داوری اخلاقی، تناسبات و مدل فرآیندی آن‌ها.
  • ماهیت توافقی آداب، ساختار و کاربردها و کارکردهای انواع اسناد آدابی (۲ جلسه).
    • تدوین توافقی آسناد آدابی
    • تعریف، کاربرد و نحوه‌ی تدوین اساسنامه‌ها.
    • تعریف، کاربرد ومدل و نحوه‌ی تدوین منشورهای آدابی.
    • تعریف، کاربرد، مدل و نحوه‌ی تدوین آداب نامه‌ها.
  • مدل‌های مولد و حامی انواع الگوهای آداب‌نامه‌‌نویسی به‌ویژه آداب‌نامه‌های سنجش‌پذیر (۲ جلسه)
    • اسناد آدابی گروهی.
    • اسناد آدابی بنگاهی.
    • اسناد آدابی بنگاهی با امکان توفیق سنجی.
    • مدل‌های بهبود اسناد آدابی.
  • آداب‌نامه‌های فا و کاربردهای آن در حوزه‌های حرفه‌ای‌گری. مهندسی حرفه‌ای فا و جایگاه نظام مهندسی در حوزه‌های حرفه‌ای‌گری (۲جلسه).
    • آداب‌نامه‌های حرفه‌ای.
    • مهندسی حرفه‌ای فا.
    • نظامات حرفه‌ای ومهندسی.
    • نطام مهندسی فا، اهداف، کارکردها و ضرورت‌ها.
    • نظامات صنفی، حرفه‌ای و مهندسی فا در جهان و ایران.
  • حق فکری، حق مالی، حق تکثیر و حق اختراع در حوزه فا، قوانین حامی، آداب نامه‌های مکمل و آینده‌ی آن‌ها (۳ جلسه)
    • حق مالی و فکری ابداعات.
    • حق اختراع و تکثیر ابداعات.
    • قوانین حامی در ایران و جهان.
    • آداب نامه‌های حامی حقوق ابداعات.
    • آینده‌ی این حقوق در جهان مجازی.
  • ابعاد اخلاقی جامعه اطلاعاتی و مجازی (۳ جلسه)
    • گردش آزاد اطلاعات و حقوق شهروندی
    • امنیت، شفاف سازی و محرمانگی اطلاعات، آلودگی و تضمین کیفیت اطلاعات.
    • آداب خلوت و حریم شخصی در رایا سپر از جمله شبکه‌های اجتماعی
    • حریم شخصی در رایا سپهر و آینده آن.
    • متافیزیک واقعیت مجازی و نقد اثرات فا.
    • جامعهٔ عریان و مقابله با ترس از فناوری.
    • زندگی دوم، جهان مجازی، تغییر الگوی ارتباطی و تبعات آن بر نظامات کلان از جمله نظامات آموزشی.
    • سایت‌ها، وب نوشته‌ها، شبکه‌های اجتماعی، نیازها و تبعات، دشواری‌ها و راه حل‌ها.
    • مردم‌سالاری الکترونیکی و ابعاد آن.
    • سواد بهداشت و آداب فا برای همه.
  • انواع تخلفات و جرائم رایانه، پلیس اینترنتی، امنیت اجتماعی و شهروندی در رایاسپهر و راه‌های مقابله (۴ جلسه).
    • بد افزارها، ویروس‌ها، کرم‌ها، روش‌ها، حفره‌ها و اشکال نفوذ.
    • هکرها، کراکرها، آزاردهنده‌ها، مجرمین و تروریست‌های سایبری
    • ارزش‌های پیشگیرانه‌ی آداب فا در کاهش جرائم و تخلفات رایانه‌ای
    • حمایت از گروه‌های سنی آسیب‌پذیر در مواجهه با محتواهای رقمی آسیب رسان.
    • قوانین جرائم رایانه‌ای در ایران و جهان و حوزه‌های فردی، اجتماعی و ملی آسیب.
    • دلایل رقمی، کارشناسی رسمی فا و لزوم مشی‌های امنیتی سازمانی.
    • امنیت در بنگاه‌ها، سازمان‌های عمومی، خدمات و سامانه‌های الکترونیکی و نحوه‌ی تامین آن.
    • نرم‌افزارهای متن باز، انواع مجوزهایی آن و حل دشواریهای مالکیت ارزش‌افزای محصولات متکامل و سهم شالوده‌سازان.
    • حفظ امنیت با پایش گسترده یا حریم شخصی ناامن.
    • انواع قوانین فا در ایران و نقد آن‌ها.
    • کیفیت زندگی و نقش فا و آداب فای سبز در زندگی اول و دوم رایانه‌ای و بازیافت ابزار مستهلک رایانه‌ای.
  • تازه‌های آداب فناوری اطلاعات (۲ جلسه)
    • بی‌طرفی شبکه
    • انسان دو زیست معاصر و واقعیت مجازی، واقعیت افزوده و زندگی دوم.
    • استعارهٔ اینفورگ و انقلاب چهارم لوچیانو فلوریدی
    • اخلاق شزان (NBIC)

ارزیابی:

  • تمرین‌های عملی (فهم مطلب و حل مسئله): ۶ نمره
  • آزمون‌های میان‌ترم و پایانی: ۱۲ نمره
  • آزمونک‌ها: ۲ نمره

اهمیت درس:

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

مهارت‌هایی که دانشجویان با گذراندن این درس کسب خواهند کرد:

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

کاربردهای عملی:

  • توسعه نرم‌افزارهای اخلاقی
  • طراحی سیاست‌های حریم خصوصی
  • ارزیابی اثرات اجتماعی فناوری
  • مشاوره در زمینه اخلاق فناوری اطلاعات

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

ابزارهای مفید:

  • پلتفرم‌های آنلاین برای بحث و گفتگو
  • ابزارهای شبیه‌سازی تصمیم‌گیری اخلاقی
  • مقالات و کتاب‌های مرتبط با اخلاق فناوری اطلاعات

منابع و مراجع:

  • [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

درس: طراحی زبان‌های برنامه‌سازی (شماره درس: 40364)

Design of Programming Languages

شماره درس: ۴۰۳۶۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: برنامه‌سازی پیشرفته

هم‌نیاز: –

اهداف درس:

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

علاوه بر این، می‌توان به موارد زیر نیز در هدف درس اشاره کرد:

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

ریز مواد:

  • مقدمه
    • تاریخچه تکاملی زبان‌های برنامه‌سازی و معرفی برخی زبان‌های مهم از منظر تحولات تاریخی
    • معرفی مقایسه‌ای سنت‌های اصلی برنامه‌سازی (سنت‌های برنامه‌سازی امری-رویه‌ای ، شی‌گرا ، برنامه‌سازی مبتنی بر قاعده و سنت برنامه‌سازی توصیفی-تابعی ) از منظر نگاه آن‌ها به مفهوم و تعریف برنامه.
  • تفسیر یا ترجمه
    • مقایسه مفهوم تفسیر و ترجمه هم از منظر طراحی زبان و هم از منظر نحوه و مسائل مرحله‌ی پیاده‌سازی
  • مهندسی زبان
    • آشنایی با زبان‌ها و ابزارهای موجود برای ایجاد امکان طراحی زبان‌های ویژه‌ی دامنه و پیاده‌سازی کارا و سریع مفسر آن‌ها. پیشنهاد خاص: معرفی و تمرین عملی کار با ابزار برنامه‌پذیر DrRacket.
  • برنامه‌سازی تابعی
    • مروری بر مفاهیم اصلی برنامه‌نویسی تابعی و حساب لامبدا همراه با تمرینات و پروژه‌های عملی. زبان پیشنهادی Scheme (بر اساس نحو و معناشناسی کتاب Friedman) یا Racket (بر اساس نحو و معناشناسی کتاب Krishnamurthi). در واقع برداشتی امروزین از زبان Lisp بر بسترهای برنامه‌پذیر (معرفی مختصری از امکانات برنامه‌سازی تابعی زبان Java ویرایش 8 به بعد و تمرینی عملی بر آن نیز برای علاقه‌مند سازی دانشجویان توصیه می‌شود)
  • طراحی تکاملی یک زبان برنامه نویسی و پیاده‌سازی گام به گام مفسر آن
    • زبان حاوی عبارات محاسباتی (بدون اثر جنبی حافظه‌ای)
    • افزودن رویه‌ها(زیربرنامه‌ها)ی غیربازگشتی و سپس بازگشتی به زبان و مفسر آن
    • افزودن مفاهیم حوزه‌ی تعریف و دامنه اعتبار متغیرها به زبان و مفسر آن
    • افزودن امکان تاثیر بر مقادیر حافظه (وجود متغیر از نوع ارجاع دهنده یا آدرس) به زبان و مفسر آن
    • افزودن مفهوم نوع‌دار بودن متغیرها به زبان و مفسر آن
    • ایجاد امکان تعریف مادول، شی و کلاس (ایجاد امکان برنامه نویسی مادولار و شی گرا) در زبان طراحی شده و پیاده‌سازی مفسر آن.
  • مباحث تکمیلی منتخب
    • معرفی اجمالی برخی زبا‌ن‌های برنامه‌سازی مطرح مانندML و برداشتهای بعدی آن، Haskell، Scala و F#
    • مروری بر نیازمند‌هایی از سایر زمینه‌ها که بر طراحی و پیاده‌سازی زبان‌ها تاثیر می‌گذارند مانند نیازمندی‌های برنامه‌سازی موازی یا هم‌روند، بی‌درنگ بودن، تحت وب بودن و مهندسی نرم‌افزار مولفه‌گرا یا سرویس‌گرا.
  • مقدمه‌ای بر معناشناسی زبان‌های برنامه‌سازی و استدلال مبتنی بر آن
    • معناشناسی عملیاتی
    • معناشناسی ارجاعی
    • معناشناسی اصل موضوعی (منطق هور)

ارزیابی:

  • آزمون نیم ترم (۲۵% کل نمره)
  • آزمون پایان ترم (۴۰% کل نمره)
  • تمرین: شامل ۱( تمرینات برنامه نویسی تابعی ۲) تمرینات گام به گام طراحی مفسر ۳( تمرینات نظری )(۲۰% کل نمره)
  • پروژه ( ۱۵% کل نمره)

منابع و مراجع:

  • [1] P. Friedman, M. Wand. Essentials of Programming Languages. 3rd Edition, MIT Press, 2008
  • [2] Krishnamurthi. Programming Languages: Application and Interpretation. 2nd Edition, 2017.
  • [3] 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

درس: مدارهای منطقی پیشرفته (شماره درس: ۴۰۴۱۲)

Advanced Logic Design

شماره درس: ۴۰۴۱۲

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: مدارهای منطقی

هم‌نیاز: –

اهداف درس:

آشنا کردن دانشجویان با مفاهیم طراحی مدارات همگام (سنکرون) و غیرهمگام (آسنکرون) و مخاطرات زمانی همراه با اشاره به ملاحظات طراحی مدارهای دیجیتال پیشرفته مثل آزمون‌پذیری و توان مصرفی از اهداف درس است.

ریز مواد:

  • مرور مدارهای ترتیبی
  • طراحی مدارهای ترتیبی همگام و ساده‌سازی آن‌ها
  • مدارهای ترتیبی ناهمگام
  • بررسی تاخیرهای زمانی و انواع مخاطره‌ها (Hazards)
  • منطق چند حالته و مختلط
  • ملاحظات طراحی آزمون‌پذیر و کم‌مصرف در طراحی‌های نوین

ارزیابی:

  • تمرین‌های نظری: ۳ نمره
  • آزمون‌های میان‌ترم و پایانی: ۱۵ نمره
  • آزمونک‌ها: ۲ نمره

منابع و مراجع:

  • [1] J. LaMeres. Introduction to logic circuits & logic design with VHDL. 2nd Edition, Springer, 2019
  • [2] Ndjountche. Digital Electronics Vol. 2, Sequential and Arithmetic Logic Circuits. Wiley, 2016
  • [3] H. Roth and L. L. Kinney. Fundamentals of logic design. 7th Edition, Cengage Learning, 2013
  • [4] G. Oklobdzija, V. M. Stojanovic, D. M. Markovic, and N. M. Nedovic. Digital System Clocking: High- Performance and Low-Power Aspects. Wiley, 2003
  • [5] F. Wakerly. Digital Design Principles & Practices. Prentice Hall, 2001
  • [6] M. Mano, Ch. R. Kime, and T. Martin. Logic & Computer Design Fundamentals. 5th Edition, Prentice Hall, 2006
  • [7] علیرضا اجلالی،مدارهای منطقی، چاپ اول، انتشارات نصیر، ۱۳۹۷.

درس: مدیریت پروژه‌های فناوری اطلاعات (شماره درس: ۴۰۴۲۸)

Information Technology Project Management

شماره درس: ۴۰۴۲۸

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: –

هم‌نیاز: –

اهداف درس:

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

علاوه بر این، می‌توان به موارد زیر نیز در هدف درس اشاره کرد:

  • اهمیت مدیریت پروژه در موفقیت پروژه‌های فناوری اطلاعات: تاکید بر نقش کلیدی مدیریت پروژه در موفقیت پروژه‌های فناوری اطلاعات.
  • چالش‌های مدیریت پروژه‌های فناوری اطلاعات: بررسی چالش‌های خاص مدیریت پروژه‌های فناوری اطلاعات مانند مدیریت تغییر، مدیریت ریسک و مدیریت تیم‌های چند رشته‌ای.
  • استانداردهای مدیریت پروژه: معرفی استانداردهای بین‌المللی مدیریت پروژه مانند PMBOK و Agile.

ریز مواد:

  • مقدمات (۲ جلسه)
    • اهداف، برنامه‌ی درسی و توافق بر الگوی تعلیم و چارچوب درس
    • مفاهیم بنیادی مدیریتی
  • مروری بر مدیریت پروژه‌های فناوری اطلاعات (۱ جلسه)
  • موارد کاری (کسب و کاری) (۲ جلسه)
  • بیانیه‌ی پروژه (۲ جلسه)
  • گروه پروژه (۲ جلسه)
  • طرح مدیریت دامنه (۲ جلسه)
  • ساختارشکست کار (۲ جلسه)
  • زمان‌بندی و بودجه‌بندی پروژه‌ها (۲ جلسه)
  • نرم‌افزارهای مدیریت پروژه و وبگاه‌ها و داشبوردها (۱ جلسه)
  • استاندارد بدنه‌های دانشی مدیریت پروژه (۱ جلسه)
  • طرح مدیریت خطر پروژه (۲ جلسه)
  • طرح ارتباطات پروژه (۲ جلسه)
  • طرح کیفیت پروژه‌های فا (۱ جلسه)
  • مدیریت تغییرات، مقاومت‌ها و تعارضات (۲ جلسه)
  • مدیریت تدارک و برون‌سپاری پروژه‌ها (۱ جلسه)
  • رهبری و آداب پروژه (۲ جلسه)
  • طرح پیاده‌سازی و پایان‌دهی و پروژه‌ها (۱ جلسه)
  • مدل بلوغ و تکاملی وروش چابک مدیریت پروژه‌های فناوری اطلاعات (۱ جلسه)

ارزیابی:

  • تمرین‌های مهارتی (در قالب اعمال یک مدیریت شبیه‌سازی‌شده بر یک پروژه اطلاعات): ۶ نمره
  • آزمون‌های میان‌ترم و پایانی: ۱۲ نمره
  • آزمونک‌ها: ۲ نمره

منابع و مراجع:

  • [1] Jack T. Marchewka. Information Technology Project Management. WILEY, 2014

درس: برنامه‌سازی موبایل (شماره درس: ۴۰۴۲۹)

Mobile Programming

شماره درس: ۴۰۴۲۹

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: برنامه‌سازی پیشرفته

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  • مقدمه و برپایی محیط توسعه اندروید (دو جلسه)
    • آشنایی با مفاهیم، ابزارها (Android Studio و Android SDK)، نحوه‌ی خطایابی و آزمون در توسعه‌ی برنامه‌های اندروید، فرایند تولید یک برنامه اندروید
  • واسط کاربری و الگوهای آن (سه جلسه)
    • آشنایی با الگوی MVP، معرفی مولفه‌های واسط کاربری، اصول طراحی و پیاده‌سازی یک واسط کاربری سفارشی (به کمک بسطview و GroupView)، مدیریت واسط کاربری به صورت پویا (dynamic layouts management)، بهترین الگوهای (best practices) طراحی واسط کاربری در اندروید
  • مدیریت داده‌ها و بومی‌سازی (سه جلسه)
    • ذخیره و بازیابی اطلاعات یک برنامه کاربردی در Preference اشتراکی و اختصاصی، ارتباط با پایگاه داده (SQLite database)، مکانیزم‌های پشتیبانی از localization (l10n) و internationalization (i18n)
  • حافظه و ریسمان‌ها (چهار جلسه)
    • چرخه‌ی حیات برنامه اندروید (application life cycle)، مدل حافظه و مدیریت ریسمان‌ها در اندروید، آشنایی با اصول پیاده‌سازی الگو AsyncTask
  • مدیریت سرویس‌ها (چهار جلسه)
    • سرویس‌های مبتنی بر مکان (location-based services)، مدیریت سرویس‌ها و هشدارها (Services, Broadcast receivers and notifications)، مدیریت دوربین، مدیریت سنسورها (sensor manager)، آشنایی با پرداخت درون برنامه‌ای
  • برپایی محیط توسعه iOS (یک جلسه)
    • آشنایی با مفاهیم و ابزارهای توسعه برنامه‌سازی (Xcode)، مروری بر مولفه‌های واسط کاربری و آشنایی با Storyboards، آشنایی با الگوی MVC
  • برنامه‌سازی با Swift (سه جلسه)
    • آشنایی با ساختار زبان، انواع داده‌، کلاس‌ها و اشیا، قلمروها (Scopes)، اختیاری‌ها (Optionals)، داده‌ها و توابع عام (Generics)، آشنایی با پروتکل‌ها (Protocols)، مدیریت خطاها، مروری بر مدیریت حافظه
  • تکنولوژی‌های iOS (هشت جلسه)
    • تکنولوژی‌های واسط کاربری(UIKit، Core Graphics، Core Animation)، تکنولوژی‌های بازی‌سازی (Game Kit، Sprite Kit،OpenGL ES، Game Controller)، تکنولوژی‌های مدیریت داده‌ها (Core Data، Foundation)، مدیریت صدا و تصویر (AV Foundation)
  • امنیت (سه جلسه)
    • آشنایی با مخاطرات امنیتی و استانداردهای تخمین آن (mobile security assessment)، آشنایی با ابزارهای Obfuscation، آشنایی با ابزارهای تحلیل مخاطرات امنیتی (روش‌های مبتنی بر تحلیل ایستا و پویا-static and dynamic analysis tools، روش‌های مهندسی مجدد)

ارزیابی:

  • آزمون‌های میان‌ترم و پایان‌ترم (۱۲ نمره)
  • چهار تمرین (۴ نمره)
  • یک پروژه ‌(۴ نمره)

منابع و مراجع:

  • [1] L. Murphy. The busy coder’s guide to Android development. CommonsWare, 2011
  • [2] Neuburg. iOS 12 Programming Fundamentals with Swift. O’Reilly Media, 2018

درس: مدارهای واسط (شماره درس: ۴۰۴۳۳)

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, Cengage Learning, 2011
  • [2] Gourab Sen Gupta and Subhas Chandra Mukhopadhyay. Embedded Microcontroller Interfacing, Designing Integrated Projects. Springer 2010
  • [3] Stuart R. Ball. Analog Interfacing to Embedded Microprocessor Systems. Elsevier, 2004

درس: تجارت الکترونیکی (شماره درس: ۴۰۴۳۸)

Electronic Commerce

شماره درس: ۴۰۴۳۸

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: –

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  • مقدمات (۲ جلسه)
  • شالوده، ابزار و ساز و کارهای تجارت الکترونیکی (۱ جلسه)
  • خرده فروشی (۲ جلسه)
  • خدمات الکترونیکی (۲ جلسه)
  • کسب و کار متحرک (۲ جلسه)
  • کسب و کار هوشمند (۲ جلسه)
  • کسب و کار اجتماعی (۲ جلسه)
  • بنگاه‌های اجتماعی (۲ جلسه)
  • بازاریابی الکترونیکی (۱ جلسه)
  • تبلیغات و ترویج الکترونیکی (۱ جلسه)
  • امنیت تجارت الکترونیکی (۲ جلسه)
  • سامانه‌های پرداخت الکترونیکی (۱ جلسه)
  • تحقق سفارش الکترونیکی (۱ جلسه)
  • راهبر دهای تجارت الکترونیکی (۲ جلسه)
  • حقوق کسب و کار الکترونیکی (۱ جلسه)
  • اسناد تجارت الکترونیکی (۲ جلسه)
  • تجارت الکترونیکی در جهان (۱ جلسه)
  • تجارت الکترونیکی در ایران (۱ جلسه)

ارزیابی:

  • تمرین‌های نظری و عملی: ۶ نمره
  • آزمون‌های میان ترم و پایان ترم: ۱۲ نمره
  • آزمونک‌ها: ۲ نمره

منابع و مراجع:

  • [1] 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

شماره درس: ۴۰۴۴۸

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: مدیریت پروژه‌های فناوری اطلاعات

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  1. مقدمات (۲ جلسه)
    • اهداف، برنامه درسی و توافق بر الگوی تعلیم و چارچوب درس.
    • واژه‌شناسی مدیریت و برنامه‌ریزی راهبردی.
  2. نمای ۳۶۰ درجه‌ی برنامه‌ریزی راهبردی سنتی (۴ جلسه)
  3. IFE + EFE + SPACE + SWOT + QSPM (۲جلسه)
  4. تدوین مدل–پایه برنامه‌ی راهبردی سازمان (۲ جلسه)
  5. انواع مطالعات راهبردی سازمان از کسب و کار تا فناوری (۲ جلسه)
  6. معماری اطلاعات سازمان برای مدیران (۳ جلسه)
  7. برنامه‌ریزی راهبردی فناوری اطلاعات (۲ جلسه)
  8. معماری سازمان هانشکه (۲ جلسه)
  9. مدیریت منظره‌ی فای هانشکه (۲ جلسه)
  10. استانداردهای فنی معماری سازمان هانشکه (۲ جلسه)
  11. مدل‌های مرجع، سیاست‌نامه، بیانیه‌ی تغییر (۱ جلسه)
  12. مروری بر روشگان‌های معماری سازمان (۱ جلسه)
  13. برنامه‌ریزی راهبردی فناوری اطلاعات کونیگزبرگ (۱ جلسه)
  14. معماری سازمانی در ایران–پیشینه و مدل ملی (۱ جلسه)
  15. مدلهای بلوغ معماری سازمانی (۱ جلسه)
  16. از حاکمیت داده تا حاکمیت معماری سازمانی تا تحول رقمی (شامل مروری بر آی.تی.آی.ال و کوبیت) (۲ جلسه)

ارزیابی:

  • آزمون‌های میان‌ترم و پایانی: ۱۲ نمره
  • آزمونک‌ها: ۶ نمره
  • مطالعه‌ی انفرادی آخرین فناوری‌ها: ۲ نمره

منابع و مراجع:

  • [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] Boolos, J. Burgess, and R. Jeffrey. Computability and Logic. 5th Edition, Cambridge University Press, 2007
  • [2] Kozen. Theory of Computation. Springer, 2006
  • [3] Hedman. A First Course in Logic: An introduction to model theory, proof theory, computability, and complexity. Oxford University Press, 2004
  • [4] Sipser. Introduction to the Theory of Computation. 2nd Edition, Thompson Co., 2006

درس: نظریه بازی‌ها (شماره درس: ۴۰۴۵۶)

Game Theory

شماره درس: ۴۰۴۵۶

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: ساختمان داده‌ها و الگوریتم‌ها، آمار و احتمال مهندسی

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  • بازی‌های فرم نرمال (Normal Form Games) (‌۴ جلسه)
    • رفتار منطقی (Rational Behavior) و تابع سودمندی (Utility Function) ‌
    • تعریف بازی‌های فرم نرمال
    • نقطه تعادل نش (Nash Equilibrium) ساده و ترکیبی
    • مثال‌های متنوعی از بازی‌های فرم نرمال کلاسیک
    • روش‌های محاسبه نقاط تعادل در بازی‌های فرم نرمال ساده
  • بازی‌های فرم گسترده (Extensive Form Game) (‌۲ جلسه)
    • تعریف بازی‌های فرم گسترده
    • تعادل زیربازی کامل (Subgame Perfect Equilibrium)
    • مثال‌های متنوعی از بازی‌های فرم گسترده کلاسیک
    • روش‌های محاسبه‌ی نقاط تعادل در بازی‌های فرم گسترده ساده
  • نظریه بازی‌های تکاملی (Evolutionary Game Theory) (‌۲ جلسه)
    • استراتژی‌های تکاملی پایدار
    • ارتباط با تعادل‌های نش
    • استراتژی‌های تکاملی پایدار ترکیبی
  • پارادوکس برائس (Braess Paradox) مدل‌سازی ترافیک شبکه‌ها با استفاده از نظریه بازی‌ها (۱ جلسه)
    • مدل‌سازی نظریه بازی‌های ترافیک
    • ترافیک نقطه‌ی تعادل
    • پارادوکس برائس
  • بازار‌های تطابق (Matching Markets) (‌۲ جلسه) ‌
    • گراف‌های دوبخشی
    • تطابق کامل
    • قیمت‌های پاک‌کننده بازار
    • ارتباط با مزایده‌ها
  • مدل‌سازی قدرت و چانه‌زنی (‌Bargaining) (‌۲ جلسه)
    • مدل‌سازی ارتباط دو انسان (راه‌کار چانه‌زنی نش، بازی نهایی)
    • مدل‌سازی تبادل بین دو انسان (خروجی‌های پایدار، خروجی‌های متوازن)
  • طراحی مکانیزم مزایده‌های ساده (۵ جلسه)
    • تعریف مزایده و مدل‌سازی مبتنی بر نظریه بازی‌ها
    • اقسام مزایده‌ها و ارتباط آن‌ها با یکدیگر حداقل شامل مزایده آلمانی، ژاپنی، انگلیسی، اولین قیمت (First Price Auction) و دومین قیمت (Second Price Auction)
    • تحلیل مزایده دومین قیمت
    • مقدمه‌ای بر VCG و مزایده‌های جست‌وجوی حمایت‌شده (Sponsored Search Auctions)
  • مدل‌های تجارت شبکه‌ای ساده همراه با واسط (۲ جلسه)
    • قیمت‌گذاری در بازار
    • مدل‌سازی تجارت بر روی شبکه‌های واسط‌دار با استفاده از نظریه بازی‌ها
    • نقاط تعادل و ارتباط با مزایده‌ها
  • مدل‌سازی سیگنال‌های ارتباطی و آبشارهای اطلاعاتی (۳ جلسه)
    • بازی‌های سیگنالی (Signaling Game)
    • تئوری سخن-عمل (speech-act)
    • قانون بیز و تصمیم‌گیری در شرایط عدم اطمینان
    • اعمال گله‌ای (Herding)
    • آبشارهای اطلاعاتی
  • تحلیل بازار، تاثیرات شبکه‌ای (Network Effects) و بیگانگی‌ها (Externalities) (‌۲ جلسه)
    • تحلیل بازار بدون در نظر گرفتن تاثیرات شبکه‌ای
    • تحلیل بازار با در نظر گرفتن تاثیرات شبکه‌ای
    • دید پویا به بازارها و نقاط پایدار و ناپایدار
    • بیگانگی‌های مثبت و منفی
  • انتخاب جمعی (Social Choice) و مکانیزم‌های رای‌گیری (۲ جلسه)
    • تعریف انتخاب جمعی و مکانیزم‌های رای‌گیری
    • آشنایی با مکانیزم‌های رای‌گیری معروف
    • قضیه عدم امکان ارو (Arrow’s Impossibility Theorem) ‌
  • ارزش دارایی‌ها و دارایی‌های معنوی (۲ جلسه)
    • بیگانگی‌ها و قضیه کوز (Coase Theorem)
    • تراژدی اشتراکات
    • دارایی معنوی
  • مقدمه‌ای بر بازی‌های ائتلافی (Coalitional Game Theory) (‌۱ جلسه)
    • تعریف بازی‌های ائتلافی
    • مفهوم هسته
    • حل چند نمونه بازی‌های ائتلافی کلاسیک
    • مقدار شپلی (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 International, 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 Performance in The digital Economy. 8th Edition, WILEY, 2011
  • [2] Efraim Turban, Dorothy Leidner, Ephraim Mclean and James Wetherbe. Information Technology for Management, Transforming Organizations in the Digital Economy. 5th Edition, John Wiley & Sons Inc, 2006
  • [3] 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] W. Martin and C. V. Brown. Managing Information Technology. 5th Edilion, Prentice Hall, 2004
  • [6] D. Willett. Information Assurance Architecture. CRC, 2008
  • [7] H. Davenport and Laurence Prusak. Information Ecology : Mastering the Information and Knowledge 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 تعریف شده و به‌تدریج در طول نیم‌سال انجام شده و تحویل داده می‌شوند (۴۰ درصد نمره).

منابع و مراجع:

درس: مهندسی کاربرد (شماره درس: ۴۰۴۷۸)

Application Engineering

شماره درس: ۴۰۴۷۸

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: –

هم‌نیاز: تحلیل و طراحی سیستم‌ها

اهداف درس:

هدف این درس ایجاد یک درک جامع از چرخه حیات توسعه سیستم‌های اطلاعاتی در سازمان‌های بزرگ و پیچیده است. دانشجویان با گذراندن این درس از دروس رشته کامپیوتر قادر خواهند بود تا با مفاهیم مختلفی مانند معماری سیستم‌های اطلاعاتی، انتخاب فناوری مناسب، مدیریت پروژه و پیاده‌سازی سیستم‌های اطلاعاتی آشنا شوند. همچنین، دانشجویان با چالش‌های موجود در ارتقاء و نگهداری سیستم‌های اطلاعاتی موجود آشنا خواهند شد.

ریز مواد:

  • مقدمه (۳ جلسه)
    • آشنایی با استراتژی‌های سازمانی
    • آشنایی با سیستم‌های رایج در حوزه کسب و کار
    • آشنایی با سازمان‌ها و سیستم‌های توزیع‌شده
  • آشنایی با سیستم‌های کاربردی (۷ جلسه)
    • تعریف سیستم‌های کاربردی
    • آشنایی با سیستم‌های کاربردی رایج نظیر ERP, CRM, Portal
    • نحوه‌ی ارتباط سیستم‌های کاربردی با استراتژی های سازمانی
    • مدلسازی فرایندهای سازمانی
    • نحوه‌ی شناسایی سیستم‌های کاربردی بر اساس فرایندهای سازمانی
    • متدولوژی شناسایی سیستم‌های کاربردی
  • معماری (۷ جلسه)
    • معماری نرم‌افزار
    • معماری داده‌ها
    • معماری راه‌حل
  • یکپارچه‌سازی سیستم‌ها (۸ جلسه)
    • نحوه مواجهه با سیستم‌های قدیمی موجود در سازمان
    • نحوه یکپارچه‌سازی سیستم‌ها با هم (یا با سیستم‌های قدیمی)
    • انباره داده‌ها و استفاده از آن جهت یکپارچه‌سازی
    • استراتژی‌های تعویض یا بازسازی سیستم‌های قدیمی
    • الگوهای مهندسی مجدد
  • میان‌افزارها و تکنولوژی‌های نوین جهت تعامل سیستم‌ها با هم (۵ جلسه)
    • معماری سرویس‌گرا
    • وب سرویس، CORBA، J2EE و …
    • مدیریت تراکنش‌های توزیع‌شده
    • تبادل پیام به‌صورت غیرهمگام

ارزیابی:

  • تمرین‌های نظری‌و عملی: ۳ نمره
  • آزمون‌‌های میان‌ترم و پایانی: ۱۵ نمره
  • آزمونک‌ها: ۲ نمره

منابع و مراجع:

  • [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) در سیستم‌سی و کاربردهای آن‌ها
    • داده‌گونه‌ها (Data Types) در سیستم‌سی، منطق دوحالته، منطق چهار حالته، داده‌گونه‌ها برای عملیات محاسباتی، داده‌گونه‌ها برای عملیات بیتی
    • Complex data types، نحوه تعریف و استفاده از struct برای سیگنال‌ها و پورت‌ها
    • روش‌های پیاده‌سازی مدارهای ترکیبی و ترتیبی با سیستم‌سی، استفاده از انواع مختلف پروسس برای این کار و تفاوت‌های آن‌ها
    • ماشین‌حالت و انواع میلی و مور آن، روشهای پیاده‌سازی ماشین حالت با سیستم‌سی، توصیف ضمنی ماشین حالت، توصیف صریح ماشین حالت
    • سنتز مدل‌های سیستم‌سی، سنتز مدارهای ترکیبی، نکات مهم برای تولید مدار موردنظر، جلوگیری از تولید Latch، سنتز مدارهای ترتیبی و سبک توصیه شده برای این کار
    • مدل Finite State Machine with Datapath (FSMD) و اهمیت آن، نحوه‌ی پیاده‌سازی این مدل با سیستم‌سی
  • زبان 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] Navabi. VHDL: Analysis and Modeling of Digital Systems. McGraw Hill, 1998
  • [5] L. Perry. VHDL: Programming by examples. McGraw Hill, 2002

درس: مقدمه‌ای بر بیوانفورماتیک (شماره درس: ۴۰۴۹۴)

Introduction to Bioinformatics

شماره درس: ۴۰۴۹۴

تعداد واحد: ۳

مقطع: کارشناسی

نوع درس: نظری

پیش‌نیاز: ساختمان داده‌ها و الگوریتم‌ها، آمار و احتمال مهندسی

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  • مقدمه
    • ضرورت یادگیری بیوانفورماتیک
    • کاربردهای بیوانفورماتیک در پژوهش‌های زیست‌شناسی و پزشکی
  • ضروریات زیست‌شناسی سلولی و مولکولی
    • اجزای سلول
    • ساختار 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

درس: آزمون نرم‌افزار (شماره درس: ۴۰۸۲۸)

Software Testing

شماره درس: ۴۰۸۲۸

تعداد واحد: ۳

مقطع: کارشناسی ارشد

نوع درس: نظری

پیش‌نیاز: تحلیل و طراحی سیستم‌ها

هم‌نیاز: –

اهداف درس:

هدف این درس آموزش روش‌های پیشرفته تولید داده‌های آزمایشی برای نرم‌افزارها است. دانشجویان با گذراندن این درس قادر خواهند تا با استفاده از تکنیک‌های مدل‌سازی و ابزارهای خودکارسازی، داده‌های آزمایشی با کیفیت و پوشش بالا تولید کنند و به این ترتیب، فرایند تست نرم‌افزار را بهبود بخشند و اطمینان از کیفیت نرم‌افزار تولید شده را افزایش دهند.

ریز مواد:

  • مقدمه (۲ جلسه)
  • آزمون مدل‌رانه (۲ جلسه)
  • آزمون خودکار (۲ جلسه)
  • آزمون چابک (۲ جلسه)
  • معیارهای پوشش (۲ جلسه)
  • افراز فضای ورودی (۴ جلسه)
  • پوشش گراف (۴ جلسه)
  • پوشش منطق (۴ جلسه)
  • آزمون مبتنی بر نحو (۴ جلسه)
  • ملاحظات عملی (۲ جلسه)
  • ساخت ابزار آزمون (۲ جلسه)

ارزیابی:

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

منابع و مراجع:

  • [1] Ammann and J. Offutt. Introduction to Software Testing. Cambridge University Press, 2017

درس: آز سخت‌افزار (شماره درس: ۴۰۱۰۲)

Hardware Lab

شماره درس: ۴۰۱۰۲

تعداد واحد: ۱

مقطع: کارشناسی

نوع درس: عملی

پیش‌نیاز: آز معماری کامپیوتر

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  1. پیاده‌سازی یک سیستم نمونه‌برداری علائم حیاتی و نظارت بیمار با گوشی تلفن همراه
  2. طراحی و شبیه‌سازی یک سامانه‌ی کنترل ترافیک
  3. پیاده‌سازی یک سامانه‌ی کنترل ورود و خروج بر اساس اثر انگشت/کارت RFID
  4. طراحی سامانه‌ی جایابی خودروها و اعلام وضعیت محل‌های پارک در پارکینگ به کمک دوربین/حسگرهای مجاورت/حسگرهای نوری …
  5. تشخیص مطابقت ظاهری بدنه‌ی خودروهای وارد شده به پارکینگ با هنگام خروج آن‌ها از جهت عدم آسیب‌دیدگی در طول مدت توقف با استفاده از چهار دوربین
  6. پیاده‌سازی دست‌کم یک کاربرد مبتنی بر اینترنت اشیا و یا سامانه‌های سایبرفیزیکی (Cyber Physical Systems) به کمک حسگرها/محرک‌ها/بوردهای در دسترس امروزی
  7. پیاده‌سازی عملی دست‌کم یک آزمایش «سخت‌افزار در حلقه» (Hardware in the loop) برای یک کاربرد پردازش سیگنال یا مشابه و ترجیحاً به کمک نرم‌افزار Simulink/Matlab

منابع و مراجع:

  • [1] A. Mazidi, Sh. Chen, and E. Ghaemi. Atmel ARM programming for embedded systems. MicroDigitalEd, Vol 5, 2017
  • [2] A. Mazidi, Se. Naimi, and Sa. Naimi. AVR Microcontroller and Embedded Systems: Using Assembly and C. MicroDigitalEd, 2017
  • [3] H. Chu and D. D. Lu. Project-based lab learning teaching for power electronics and drives. IEEE Transactions on Education. Vol. 51, No.1, pp. 108-113, 2008
  • [4] Ma and J.V. Nickerson. Hands-on, simulated, and remote laboratories: A comparative literature review. ACM Computing Surveys. Vol. 38, No. 3, 2006

درس: آز اتوماسیون صنعتی (شماره درس: ۴۰۴۰۱)

Industrial Automation Lab

شماره درس: ۴۰۴۰۱

تعداد واحد: ۱

مقطع: کارشناسی

نوع درس: عملی

پیش‌نیاز: اندازه‌گیری و کنترل کامپیوتری

هم‌نیاز: –

اهداف درس:

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

ریز مواد:

  1. محرک‌ها (Actuators) مثل انواع موتور، سرووموتور و درایورها، شیر و دریچه‌های لوله (Valve)، و انواع رله و کلیدهای قطع و وصل
  2. آموزش چگونگی نصب و راه‌اندازی نرم‌افزار LabView و آشنایی با محیط کار آن
  3. ساخت و آزمایش یک TCP Connection در محیط LabView
  4. طراحی و پیاده‌سازی یک آسانسور سه طبقه در محیط LabView
  5. آشنایی با نرم‌افزار LogoSoft
  6. آشنایی با یک یا چند دستگاه کنترلر صنعتی برنامه‌پذیر (PLC: Programmable Logic Controller) پراستفاده در صنعت و زبان نردبانی (Ladder) و همین‌طور بوردهای واسط ورودی/خروجی آنالوگ، دیجیتال مبتنی بر کامپیوتر‌های PC صنعتی
  7. پیاده‌سازی چراغ راهنمایی چهار زمانه به کمک تابلوی آموزشی چراغ راهنمایی و پیاده‌سازی آن بر روی تابلوی PLC
  8. طراحی سیستم همزن مخازن به کمک تابلوی آموزشی و پیاده سازی آن بر روی تابلوی PLC
  9. طراحی و پیاده‌سازی سیستم آسانسور در محیط نرم‌افزار LogoSoft
  10. آشنایی با برنامه‌نویسی سطح بالاتر اتوماسیون به زبان یا با الگوی Step 7 یا Grafcet

منابع و مراجع:

  • [1] Dunning. Introduction to Programmable Logic Controller. 3rd Edition, Thompson, 2017
  • [2] D. Petruzella. Programmable Logic controllers. McGraw-Hill Education, 5th Edition, 2016
  • [3] 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] D. Rosandich. Fundamentals of Ladder diagram programming. EC & M Books, 1999
  • [5] Ravis and J. Kring. LabVIEW for Everyone: Graphical Programming Made Easy and Fun. 3rd Edition, Prentice Hall, 2006

درس: آز  VLSI (شماره درس: ۴۰۴۰۲)

VLSI Lab

شماره درس: ۴۰۴۰۲

تعداد واحد: ۱

مقطع: کارشناسی

نوع درس: عملی

پیش‌نیاز: –

هم‌نیاز: طراحی VLSI

اهداف درس:

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

ریز مواد:

  1. پیاده‌سازی وارونگر و تحلیل خصوصیات مداری آن
  2. طراحی و شبیه‌سازی یک شمارنده‌ی ۴ بیتی با استفاده از HSpice
  3. پیاده‌سازی گیت NOR3 در سه منطق Static CMOS، Pseudo-NMOS و Domino Logic و بررسی آن‌ها
  4. تعیین اندازه‌ی گیت‌ها برای بهینه کردن سرعت یک مسیر
  5. طراحی یک گیت با استفاده از ابزار رسم جانمایی و درستی‌یابی آن
  6. آشنایی با ابزار سنتز Design Compiler و سنتز یک ضرب‌کننده‌ی ۱۶ بیتی برای بهینه کردن سرعت و مساحت
  7. محاسبه‌ی توان مصرفی مدار با استفاده از ابزار Power Compiler و اعمال روش Clock Gating و مقایسه‌ی توان مصرفی با توان مصرفی پیشین
  8. آشنایی با ابزار طراحی جانمایی (layout) خودکار SOC Encounter و طراحی جانمایی یک مدار ترتیبی ساده
  9. طراحی جانمایی مدار
  10. طراحی خودکار جانمایی مدار ضرب‌کننده‌ی ۱۶ بیتی و درستی‌یابی عملکرد آن توسط 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
    • معرفی بو‌های بد در کد (Bad Smells)
      • منبع: فصل ۳ کتاب Refactoring نوشته Martin Fowler
  • آزمون (قسمت ۱):  Unit Testing
    • مفاهیم Unit Testing
    • معرفی کلی چارچوب‌های موجود در این زمینه برای زبان‌ها و محیط‌های برنامه‌سازی مختلف
    • معرفی کامل JUnit و ابزار جانبی مرتبط با آن و پشتیبانی‌های IDEها از آن
    • ارائه‌ی یک مثال از نحوه‌ی استفاده از JUnit و اجرای آن
  • آزمون (قسمت ۲):  ISP and PPC Testing Techniques
    • Input Space Partitioning
    • Graph Based Prime Path Coverage (Based on Source Code)
  • جلسه‌ی پایانی و جمع‌بندی
    • ارائه‌های اختیاری
      • ابزارهای مدیریت پیکربندی نرم‌افزار (Software Configuration Management Tools)
      • ابزارهای ارزیابی پوشش آزمون به همراه ارائه‌ی یک مثال عملی (Test Coverage Tools)

نحوه‌ی اداره‌ی آزمایشگاه:

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

جزئیات کار جلسات آزمایشگاه:

  • ارائه‌ها:
    • با توجه به پنج حوزه‌ی اصلی مهندسی نرم‌افزار پوشش داده شده در آزمایشگاه، هر هفته یک گروه می‌بایست مفاهیم و ابزار مرتبط با آن مبحث را در مدت حدود ۴۰ دقیقه ارائه نماید.
    • گروه‌های دو و سه نفره، یک ارائه خواهند داشت. گروه‌های چهار نفره ممکن است دو بار ارائه داشته باشند که این موضوع براساس نظر TA تعیین می‌شود.
    • ارائه‌های هر گروه توسط TA ارزیابی شده و نمره‌ی آن مربوط به کل گروه ارائه دهنده خواهد بود.
    • در برخی مباحث که دانشجویان ممکن است آشنایی کمتری با مباحث مورد نظر داشت باشند، مانند موضوع آزمون نرم‌افزار، بخشی از ارائه توسط TA انجام می‌پذیرد.
    • مباحثی که در هر ارائه می‌بایست پوشش داده شود عبارتند از:
      • بیان مفاهیم موضوع مورد ارائه از نظر تئوری
      • نمودار‌های مرتبط UML و مباحث مربوط به آن
      • الگو‌ها و نمونه‌های موفق مرتبط با موضوع (مثلا الگو‌های تحلیل، طراحی، معماری و …)
      • معیار‌های اندازه‌گیری و ارزیابی کار‌ها و چگونگی تشخیص کار قوی و ضعیف
      • بو‌های بد و پاد‌الگو‌ها
      • ابزار مرتبط برای انجام کار، قابلیت‌ها و چگونگی عملکرد
        • مثلاً ابزار مدل‌سازی، ابزار تولید کد، ابزار آزمون، …
        • ابزار معرفی‌شده می‌بایست برای دانشجویان قابل دسترسی و استفاده باشد.
    • اسلاید‌ها و نام و لینک منابع مرتبط، می‌بایست توسط گروه ارائه دهنده، تا ۲۴ ساعت بعد از ارائه برای همه اعضای کلاس به صورت ایمیل ارسال گردد.
    • اسلاید‌ها، منابع و ابزار ارائه شده توسط هر گروه، می‌بایست در قالب CD در همان جلسه ارائه، به TA درس داده شود.
  • چگونگی انجام کار گروهی آزمایشگاه
    • نحوه گروه بندی و اختصاص پروژه‌ها
      • حتی‌الامکان کلاس به گروه‌های حداکثر ۴ نفره تقسیم می‌شود.
      • همه افراد، پروژه‌های درس تحلیل و طراحی (SAD) یا طراحی شی‌گرا (OOD) با همه جزئیات و مستندات وپیاده سازی را ارسال می‌کنند.
      • پروژه‌هایی که برای انجام کارگروهی مورد نظر مناسب باشند، توسط TA انتخاب شده و به گروه‌ها تخصیص داده می‌شود.
      • به هر گروه یک پروژه (حتی المقدور پروژه یکی از اعضای همان گروه) تخصیص داده می‌شود که کار خود را تا پایان ترم برروی آن پروژه و مستندات آن انجام خواهند داد.
      • سعی می‌شود در مجموع، دو صورت مسئله (با پیاده‌سازی‌های متفاوت) به عنوان پروژه‌های گروه‌ها انتخاب شود تا از پراکندگی تعاریف مسئله جلوگیری شود.
      • تخصیص پروژه‌ها حداکثر تا پایان جلسه اول کلاس انجام می‌پذیرد.
    • کار گروهی در کلاس
      • هر جلسه‌ی کلاس، به یک موضوع از مباحث مهندسی نرم‌افزار اختصاص دارد که ارائه نیز در همان موضوع انجام شده است.
      • کار گروهی هر جلسه‌ی آزمایشگاه، مرور کار انجام شده قبلی گروه (از مستندات پروژه تخصیص داده شده به هر گروه)، ارزیابی نقاط قوت و ضعف آن و بازبینی و اصلاح آن است.
      • به عنوان مثال، در جلسه مربوط به طراحی، مستندات طراحی قبلی مرور شده و با توجه به دانش دانشجویان و ارائه انجام شده و معیار‌های ارزیابی و …، نقطا قوت و ضعف آن طراحی استخراج شده و در تعامل گروهی، آن را اصلاح می‌نمایند و مدل طراحی جدیدی توسط گروه ارائه می‌شود.
      • این کار بین ۳۰ دقیقه تا یک ساعت می‌تواند به طول بیانجامد.
      • در زمان انجام کار گروهی، هر گروه می‌تواند یک notebook داشته باشد و از آن استفاده نماید.
      • پس از پایان کار گروهی یا پایان ساعت آزمایشگاه، پیش‌نویسی از کار گروهی انجام شده حاوی نتیجه کار (مدل جدید)، عناوین معیار‌ها و الگو‌های مورد استفاده و نقاط قوت مدل جدید نسبت به قبلی (فقط عناوین آن) به TA ارائه می‌گردد.
      • این پیش‌نویس در پایان کلاس می‌بایست به TA ارائه گردد که می‌تواند به صورت فایل الکترونیکی و یا کاغذ دستنویس باشد.
      • در صورت نیاز، TA می‌تواند یک کپی از این کاغذ پیش‌نویس را در اختیار تیم قرار دهد (برای انجام گزارش کار آزمایشگاه)
      • نتیجه‌ی کار کلاس و پیش‌نویس تهیه شده، توسط TA ارزیابی خواهد شد و بخش مهمی از نمره آن کلاس را تشکیل می‌دهد.
  • تهیه‌ی گزارش کار آزمایشگاه
    • هر گروه تا هفته آینده، فرصت دارد کار گروهی انجام شده در کلاس خود را تکمیل نماید و نواقص احتمالی آن را برطرف کرده و نتیجه‌ی ‌نهایی کار خود را در قالب یک گزارش کار آزمایشگاه ارائه دهد.
    • گزارش کار آزمایشگاه می‌بایست مطالب زیر را شامل شود:
      • مدل قبلی (کار اولیه مطابق مستندات پروژه تخصیص داده شده به هر گروه)
      • مدل (کار) جدید (پس از بازنگری)
      • روش انجام کار: معیار‌ها، الگو‌های مورد استفاده، روش کار گروهی، ابزار مورد استفاده
      • نقاط ضعف مدل قبلی
      • نقاط قوت مدل جدید
      • نقاط ضعف احتمالی مدل جدید (در tradeoff)
      • راه‌حل‌های جایگزین (احتمالی)
    • گزارش‌های کار می‌بایست در قالب گزارش علمی باشد، فصل‌بندی مناسب داشته باشد، به زبان فارسی باشد و از فونت ۱۲ در کاغذ A۴ برای تهیه آن استفاده شده باشد.
    • گزارش کار آزمایشگاه، توسط TA ارزیابی می‌شود.
    • گزارش کار آزمایشگاه، توسط دانشجویان نیز در ابتدای جلسهٔ بعد، ارزیابی می‌شود.
    • از آنجا که گزارش کار هر گروه می‌بایست در جلسهٔ بعد توسط اعضای گروه‌های دیگر ارزیابی شود و این ارزیابی فردی (تک نفره) خواهد بود، هر گروه می‌بایست گزارش کار آزمایشگاه خود را حداکثر تا ساعت ۲۴ دو روز قبل از برگزاری جلسه‌ی بعد، به همه اعضای کلاس خود و TA به صورت ایمیل ارسال نماید. موارد استثناء از طرف TA اعلام خواهد شد.
      • به عنوان مثال، دانشجویانی که چهارشنبه ظهر کلاس دارند، گزارش کار خود را می‌بایست تا دوشنبه شب ارسال نمایند.
    • گروه‌هایی که به هر دلیل موفق به ارسال گزارش خود تا زمان مقرر نشوند، می‌بایست ۸ عدد کپی از گزارش کار کامل خود را به صورت پرینت‌شده به کلاس بیاورند. در غیر این‌صورت، نمره‌ی گزارش کار را از دست خواهند داد.
  • فعالیت ارزیابی کار سایر گروه‌ها در کلاس
    • در ۲۰ دقیقه ابتدای هر جلسه، هر فرد می‌بایست گزارش کار تهیه شده توسط دو گروه دیگر (غیر از گروه خودش) را ارزیابی نماید.
    • این ارزیابی براساس معیارهایی که دانشجو در جلسه قبل، انجام کار گروهی و طول هفته گذشته آموخته است، انجام می‌پذیرد.
    • این که هر فرد، کار کدام گروه‌ها را می‌بایست ارزیابی نماید، حداکثر تا ۴۸ قبل از تشکیل کلاس، از طریق ایمیل، به اطلاع هر فرد خواهد رسید.
    • هر فرد در صورت تمایل، می‌تواند قبل از تشکیل کلاس، فعالیت ارزیابی خود را انجام داده و نتیجه آن را به کلاس بیاورد. البته این کار در صورتی امکان‌پذیر است که گروه‌های مربوطه، گزارش خود را در مهلت مقرر ارسال کرده باشند.
    • ارزیابی تنها در ۲۰ دقیقه‌ی اول کلاس و براساس مستندات مکتوب (گزارش کار) انجام می‌پذیرد و پس از آن، نتیجه‌ی ارزیابی از کسی پذیرفته نخواهد شد. لذا اعضای کلاس می‌بایست از ابتدای کلاس حضور داشته باشند.
    • ارزیابی هر فرد، دانش وی در موضوع مورد ارزیابی را نشان می‌دهد. بنابراین ارزیابی هر فرد، توسط TA کلاس ارزیابی خواهد شد و بخشی از نمره‌ی آن جلسه را به خود اختصاص خواهد داد.
    • نتایج ارزیابی‌ها، در نمره‌ی گزارش کار مورد ارزیابی نیز موثر خواهد بود.
    • در زمان ارزیابی، همه‌ی اعضای کلاس در صورت تمایل می‌توانند از کامپیوتر شخصی خود استفاده نمایند.
    • مشورت در زمان ارزیابی، مجاز‌ می‌باشد.
    • پس از ۲۰ دقیقه ابتدائی کلاس، هر گروه ۱۰ دقیقه فرصت خواهد داشت تا کار خود را به طور مختصر ارائه داده و از کار خود در برابر انتقادات مطرح شده توسط سایر دانشجویان، دفاع نماید.

منابع و مراجع:

  • [1] Fowler. Analysis Patterns: Reusable Object Models. Addison-Wesley, 1996
  • [2] Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999
  • [3] Fowler. UML Distilled. 3rd Edition, Addison-Wesley, 2004
  • [4] Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995
  • [5] Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. 3rd Edition, Prentice Hall, 2004

مشاوره کنکور ارشد کامپیوتر

سوالات متداول

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

هر دو مسیر، هنرستان و دبیرستان، می‌توانند شما را به دنیای کامپیوتر وارد کنند، اما با رویکردها و سرعت‌های متفاوت.

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

انتخاب بین این دو مسیر بستگی به اهداف بلندمدت شما، علاقه‌مندی‌هایتان و توانایی‌هایتان دارد.

برای رسیدن به بالاترین سطح در رشته کامپیوتر، علاوه بر تحصیلات آکادمیک، نیاز به تلاش مستمر، یادگیری مداوم و به‌روز بودن با تکنولوژی‌های جدید دارید.

  • تحصیلات آکادمیک: تحصیل در رشته کامپیوتر در دانشگاه‌های معتبر و ادامه تحصیل در مقاطع بالاتر (کارشناسی ارشد و دکتری) می‌تواند به شما دانش و مهارت‌های لازم را بدهد.
  • مهارت‌های عملی: شرکت در پروژه‌های مختلف، کارآموزی و کسب تجربه عملی در کنار تحصیل بسیار مهم است.
  • یادگیری مستمر: دنیای فناوری به سرعت در حال تغییر است، بنابراین باید همیشه به دنبال یادگیری تکنولوژی‌های جدید باشید.
  • شبکه‌سازی: ارتباط با افراد فعال در حوزه کامپیوتر و شرکت در رویدادهای مرتبط می‌تواند به شما کمک کند تا فرصت‌های شغلی بهتری پیدا کنید.

دروس رشته کامپیوتر به پنج گروه اصلی تقسیم می‌شود:

  1. دروس عمومی: دروسی هستند که همه دانشجویان باید بگذرانند، مانند ریاضی، فیزیک و زبان انگلیسی.
  2. دروس پایه: این دروس مبانی علوم کامپیوتر را آموزش می‌دهند و شامل مباحثی مانند ساختمان داده‌ها، الگوریتم‌ها و منطق دیجیتال می‌شود.
  3. دروس اصلی: دروس تخصصی‌تر رشته کامپیوتر هستند و به شاخه‌های مختلف این رشته مانند نرم‌افزار، سخت‌افزار و هوش مصنوعی می‌پردازند.
  4. دروس تخصصی: این دروس به دانشجویان اجازه می‌دهد تا در یک حوزه خاص از کامپیوتر تخصص پیدا کنند، مانند شبکه‌های کامپیوتری، امنیت اطلاعات یا گرافیک کامپیوتری.
  5. دروس اختیاری: دروسی هستند که دانشجویان بر اساس علاقه و نیاز خود انتخاب می‌کنند و به آن‌ها اجازه می‌دهد تا دانش خود را در یک زمینه خاص گسترش دهند.

برای فارغ‌التحصیلی در رشته مهندسی کامپیوتر، دانشجویان باید مجموعاً 140 واحد درسی را بگذرانند. این واحدها به دسته‌های زیر تقسیم می‌شوند:

  • دروس عمومی: 22 واحد (مانند ریاضی، فیزیک، زبان انگلیسی و ..)
  • دروس پایه: 19 واحد (مبانی علوم کامپیوتر مانند ساختمان داده‌ها، الگوریتم‌ها و ..)
  • دروس تخصصی: 67 واحد (دروس اصلی رشته کامپیوتر مانند برنامه‌نویسی، سیستم عامل، پایگاه داده و ..)
  • دروس اختیاری: 29 واحد (دروس تخصصی‌تر و انتخابی دانشجو مانند هوش مصنوعی، امنیت سایبری و ..)
  • پروژه و کارآموزی: 6 واحد (اجرای پروژه عملی و گذراندن دوره کارآموزی)

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

همچنین هر گونه سوالی در مورد کلاس‌های آنلاین و آفلاین کنکور کامپیوتر ، آی تی و علوم کامپیوتر در مقاطع ارشد و دکتری و یا رزرو مشاوره تک جلسه‌ای حضوری یا تلفنی با استاد خلیلی فر دارید می‌توانید به روش‌های زیر از تیم پشتیبانی بابان بپرسید:

آی دی تلگرام تیم پشتیبانی بابان:  Baban_Support@

تلفن موسسه بابان:  02177973459

در شبکه های اجتماعی به اشتراک بگذارید

جدیدترین محصولات
قیمت اصلی: ۱,۴۰۰,۰۰۰ تومان بود.قیمت فعلی: ۷۰۰,۰۰۰ تومان.
قیمت اصلی: ۱,۴۰۰,۰۰۰ تومان بود.قیمت فعلی: ۷۰۰,۰۰۰ تومان.
قیمت اصلی: ۱,۴۰۰,۰۰۰ تومان بود.قیمت فعلی: ۷۰۰,۰۰۰ تومان.
نقد و بررسی
0 0 رای ها
امتیاز کل
guest
0 نظرات
بیشترین رأی
تازه‌ترین قدیمی‌ترین
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
0
افکار شما را دوست داریم، لطفا نظر دهید.x