برنامه درسی

لیست برنامه های درسی

عنوان نظریه زبان ها و ماشین ها
مقطع تحصیلی کارشناسی
مکان برگزاری دانشکده مهندسی برق و کامپیوتر
تعداد واحد ۳
نحوه ارزیابی
  • تمرینات هفتگی (۳۰٪)
  • کوییزها (1۵٪)
  • آزمون پایان نیمسال(5۵)
زمان بندی و نحوه ارائه درس

طرحدرس:نظریه زبان ها و ماشین ها
مدرس: آسیه قنبرپور
1-معرفی سرفصل ومنابعونقش این درس در آموزش تخصصی دانشجویان
2-معرفی و تفکیک مفاهیم الفبا، زبان، گرامر و ماشین
3-مجموعه ها و زبان های منظم و عبارات منظم
4-خواص زبان های منظم و اثبات منظم بودن زبان ها
5-گرامرهای باقاعده (تمرین)1
6-ماشینDFAو ساختار آن (کوییز1)
7-ماشینNFAوNFA-λ
8-زبان های مستقل از متن (تمرین2)
9-گرامر مستقل از متن (کوییز2)
10-نرمال سازی گرامرهای مستقل از متن
11-ماشین هایPDA
12-خواص زبان های مستقل از متن و مسائل تصمیم پذیر در این زبان ها (تمرین3)
13-ماشین های تورینگ پذیرنده (کوییز3)
14-ماشین هایتورینگ تراگذر
15-گرامر بدون محدودیت-گرامر حساس به متن
16-سلسله مراتب زبان ها و تصمیم پذیری (تمرین4)

منابع

[1] M. Sipser. Introduction to the Theory of Computation. 3rd edition, Cengage Learning, 2013.
[2] P. Linz. An introduction to formal languages and automata. 3rd edition, Jones and Bartlett Publishers,2001.
[3] J. E. Hopcroft, R. Motwani, and J. D. Ullman. Introduction to automata theory, languages, andcomputation. 2nd edition, Addison-Wesley, 2001.
[4] J. P. Denning, J. B. Dennis, and J. E. Qualitz. Machines, languages, and computation. Prentice-Hall,1978.
[5] J. E. Hopcroft and J. D. Ullman. Introduction to automata theory, languages, and computation.Addison-Wesley, 1979.
[6] P. J. Cameron. Sets, Logics and Categories. Springer, 1998.

طرح درس
  1. مباحث مقدماتی (۴ جلسه)
    • منطق گزاره ای، منطق مسندی، سیستم اثبات، نظریه ی مجموعه ها، پارادوکس راسل، مجموعه های شمارا و ناشمارا، زبا ن ها و گرامرها.
  2. ماشین های حالت متناهی (۸ جلسه)
    • پذیرنده های متناهی قطعی، پذیرنده های متناهی غیرقطعی، زبان های منظّم، عبارات منظّم، گرامرهای راستگرد خطّی، گرامرهای چپگرد خطّی، گرامرهای منظّم، گرامرهای خطّی، زبان های نامنظّم، لم پومپینگ برای زبان های منظّم.
  3. زبان های مستقل از متن (۱۰ جلسه)
    • گرامرهای مستقل از متن، زبان های مستقل از متن، اشتقاق چپگرد، اشتقاق راستگرد، درخت اشتقاق، گرامرهای مبهم، گرامرهای نامبهم، زبان های ذاتاً مبهم، زبان های نامبهم، ساده سازی گرامرهای مستقل از متن، گرامرهای مستقل از متن به صورت طبیعی چامسکی ،گرامرهای مستقل از متن به صورت طبیعی گرایباخ، مسأله عضویت، الگوریتم CYK ،ماشین های پوش دان، هم ارزی ماشین های پوش دان و گرامرهای مستقل از متن، ماشین های پوش دان قطعی، زبان های مستقل از متن قطعی، زبان های غیر مستقل از متن، لم پومپینگ برای زبان های مستقل از متن.
  4. محاسبه پذیری (۸ جلسه)
    • ماشین تورینگ، تز چِرچ و تورینگ، تصمیم پذیری و تصمیم ناپذیری، محاسبه پذیری و محاسبه ناپذیری، مسئله توقّف، مسئله تخصیص پوست، پیچیدگی محاسباتی، رده پیچیدگی P ،رده پیچیدگی NP ،مسائل NP کامل، مسائل NP سخت.
هدف از طرح درس

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

عنوان سیستم های توزیع شده
مقطع تحصیلی کارشناسی ارشد
مکان برگزاری دانشکده مهندسی برق و کامپیوتر
تعداد واحد ۳
نحوه ارزیابی
  • آزمون: آزمون‌های میان‌نیم‌سال (25 درصد نمره) و پایان‌نیم‌سال (5۰ درصد نمره)
  • تمرین: چند سری تمرین بر اساس متون معرفی شده (15درصد نمره)
  • گزارش پژوهشی: ارائه‌ مقاله‌ای در موضوعات مرتبط (10 درصد نمره).
منابع


1. Tanenbaum, A. S., Van Steen, M., Distributed Systems, Principles and Paradigms, Pearson Education, 2007,
4rd Edition.

2. Coulouris, G., Dollimore, J., Kindberg, T., Distributed Systems, Concepts and Design, 3rd edition, Pearson Education, 2012.

طرح درس
  • فصل یکم: مقدمه‌ای بر سیستم‌های توزیع‌ شده
    • درس یکم: مقدمه‌ای بر انواع سیستم‌های توزیعی
  • فصل دوم: معماری و فرایندها
    • درس دوم: سبک‌های معماری سیستم‌های توزیعی
    • درس سوم: فرایندها و مجازی‌سازی
  • فصل سوم: ارتباطات و نامگذاری
    • درس چهارم: انواع ارتباطات در سیستم‌های توزیعی
    • درس پنجم: نامگذاری و انواع آن
  • فصل چهارم: همگام‌سازی، سازگاری و تکثیر
    • درس ششم: آشنایی با روش‌ها و متدهای همگام‌سازی
    • درس هفتم: آشنایی با سازگاری و تکثیر
  • فصل پنجم: تحمل عیب (خطاپذیری)
    • درس هشتم: مقدمه‌ای بر ترمیم‌پذیری فرایند
    • درس نهم: آشنایی با انواع ارتباطات امن
  • فصل ششم: امنیت و سیستم‌های توزیع‌ شده مبتنی بر شی
    • درس دهم: مقدمه‌ای بر امنیت سیستم‌های توزیعی
    • درس یازدهم: رمزنگاری و امنیت
    • درس دوازدهم: ارتباطات گروهی امن
    • درس سیزدهم: بررسی سیستم‌های توزیعی شی‌گرا
عنوان وارسی مدل
مقطع تحصیلی دكتری تخصصی PhD
مکان برگزاری دانشکده مهندسی برق و کامپیوتر
تعداد واحد ۳
نحوه ارزیابی
  • آزمون: آزمون‌های میان‌نیم‌سال (25 درصد نمره) و پایان‌نیم‌سال (5۰ درصد نمره)
  • تمرین: چند سری تمرین بر اساس متون معرفی شده (15درصد نمره)
  • گزارش پژوهشی: ارائه‌ مقاله‌ای در موضوعات مرتبط (10 درصد نمره)
منابع

[1] C. Baier and J. Katoen, Principles of Model Checking, MIT Press, 2008.
[2] E. M. Clarke, T. A. Henzinger, H. Veith, R. Bloem, Handbook of Model Checking, Springer, 2001.

طرح درس
  1. مقدمه
  • مفهوم و ضرورت درستی سنجی صوری
  • مشخصه های وارسی مدل
  • نقاط قوت و ضعف وارسی مدل
  1. مدلسازی سیستمها
  • سیستمهای گذار
  • اجراها
  • همروندی
  • ارتباط از طریق حافظه مشترک
  • سیستمهای کانال
  • موازی سازی هَمگام
  • مسئلة انفجار فضای حالت
  1.  ویژگیهای زمان خطی
  • مسیرها و گرافهای حالت
  • اثر و ویژگیهای زمان خطی
  • ویژگیهای ایمنی و مانایی
  1. ویژگیهای منظم
  • اتوماتا بر روی کلمه های متناهی
  • وارسی مدل ویژگیهای ایمنی منظم
  • اتوماتا بر روی کلمهه ای نامتناهی
  • زبانها و ویژگیهای w -منظم
  • اتوماتای بوخی
  • وارسی مدل ویژگیهای w -منظم
  • ویژگیهای تداومی
  1. منطق زمانی خطی
  • نحو
  • معناشناسی
  • توصیف ویژگیها
  • وارسی اتوماتا-مبنای منطق زمان خطی (LTL)
  1.  منطق درخت محاسبه
  • نحو
  • معناشناسی
  • مقایسه قابلیت بیان منطق درخت محاسبه (CTL) با منطق زمانی خطی
  • وارسی مدل CTL
  • پیچیدگی وارسی، فضایی، وارسی مدل CTL به صورت نمادین
  • CTL*
  1.  موضوعات تکمیلی
  • تجرید و معادل بودن
  • کاهش ترتیب جزئی
  • اتوماتاهای زماندار
  • وارسی مدل سیستمهای احتمالاتی
هدف از طرح درس

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

عنوان مهندسی نرم افزار ۱
مقطع تحصیلی کارشناسی
مکان برگزاری دانشکده مهندسی برق و کامپیوتر
تعداد واحد ۳
نحوه ارزیابی
  • تمرین نظری‐عملی در طول ترم ( ۲۰ ٪کل نمره)
  • ۳ آزمون تستی از مطالب درس در طول ترم (۳۰ ٪کل نمره)
  • آزمون نهایی تشریحی و تستی (۵۰ ٪کل نمره)
زمان بندی و نحوه ارائه درس
  1. مقدمه (۲ جلسه)
  2. فرایند‐مدل (۲ جلسه)
  3. تولید چابک (۱ جلسه)
  4. درک نیازها (۱ جلسه)
  5. روش های صوری (۵ جلسه)
  6. مفاهیم طراحی (۱ جلسه)
  7. طراحی معماری (۱ جلسه)
  8. طراحی واسط (۱ جلسه)
  9. طراحی مبتنی بر الگو (۱ جلسه)
  10. استراتژی های آزمون (۱ جلسه)
  11. روش های آزمون (۴ جلسه)
  12. اندازه گیری محصول (۱ جلسه)
  13. اندازه گیری فرایند و پروژه (۱ جلسه)
  14. برآورد (۱ جلسه)
  15. مفاهیم کیفیت (۱ جلسه)
  16. روش های مرور (۱ جلسه)
  17. تضمین کیفیت (۱ جلسه)
  18. مدیریت پیکربندی (۱ جلسه)
  19. مدیریت پروژه (۱ جلسه)
  20. زمانبندی (۱ جلسه)
  21. مدیریت ریسک (۱ جلسه)
منابع

[1] R. S. Pressman. Software Engineering: A Practitioner’s Approach. 8th edition, McGraw-Hill, 2014.
[2] P. Ammann and J. Offutt. Introduction to Software Testing. Cambridge University Press, 2008.
[3] J. Woodcock and J. Davies. Using Z: Specification, Refinement, and Proof. Prentice-Hall, 1996.

طرح درس
  • درس یکم: نرم افزار و مهندسی نرم افزار
    • تعریف نرم افزار
    • تعریف مهندسی نرم افزار
    • پندارهای باطل
  • درس دوم: مدل های فرایند
    • مدل کلی
    • ارزیابی فرایند
    • مدل آبشاری
    • مدل افزایشی
    • مدل تکاملی
    • مدل توسعه هم روند
    • مدل مبتنی بر مولفه
    • مدل روش های رسمی
    • فرایند یکپارچه
  • درس سوم: توسعه چابک
    • تعریف چابکی و فرایند چابک
    • برنامه نویسی حدی
    • اسکرام
    • کریستال
    • مدل سازی چابک
  • درس چهارم: اصول راهنما در مهندسی نرم افزار
    • دانش مهندسی نرم افزار
    • اصول راهنمای فرایند مهندسی
    • اصول راهنمای فعالیت های چارچوبی
      • ارتباطی
      • برنامه ریزی
      • مدل سازی
      • ساخت و استقرار
  • درس پنجم: شناخت خواسته ها
    • مهندسی خواسته ها
    • تدارک مقدمات کار
    • استخراج خواسته ها
    • توسعه Use Case
    • ساخت مدل های خواسته ها
    • مذاکره بر سر خواسته ها
  • درس ششم: مدل سازی خواسته ها (سناریوها)
    • تحلیل خواسته ها
    • مدل سازی مبتنی بر سناریو
    • مدل های UML) Unified Modeling Language)
    • مفاهیم مدل سازی داده ها
    • مدل سازی مبتنی بر کلاس
  • درس هفتم: مدل سازی خواسته ها (جریان، رفتار)
    • راهبردهای مدل سازی خواسته ها
    • مدل سازی جریان گرا
    • ایجاد مدل رفتاری
    • الگوهایی برای مدل سازی خواسته ها
  • درس هشتم: مفاهیم طراحی
    • طراحی در حیطه مهندسی نرم افزار
    • فرایند طراحی
    • مفاهیم طراحی
    • مدل طراحی
هدف از طرح درس

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

عنوان درستی یابی خودکار
مقطع تحصیلی دكتری تخصصی PhD
مکان برگزاری دانشکده مهندسی برق و کامپیوتر
تعداد واحد ۳
نحوه ارزیابی
  • آزمون: آزمون‌های میان‌نیم‌سال (25 درصد نمره) و پایان‌نیم‌سال (5۰ درصد نمره)
  • تمرین: چند سری تمرین بر اساس متون معرفی شده (15درصد نمره)
  • گزارش پژوهشی: ارائه‌ مقاله‌ای در موضوعات مرتبط (10 درصد نمره)
زمان بندی و نحوه ارائه درس
  1. درستی‌یابی سیستم (۱ جلسه)
  2. مدل‌های همروندی جلسه)
  3. خواص زمان خطی (۴ جلسه)
  4. خواص منظم جلسه)
  5. منطق زمانی خطی )۶ جلسه)
  6. منطق درخت محاسباتی )۶ جلسه)
  7. هم‌ارزی و تجرید )۳ جلسه)
  8. کاهش ترتیب جزئی جلسه)
  9. خودکارهای زمانی جلسه)
  10. سیستم‌های احتمالی جلسه)

منابع
  1. C. Baier and J.P. Katoen. Principles of Model Checking. MIT Press, 2008.
  2. E. Clarke, O. Grumberg, and D.A. Peled. Model Checking. 2nd edition, MIT Press, 2018.
  3. M. Huth and M. Ryan. Logic in Computer Science: Modelling and Reasoning about Systems. 2nd edition. Cambridge University Press, 2004.
  4. Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer-Verlag, 1992.
  5. C. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985.
  6. R. Milner. Communication and Concurrency. Prentice-Hall, 1989.
طرح درس
  1. درستی‌یابی سیستم
    • وارسی الگو، مشخصات وارسی الگو، نقاط قوت و ضعف.
  2. مدل‌های همروندی
    • سیستم‌های گذار، مدل‌های متنی مبتنی بر متغیرهای مشترک، مسائل معنایی، روابط هم‌ارزی بین دستورات، مدل‌های متنی مبتنی بر ارسال پیام، مدل CSP، مدل CCS، شبکه‌های پتری، هم‌ارزی رفتاری، توازی همگام، NanoPromela، توازی همگام، مساله انفجار فضای حالت، تبعات ملزومات عدالت، عدالت ضعیف، عدالت قوی، دستورات هماهنگ‌سازی، دستورات ارتباطی، جنبه‌های معنایی عدالت، عدالت در شبکه‌های پتری، عدالت در سیستم‌های گذار.
  3. خواص زمان خطی
    • بن بست، رفتار زمان خطی، خواص و تغییر ناپذیرهای ایمنی، خواص زندگی، انصاف.
  4. خواص منظم
    • خودکارها در روی کلمات متناهی، وارسی الگوی خواص ایمنی منظم، خودکارها در روی کلمات نامتناهی، وارسی الگوی خواص w منظم.
  5. منطق زمانی خطی
    • نحو و معنا، هم‌ارزی فورمول‌های LTL، وارسی الگوی مبتنی بر خودکارهای LTL.
  6. منطق درخت محاسباتی ۶ جلسه)
    • نحو و معنا، قابلیت توصیف CTL نسبت به LTL، وارسی الگوی CTL، انصاف در CTL، وارسی الگوی نمادین CTL، CTL*.
  7. هم‌ارزی و تجرید
    • شبیه‌سازی دوسویه، شبیه‌سازی دوسویه و هم‌ارزی CTL*، الگوریتم‌های پیمانه سازی شبیه‌سازی دو سویه، روابط شبیه‌سازی، شبیه‌سازی دوسویه و هم ارزی CTL*
  8. کاهش ترتیب جزئی (
    • استقلال اعمال، رهیافت مجموعه‌ی زمان خطی Ample، رهیافت مجموعه‌ی زمان شاخه‌ای Ample.
  9. خودکارهای زمانی)
    • معنا، منطق درخت محاسباتی زمانی، وارسی الگوی TCTL.
  10. سیستم‌های احتمالی
    • زنجیره‌های مارکوف، منطق درخت محاسباتی احتمالی، خواص زمان خطی، PCTL* و شبیه‌سازی دوسویه احتمالی، زنجیره‌های مارکوف و هزینه‌ها، فرایند‌های تصمیم‌گیری مارکوف.
هدف از طرح درس

خواص مهم اکثر  سیستم‌های پیشرفته، همروندی (concurrency)، جنبه‌های بی‌درنگ (real-time)، و کارایی (performance)، اتکاپذیری (dependability) و امنیت بالا است. سه خاصیت اخیر معمولاً مستلزم درستی رفتار این گونه سیستم‌ها در شرایط مختلف است. از سویی دیگر، تعیین چنین درستی رفتاری به دلیل جنبه‌های همروندی و بی‌درنگی معمولاً بسیار پیچیده است. این درس درباره مفاهیم و روش‌های رسمی‌ای (formal methods) است که برای توصیف مشخصات (specification) و اعتبارسنجی (validation) سیستم‌های واکنشی به کار می‌آیند.