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

هدف
• آشنايي با زيرساخت‌ها و پروتکل‌هاي شبکه‌هاي کامپيوتري

• آشنايي با تكنيكهاي برنامه‌نويسي و طراحي سيستم‌هاي مبتني بر شبکه و اينترنت

• آشنايي و طراحي با سيستم‌هاي نوين الکترونيکي حوزه سلامت

سرفصل مطالب درس

  • آشنايي با مباني شبکه‌هاي کامپيوتري (فلسفه و کاربردها – انواع شبکه‌ها – مدل مرجع OSI – مدل TCP/IP)
  • آشنايي مختصر با لايه واسط شبکه (کانال‌هاي انتقال – استانداردهاي واسط شبکه‌ها – خطايابي – کنترل جريان داده – آدرس‌دهي – کنترل دسترسي)
  • آشنايي با لايه اينترنت (بسته‌هاي IP  – آدرس‌هاي IP – پروتکل‌هاي لايه IP – مختصري در مورد مسيريابي)
  • آشنايي با لايه انتقال (بسته‌هاي TCP و UDP)
  • برنامه‌نويسي سوکت (انواع سوکت – برنامه‌نويسي Client/Server)
  • پروتکل‌هاي لايه کاربرد (web، FTP، Telnet)
  • توسعه‌ی نرم‌افزارهای حوزه‌ی سلامت (تشخیص/درمان از راه دور)

منابع
۱) برنامه‌نويسي به زبان C# – حميدرضا رضايي و زهرا عسکري – انتشارات کنکاش – ویرایش دوم – ۱۳۹۶.

۲) آموزش گام‌به‌گام C#.NET – عين‌ا… جعفرنژاد قمي و رمضان عباس‌نژاد – انتشارات علوم رايانه – ۱۳۹۰.

۳) برنامه نويسي شبکه به زبان C#.N، ديويد ب. ماکوفسکي، ترجمه عين‌ا… جعفرنژاد قمي، انتشارات علوم رایانه، ۱۳۹۰.

۴) اصول مهندسي اينترنت – احسان ملکيان و سید محمدحسین هاشمی‌نژاد– انتشارات نص – ويراست دوم – ۱۳۹۳.

5) E. Andersson, P. Greenspun, and A. Grumet, “Software Engineering for Internet Applications”,MIT Press, 2006.
6) A. C. Norris, “Essentials of Telemedicine and Telecare”, John Wiley & Sons, 2002.
7) Marlene M. Maheu, Pamela Whitten, Ace Allen, “E-Health, Telehealth, and Telemedicine: A Guide to Startup and Success”, Marlene Maheu, 2001.

نام مطلبحجم فایللینک دانلود
اصول مهندسي اينترنت – احسان ملکيان – ويراست اول8451 کيلوبايتdownload
اصول مهندسي اينترنت – احسان ملکيان – ويراست دوم14213 کيلوبايتdownload
C# Network Programming6291 کیلوبایتdownload
نمونه سوکت‌نويسي در #C (عليرضا شيرازي)161 کیلوبایتdownload
نمونه سوکت‌نويسي در #C (بابک لوني)213 کیلوبایتdownload
آموزش برنامه‌نويسي سوکت براي برنامه‌نويسان (يونس فرهادنيا)3709 کیلوبایتdownload
TCP/IP Tutorial and Technical Overview3188 کیلوبایتdownload
برنامه‌نويسي سوکت TCP با فرم‌هاي ويندوز در #C (جواد راستي)
فیلم آموزشی را اینجا ببینید.
660 کیلوبایتdownload
راهنماي تصويري شبکه کردن دو يا چند کامپيوتر (جواد راستي)1100 کیلوبایتdownload

مبانی کارآفرینی

هدف: آشنایی با مفاهیم عمومی کارآفرینی و راه‌اندازی کسب‌وکارهای نوین و دانش‌بنیان.

تعداد واحد: ۱ واحد نظری و ۱ واحد عملی

سرفصل

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

  • مفاهيم و تعاریف كارآفرينی، سیر تحول کارآفرینی در ایران و جهان، اهمیت و ضرورت کارآفرینی، تعریف نوآوری و خلاقیت، فرهنگ و فعالیت‌ها و نهادها و فرآیندهای نوآورانه،
  • آشنایی با مهارت‌هاي كارآفريني و مفاهیم بنیادی کسب‌وکار (ارزيابي، امكان‌سنجي و انتخاب ايده، مدل کسب‌وکار، طرح کسب‌وکار، كار گروهي، مديريت منابع، بازاریابی، کنترل کیفیت، ارتباطات، جذب سرمایه و …)
  • برنامه‌ریزی، سازمان‌دهی و ساختار انواع كسب‌وكار و راهبری آن‌ها، چارچوب طرح كسب‌وكار و طراحي جداول و محاسبات آن، مباني كسب‌وكار در اقتصاد ايران
  • مباني بازار و مديريت آن
  • مبانی مدیریت مالی، روش‌های تأمین مالی، سرمایه‌گذاری و سرمایه‌پذیری، تنظیم اسناد مالی، كليات قوانين تجارت در ايران، آشنایی با قوانین بالادستی (مالیات، بیمه، قانون کار و …)
  • مراحل ثبت، تاسيس و انواع شركت‌ها، قوانین کسب‌وکار، ثبت برند، علائم تجاری، حق مالیکت
  • بازاريابي، فروش و ارتباط با مشتري، مبانی تبلیغات، بسترهای دیجیتال، بازاریابی بین‌الملل

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

ج) بازدید: در این بخش ضمن بازدید از فضاهای زیست‌بوم کارآفرینی داخل و خارج دانشگاه از قبیل شتاب‌دهنده‌ها، مراکز رشد، پارک‌های فناوری، مراکز نوآوری، فضاهای کار اشتراکی، کافه‌های کارآفرینی و غیره، دانشجویان با شیوه‌ی عملکرد افراد و تیم‌های مستقر و اصول تعامل با بازیگران فضاهای نوآورانه آشنا می‌شوند و فرصت کارآموزی و کسب تجربه در این فضاها را پیدا می‌کنند. در این راستا، ایجاد زمینه مشارکت در رویدادهای اثربخش از قبیل استارتاپ‌ویکند، ایده‌شو، ایده‌کاپ، Reverse Pitch، باشگاه مشاوران و مانند آن توصیه می‌شود.

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

ارزیابی
  • امتحان کتبی از بخش آموزشی
  • مشارکت فعال در جلسات انتقال تجربه و بازدیدها
  • نمره‌ی کار تیمی بر اساس ارائه‌ی اسلایدی (Pitch Deck) در حضور داوران علمی و کسب‌وکار
  • ارائه‌ی سمینار در خصوص استارتاپ‌های موفق داخلی و خارجی مرتبط با رشته

منابع

Entrepreneurship: The Practice and Mindset, Heidi M. Neck, Christopher P. Neck and Emma L. Murray, SAGE Publications, Inc; 2nd edition, 2020.

Entrepreneurship and Innovation: Theory, Practice and Context, Tim Mazzarol and Sophie Reboud, Springer; 4th ed. 2020 edition.

  • مبانی کارآفرینی، محمود احمدپور داریانی و محمد مقیمی، انتشارات فراندیش، چاپ پانزدهم، ۱۳۹۸.
  • مبانی کارآفرینی، تالیف مسعود خوارزمی و صادق خوارزمی، انتشارات زعیم، ۱۳۸۹.
  • اصول و مبانی کارآفرینی، تالیف مهدی سعیدی‌کیا، انتشارات کیا، ۱۳۸۹.
  • مدیریت سرمایه‌گذاری، تالیف ویلیام اف. شارپ، گوردون الکساندر و جفری وی. بیلی، مترجم سیدمجید شریعت پناهی، انتشارات اتحاد، ۱۳۹۳.
  • مبانی مهندسی مالی و مدیریت ریسک، تالیف رضا راعی و علی سعیدی، انتشارات سمت، چاپ چهاردهم، ۱۳۹۹.
  • اصول مدیریت بازاریابی، تالیف جف لنکستر و لستر مسینگهام، مترجم حسین نوروزی و نیما سلطانی‌نژاد، انتشارات مهربان، ۱۳۹۵.
  • مدیریت استراتژیک منابع انسانی؛ راهنمای عمل، تالیف مایکل آرمسترانگ، مترجمان داوود ایزدی و سید محمد اعرابی، انتشارات دفتر پژوهش‌های فرهنگی، ۱۳۹۳.
  • مدیریت مالی (اصول، مفاهیم و کاربردها)، تالیف دکتر حسن قالیباف اصل، انتشارات پوران پژوهش، ۱۳۸۶.

سخت‌افزار کامپیوتر و کنترل کامپیوتری

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

پیش‌نیاز: ريزپردازنده ۱

سرفصل مطالب درس
• يادآوري عملکرد پردازنده ها و سیستمهای مبتنی بر پردازنده: آشنایی با پردازنده 8086/88 و ساختار مادربورد کامپیوترهای پایه PC-XT و بايوس، تراشه 8255، يادآوري برنامه‌نويسي زبان اسمبلي 8086/88.
• آشنایی با نحوه طراحي يك كارت ساده XT: مباني آدرس‌دهي، نحوه برنامه‌نويسي تحت DOS و ويندوز، مقدمه‌اي بر نحوه درايورنويسي تحت ويندوز، آشنايي با کارتهای (اسلاتهاي) کامپیوتری ISA، EISA، PCI، AGP و PCI-Express و بررسي مزاياي هريك از آنها.
• اصول برقراري ارتباط با كامپيوتر: كنترل جريان داده به روش تأخير و دست‌دهي، كنترل پورتها تحت DOS و ويندوز، آشنايي با كنترل كامپيوتري به كمك زبانهاي مختلف (QBASIC، اسمبلي، پاسكال، دلفي، Turbo C++، Visual C++، Visual Basic، MATLAB)، ساخت فايل DLL، توابع API.
• وقفه‌هاي سخت‌افزاري و نرم‌افزاري كامپيوتر: تراشه 8259، DMA.
• اصول ارتباط موازي: برنامه‌نويسي پورت موازي كامپيوتر، مثال كاربردي (A/D و LCD)، آشنايي با چاپگر، كنترل چاپگر بدون كامپيوتر.
• اصول ارتباط سريال: برنامه‌نويسي پورت سريال كامپيوتر، مودم، كنترل به كمك مودم و تلفن، مثال كاربردي.
• آشنایی با پورت USB: معماري USB، جريان اطلاعات در USB، پروتكل USB، توصيفگرها و درخواستها در USB، سخت‌افزار USB، نرم‌افزار USB، مثال كاربردي.
• اصول دستگاههاي جانبي: عملگرها، حسگرها، مدارهاي واسط الكترونيكي، كنترل‌كننده‌ها، تكنيكهاي پيشرفته.
• كنترل دستگاهها از راه دور: اصول برنامه‌نويسي شبكه، روال كنترل دستگاهها از طريق شبكه كامپيوتري، برنامه‌هاي سرور/مشتري، مثال كاربردي.
• سيستمهاي بلوتوث: توپولوژي و معماري و پروتكل بلوتوث، سخت‌افزار بلوتوث، نرم‌افزار بلوتوث، ويروسهاي بلوتوث.
• باس IEEE-1394
• مروري بر پردازنده‌هاي اينتل: مادربوردها، حافظه‌ها، كارت گرافيكي، مانيتور، استانداردهاي IDE و SATA و SCSI، تكنولوژيهاي ذخيره‌سازي، ابزارهاي ورودي، ابزارهاي خروجي، مونتاژ و اسمبل كامپيوتر، سخت‌افزار شبكه و پياده‌سازي آن.

منابع
• “The 80×86 IBM PC & Compatible Computers”, Muhammed Ali Mazidi and et al, Prentice Hall,2007.

  • “مرجع علمي-كاربردي سخت‌افزار”، شيرزاد شهرياري، انتشارات جهاد دانشگاهي مشهد، ۱۳۸۴.
  • “اصول كامل راه‌اندازي و كنترل دستگاههاي جانبي توسط كامپيوتر”، محسن شكيبافر، انتشارات نص، ۱۳۸۴.
  • “اسلاتهاي توسعه و طراحي كارتها”، شيرزاد شهرياري، انتشارات جهاد دانشگاهي مشهد، ۱۳۷۸.
  • “آشنايي با قطعات سخت‌افزار كامپيوتر و نحوه كار آنها”، محمدرضا گرمخوراني، انتشارات نوپردازان، ۱۳۸۳

• “PC Interfaces under Windows”, Burkhard Kaink and Hans-Joachim Berndt, Elektor Electronics Publications, 2002.
• “IBM personal computer XT, Technical Reference”, Volume 1,2, IBM, 1983.
• “IBM personal computer AT, Technical Reference”, IBM, 1984.
• “The Intel Microprocessors”, Barry B. Brey, Prentice Hall, 2006.
• “PIC Microcontroller and Embedded Systems”, Muhammed Ali Mazidi and et al, Prentice Hall, 2007.
• “The 8051 Microcontroller and Embedded Systems Using Assembly and C”, Muhammed Ali Mazidi and et al, Prentice Hall, 2006.

  • “طراحی، برنامه نویسی و ربط دهی خانواده ۸۰۸۶/۸۸”، جان افن بک، ترجمه دکتر علی پیروی، انتشارات آستان مقدس، ۱۳۷۷.
  • “مدارهای واسطه”، تامپکینز – وبستر، ترجمه دکتر علی پیروی، انتشارات آستان مقدس، ۱۳۸۲.
  • “مبانی میکروپروسسورها و مدارهای واسطه”، دکتر سید محمد احدی، انتشارات دانشگاه امیرکبیر، ۱۳۸۲.
  • “اصول طراحي سيستمهاي ميكروپروسسوري”، دكتر سيد احمد معتمدي، چاپخانه علمي و فرهنگي، ۱۳۷۷.
  • “سيستمهاي ميكروپروسسوري ۱۶ و ۳۲ بيتي”، دكتر سيد احمد معتمدي، چاپخانه علمي و فرهنگي، ۱۳۷۷.
نام مطلبحجم فایللینک دانلود
کتاب الکترونيکي «طراحي مدارهاي واسط کامپيوتري» – جواد راستي9.23 مگابايتdownload
جزوه خلاصه شده درس مدارهاي واسط – مهر 13902.45 مگابايتdownload
آشنایی با میکرو کنترلر AVR1.9 مگابایتdownload
گسترش آدرس38 کیلو بایتdownload
عملكرد پردازنده‌ها318 کیلو بایتdownload
اتصال حافظه و ورودي/خروجي به پردازنده‌ها1.390 کیلو بایتdownload
كاتالوگ پردازنده 8088379 کیلو بایتdownload
آشنايي با پردازنده‌هاي 88/8086439 کیلو بایتdownload
مروري بر سير تحول پردازنده‌ها107 کیلو بایتdownload
آشنايي با برنامه‌نويسي به زبان اسمبلي 88/8086193 کیلو بایتdownload
پينهاي باس XT و ISA792 کیلو بایتdownload
طراحي كارت XT ورودي165 کیلو بایتdownload
طراحي كارت XT خروجي163 کیلو بایتdownload
گذرگاههاي كامپيوتري1.770 کیلو بایتdownload
ليست وقفه‌هاي كامپيوتر59 کیلو بایتdownload
مشخصات اولين كامپيوتر IBM16 کیلو بایتdownload
وقفه‌هاي سخت‌افزاري ميكروكنترلر 805161 کیلو بایتdownload
مشخصات تراشه‌هاي راه‌انداز صفحه كليد32 کیلو بایتdownload
ارتباطات كامپيوتري1420 کیلو بایتdownload
برنامه‌نويسي پورتهاي كامپيوتر در ويندوز400 کیلو بایتdownload
فايل inpout32.dll32 كيلوبايتdownload
نرم‌افزار PortTalk133 كيلوبايتdownload
فايل comport.h4 كيلوبايتdownload
پورت موازي كامپيوتر585 كيلوبايتdownload
پورت سريال كامپيوتر1500 كيلوبايتdownload

معماری کامپیوتر

هدف

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

پیش نیاز: مدارهای منطقی – آشنایی با برنامه‌نویسی توصیفی سخت‌افزار (Verilog یا VHDL)

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

• طراحی واحد اجرایی پردازنده: طراحي ثبات‌ها، طراحي گذرگاه‌هاي مشترک، آشنايي با زبان انتقال ثبات، طراحي مدار محاسباتي، طراحي واحد محاسبات و منطق (فصل‌ ۴ مرجع ۱)

• طراحی واحد کنترلی سیم‌بندی‌شده: سخت‌افزار سازمان کامپيوتر پايه، ساختار دستورات کامپيوتر پايه، طراحي مدار کنترل سيم‌بندي شده، مدیریت وقفه‌ها، کامپیوترهای CISC (فصل‌ ۵ مرجع ۱)

• برنامه‌نويسي کامپيوتر پايه به زبان اسمبلي: مقدمه، حلقه‌ها، عمليات محاسبه و منطق و ورودي/خروجي(فصل‌ ۶ مرجع ۱)

• طراحی واحد کنترلی ریزبرنامه‌نویسی‌شده: حافظه کنترل، واحد کنترل ريزبرنامه‌نويسي شده، کامپیوترهای RISC (فصل‌ ۷ مرجع ۱)

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

• پردازش‌هاي موازي و انواع خط لوله (فصل‌ ۹ مرجع ۱)

• سازمان کامپیوترها: اجزاي سيستم‌هاي مبتني بر پردازنده، پردازنده، زبانهاي برنامه‌سازي، اجزاء داخلي پردازنده‌ها، حافظه‌ها و انواع آنها، وسايل ورودي/خروجي، گذرگاهها، معماري ون‌نيومن و هاروارد (فصل ۱ مرجع ۲)

منابع

1) Morris Mano, “Computer System Architecture”, Pritice Hall Int., 3rd Edition , 1993.

اين توسط دكتر قدرت سپيدنام و نيز دكتر حسن سيدرضي به فارسي ترجمه شده است.

۲) جواد راستی، «طراحی مدارهای واسط کامپیوتری»، انتشارات پیام علوی، ۱۳۹۰.

3) David A. Patterson, and John Hennessy, “Computer Organization and Design – The Hardware/Software Interface”, Morgan Kaufmann, 4th Edition, 2008.

4) Linda Null and Julia Lobur, “The Essentials of Computer Organization and Architecture”, Jones and Bartlett Computer Science, 4th Edition, 2014.

5) John Hennessy and David A. Patterson, “Computer Architecture: A Quantitaive Approach” , Morgan Kaufmann Publ, 5th Edition, 2011.

#عنوانحجملینک
1حل تمرين دست‌نويس كتاب معماري موريس مانو3.3 مگابایتdownload
2جزوه فارسي معماري كامپيوتر942 کیلوبایتdownload
3مجموعه اسلايدهاي معماري كامپيوتر مانو (دانشگاه كايست كره)4 مگابایتdownload
4 معماري پترسون (HW/SW Interface)- ويرايش دوم3.1 مگابايتdownload
5معماري پترسون (HW/SW Interface)- ويرايش سوم3.5 مگابایتdownload

طراحی و ساخت روبات

هدف

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

سرفصل مطالب

  • مقدمه
  • چرا روبات؟
  • چرا روبات تعقيب خط؟
  • روبات تعقيب خط چه مي‌كند؟
  • طرح كلي يك روبات تعقيب خط
  • روبات تعقيب خط چگونه هدايت مي‌شود؟
  • اجزاء روبات تعقيب خط
  • 1) حسگرهاي روبات تعقيب خط
  • الف) مقاومت متغير با نور (فوتو-رزيستور يا فوتوسل)
  • ب) ديود مادون قرمز
  • ج) فوتو-ترانزيستور
  • فرستنده/گيرنده‌هاي مادون قرمز
  • اشباع حسگرها
  • تعداد حسگرها
  • ساخت مدار حسگر
  • تبديل و انتقال خروجي حسگر به مدار پردازشگر
  • مدار سوييچ
  • مدار ترانزيستوري
  • مدار سوييچ با آپ‌امپ
  • ولتاژ نقطه آتش چقدر بايد باشد؟
  • مدار اشميت‌تريگر؛ مداري با دو سطح سوييچ
  • تبديل خروجي آنالوگ حسگر به ولتاژ ديجيتال به كمك ADC
  • بخش پردازشگر
  • مدار منطقي
  • ميكروكنترلر
  • 3) موتور و مدارهاي راه‌انداز آن
  • آرميچر يا موتور DC
  • مدار كنترلي آرميچر با رله
  • معكوس كردن جهت چرخش موتور
  • تراشه‌هاي راه‌انداز موتور
  • كنترل سرعت موتور DC به روش PWM
  • موتور پله‌اي
  • مدار راه‌انداز موتور پله‌اي
  • توليد رشته‌هاي «صفر» و «يك»
  • ميكروكنترلر
  • شيفت رجيستر
  • بافر
  • مدار تقويت جريان
  • نمايشگرهاي روبات
  • تراشه‌هاي آماده راه‌انداز موتور پله‌اي
  • 4) مكانيك روبات
  • از كجا شروع كنيم؟
  • يك مدار كامل روبات تعقيب خط
  • قطعات لازم براي ساخت روبات
  • نرم‌افزار ميكروكنترلر
  • استفاده از روش PWM براي كنترل سرعت موتور
  • چرخش معكوس موتور
  • چند پرسش و پاسخ در مورد اين روبات
  • مدار دوم روبات تعقيب خط
  • نرم‌افزار ميكروكنترلر
  • كلام آخر
  • آشنايي با دنياي روباتها
  • روبات لابيرنت
  • زمين مسابقه
  • روبات مين‌ياب
  • 1) روبات مين‌ياب خودكار
  • 2) روبات مين‌ياب غير خودكار (دستي)
  • 3) رقابت فني
  • ليگ شبيه‌سازي فوتبال
  • مسابقه شبيه‌سازي دوبعدي فوتبال
  • مسابقه شبيه‌سازي مربي فوتبال
  • مسابقه شبيه‌سازي سه‌بعدي فوتبال
  • روباتهاي فوتباليست
  • ليگ روباتهاي فوتباليست اندازه كوچك
  • ليگ روباتهاي فوتباليست اندازه متوسط
  • ليگ روباتهاي فوتباليست انسان‌نما
  • ليگ روباتهاي فوتباليست چهارپا
  • مسابقات روباتهاي آتش‌نشان
  • مسابقات روباتهاي جنگجو
  • مسابقات روباتهاي امدادگر
  • رقابت‌هاي جونيور
  • سگ-روبات
  • روباتهاي پرنده
  • روبات انسان‌نما
  • آسيمو
  • بينايي روبات
  • روباتهاي صنعتي
  • نانو- روباتها
  • آشنايي با رشته مهندسي روباتيك
عنوانحجم فایللینک دانلود
کتاب روبات طراحی خط (ویراست اول)9.23 مگابايتdownload
کتاب روبات طراحی خط (ویراست دوم)2.45 مگابايتdownload
کتاب سلامی به روبات‌ها با روبات مسیریاب1.9 مگابایتdownload
دستورکار آزمايشگاه روباتيک38 کیلو بایتdownload
مدار کامل روبات مسيرياب بدون ميکروکنترلر38 کیلو بایتdownload
مدار کامل روبات مسيرياب با ميکروکنترلر به همراه برنامه38 کیلو بایتdownload

پاسخ به پرسشهاي شما در مورد روبات تعقيب خط

  • عرض خط سياه چقدر است؟ چگونه مي‌توان محيط مسابقه را شبيه‌سازي كرد؟

عرض خط 8/1 سانتي‌متر است. براي امتحان مدارات روبات خود مي‌توانيد تكه‌اي چسب برق مشكي‌رنگ روي يك كاغذ يا فيبر سفيدرنگ بچسبانيد.

  • چگونه بعد از بستن مدار سنسور و مدار سوييچينگ، مي‌توان از صحت عملكرد آن مطمئن شد؟

به خروجي مدار سوييچينگ يك LED و مقاومت كوچك متصل كنيد. اتاق را تاريك كنيد و فرستنده / گيرنده نوري را به آرامي از زمينه سفيد به خط مشكي منتقل كنيد. با ورود فرستنده / گيرنده به خط بايد LED تغيير حالت دهد (از روشن به خاموش يا خاموش به روشن). دقت كنيد ممكن است روبات در شرايط مختلف نوري پاسخهاي مختلفي بدهد. سعي كنيد تستهاي نهايي را در شرايطي مشابه با شرايط مسابقات انجام دهيد.

  • فرستنده / گيرنده نوري چگونه زير روبات بايد نصب شود؟

فرستنده و گيرنده را چسبيده به هم طوري نصب كنيد كه گيرنده مستقيماً در معرض تابش نور فرستنده و نيز هيچ نوري از محيط نباشد. گيرنده بايد تنها بازتابش نوري كه فرستنده به سطح مي‌تاباند را دريافت كند. اگر نور زياد باشد، سنسور نوري نمي‌تواند نوري كه از سطح سياه باز‌مي‌تابد را از نوري كه از سطح سفيد برمي‌گردد تشخيص دهد. به اين حالت به اصطلاح اشباع سنسور گفته مي‌شود.

  • آيا استفاده از مداري مانند اشميت‌تريگر كه دو سطح سوييچ داشته باشد الزامي است يا مي‌توان با مداري با يك سطح سوييچ نيز خروجي سنسور را به بخش كنترلي منتقل كرد؟

اگر مدار سوييچينگ فقط يك سطح سوييچ داشته باشد، وقتي ولتاژ خروجي سنسور از سطح ولتاژ سوييچ بالا مي‌رود، مدار سوييچ كرده و با پايين آمدن خروجي سنسور از آن سطح ولتاژ، مدار مجدداً سوييچ مي‌كند. اين حالت ممكن است باعث شود روبات در اولبن پيچ مرتباً بين خط و زمينه سفيد جابجا شود و گير بيفتد. استفاده از اشميت‌تريگر كه دو سطح سوييچ دارد اين مشكل را حل مي كند؛ وقتي ولتاژ خروجي سنسور از سطح سوييچ بالا بيشتر مي‌شود، اشميت‌تريگر سوييچ مي‌كند. وقتي خروجي سنسور از سطح سوييچ بالا كمتر مي‌شود مدار سوييچ نمي‌كند؛ بلكه صبر مي‌كند تا خروجي سنسور از سطح سوييچ پايين هم كمتر شود (روبات از خط كاملاً خارج شود) و بعد سوييچ مي‌كند. در واقع مدار اشميت‌تريگر در سيستم اينرسي ايجاد مي‌كند. گاهي بدنه مكانيكي روبات اين اينرسي را خود به خود ايجاد مي‌كند (مثلاً وقتي با ورود روبات به خط، مدار سوييچ كند و موتور يك سمت خاموش شود، كمي طول بكشد تا آن سمت روبات متوقف شود يا وقتي موتور روشن شود كمي طول بكشد تا روبات به راه بيفتد). در اين حالت مي‌توان از مدار سوييچ يك‌سطحي استفاده كرد و به كار بردن اشميت‌تريگر لزومي ندارد. پيشنهاد مي‌شود با يك مدار سوييچ يك‌سطحي طراحي روبات را انجام دهيد و در صورتي كه مكانيك روبات اينرسي لازم را براي شما ايجاد نكرد، مدار سوييچ را به مدار دوسطحي اشميت‌تريگر تغيير دهيد.

  • استفاده از آرميچر را توصيه مي‌كنيد يا موتور پله‌اي؟

اگر بتوانيد سرعت روبات را كنترل كنيد قطعاً استفاده از آرميچر بهتر است؛ چون روباتي سريعتر و سبكتر و كوچكتر خواهيد داشت. حتي مي‌توانيد مدارات روبات خود را روي وِرا-بورد ببنديد و لحيم كنيد و موتورهاي آرميچر را روي همين بورد بچسبانيد و چرخها را به شافت موتور متصل كنيد. اگر سرعت روبات بالا باشد احتمالاً با دو سنسور نمي‌توان آن را كنترل كرد و بايد از سنسورهاي بيشتري براي گم نكردن خط استفاده نماييد. استفاده از موتور پله‌اي باعث مي‌شود روبات شما حجيم‌تر و كندتر و سنگين‌تر شود؛ اما كنترل سرعت آن ساده‌تر است و مي‌توانيد تقريباً مطمئن باشيد كه با دو سنسور خط را گم نمي‌كنيد. دقت كنيد موتورهاي پله‌اي در اندازه‌ها و توانهاي مختلف وجود دارند و بعضي از آنها آنقدر سنگين و در عين حال كم‌توان هستند كه حتي نمي‌توانند وزن خود را حمل كنند! هنگام خريد موتور پله‌اي به اين نكته توجه كنيد.

  • مقاومتهاي استفاده شده در مدارهاي سوييچ يا سنسور چقدر بايد باشد؟

مقدار اين مقاومتها به شرايط مدار و سنسور بستگي دارد. مي‌توانيد از متخصصين الكترونيك (حتي از فروشندگان قطعات الكترونيكي) در مورد آنها سؤال كنيد يا به كتابهاي الكترونيك عملي يا تكنيك پالس مراجعه كنيد. مثلاً مقاومت سري شده با LED چون به هدف محدود كردن جريان به كار مي‌رود بايد در حد چند صد اهم باشد. اما مقاومتهاي مدارات ترانزيستوري در حد چند كيلو اهم هستند. استفاده از پتانسيومتر به جاي مقاومت ثابت به مدار شما انعطاف بيشتري مي‌بخشد.

  • مي‌توان يك روبات را به تنهايي ساخت؟!

بله! اما بايد تمام اجزاء روبات از سنسور و مدار سوييچ گرفته تا بدنه مكانيكي را خودتان به تنهايي بسازيد. اگر از دوستانتان كه هركدام در بخشي تخصص و علاقه دارند كمك بگيريد و يك تيم تشكيل دهيد، سريعتر به جواب بهتري مي‌رسيد. به ياد داشته باشيد آنچه مهم است رسيدن به جواب است، نه اينكه چند نفر به جواب مي‌رسند!

زبان ماشین و اسمبلی

هدف
• آشنايي مقدماتي با ساختار کامپيوتر و ريزپردازنده
• آشنايي با برنامه‌نويسي به زبان اسمبلي ريزپردازنده 8086/88
• استفاده از امکانات کامپيوترهاي IBM به کمک برنامه‌هاي اسمبلي

پيش‌نياز
آشنايي با يک زبان برنامه‌نويسي سطح بالا مانند پاسکال يا C

سرفصل مطالب درس
• اصول برنامه‌نويسي کامپيوتر، گذري بر سيستمهاي مبتني بر پردازنده، ساختار داخلي کامپيوتر، نحوه اجراي دستورات در کامپيوتر، جايگاه زبان اسمبلي، گذري بر پردازنده‌هاي اينتل از ابتدا تاکنون، مدحقيقي و محافظت‌شده
• نمايش اطلاعات در کامپيوتر، دستگاههاي مختلف عددي و محاسبات و تبديلات، روشهاي نمايش اعداد منفي، اعداد مميز شناور، سيستم اسکي
• اصول برنامه‌نويسي اسمبلي، گذري بر معماري داخلي و ثباتهاي پردازنده‌هاي 8086/88، ثباتهاي 32 بيتي پردازنده‌هاي 80386 به بالا، آدرس‌دهي سگمنت/آفست و مزاياي آن، تبديل متقابل آدرسهاي فيزيکي و منطقي، بررسي يک برنامه اسمبلي نمونه و ساختار استاندارد آن، ترجمه و پيوند و اجراي برنامه‌هاي اسمبلي، اشکالزدايي برنامه‌هاي اسمبلي به کمک نرم‌افزار DEBUG.
• ورودي/خروجي ساده، وقفه‌هاي نرم‌افزاري بايوس و DOS، دستورات ورودي/خروجي ساده با صفحه کليد و مانيتور.
• ساختارهاي تصميم و تکرار، پرشهاي شرطي و غير شرطي، حلقه‌هاي تکرار نامعين و تکرار معين.
• مدهاي آدرس‌دهي اسمبلي 8086/88
• زيربرنامه‌ها، برنامه‌نويسي ساخت‌يافته، جنبه‌هاي تعريف و فراخواني زيربرنامه‌ها، آشنايي با پشته و تبادل اطلاعات با آن، روشهاي تبادل پارامتر با زيربرنامه به کمک ثباتها و حافظه و پشته
• ماکروها، شبه‌دستورات تکرار، اسمبلي شرطي، کتابخانه IO.H
• محاسبات دودويي، اعمال رياضي چهارگانه، اعمال رياضي روي کلمات چندگانه
• دستورات منطقي و بيتي، تغيير بيتهاي عدد به صورت مستقل، دستورات شيفت و دوران و کاربردهاي خاص آنها
• عمليات رياضي دهدهي، رياضيات BCD، رياضيات اسکي، اعمال رياضي روي رشته‌هاي عددي
• دستورات رشته‌اي، پيشوندهاي تکرار، پردازش جدولها
• برنامه‌نويسي پيمانه‌اي، تقسيم پروژه‌هاي اسمبلي و پيوند پيمانه‌ها، تبادل پارامتر بين پيمانه‌ها، ايجاد کتابخانه‌ها، ارتباط برنامه‌هاي اسمبلي با زبانهاي سطح بالا
• برنامه‌هاي اجرايي COM، برنامه‌نويسي و نحوه ايجاد و پيوند
• برنامه‌هاي مقيم در حافظه (TSR)، بازنويسي وقفه‌هاي کامپيوتر
• امکانات کامپيوتر و مديريت آنها، ويژگيهاي پيشرفته صفحه کليد و مانيتور، توليد صوت با بلندگوي کامپيوتر، استفاده از ماوس، مديريت ديسکها و فايلها، گرافيک کامپيوتري و ساختار فايلهاي گرافيکي، برنامه‌نويسي پورتها و ورودي/خروجي، تسهيلات چاپ
• محاسبات مميز شناور و پردازنده کمکي 8087
• گذري بر پردازنده‌هاي بالاتر، آدرس‌دهي با ديسکريپتورها و آدرس دهي حفاظت‌شده، برنامه‌نويسي مد محافظت‌شده

مراجع
• زبان ماشين و اسمبلي و کاربرد آن در کامپيوترهاي شخصي، دکتر حسن سيدرضي، انتشارات ناقوس.
• مرجع کامل برنامه‌نويسي به زبان اسمبلي از 8086 تا پنتيوم، عين‌ا… جعفرنژاد قمي، رمضان عباس‌نژاد، انتشارات جهاد دانشگاهي مشهد.
• اصول اساسي برنامه‌نويسي به زبان اسمبلي ويژه کامپيوترهاي IBM، ريچارد دتمر، ترجمه جابر هاشمي اصل و هاشم مشحون، انتشارات دانشگاه علم و صنعت ايران
• برنامه‌نويسي به زبان اسمبلي براي کامپيوترهاي شخصي، پيتر ايبل، ترجمه جابر هاشمي‌اصل، انتشارات بهينه

#عنوانحجم فایللینک دانلود
1جزوه شماره يك اسمبلي370 کیلوبایتdownload
2پردازنده‌هاي اينتل33 کیلوبایتdownload
3ثباتهاي پردازنده‌هاي 8086/8841 کیلوبایتdownload
4نرم‌افزارهاي اسمبلر13.058 کیلوبایتdownload
5نرم‌افزار DN1.076 کیلوبایتdownload
6يك برنامه نمونه اسمبلي1 کیلوبایتdownload
7قالب برنامه‌نويسي به زبان اسمبلي577 كيلوبايتdownload
8راهنماي استفاده از اسمبلر MASM71 کیلوبایتdownload
9يك فايل ليست اسمبلي2 کیلوبایتdownload
10يك فايل نقشه اسمبلي1 کیلوبایتdownload
11ساختار فايل ليست29 کیلوبایتdownload
12آشنايي با Debug106 کیلوبایتdownload
13مدهاي آدرس‌دهي اسمبلي 8086/8844 کیلوبایتdownload
14جزوه شماره دو اسمبلي193 کیلوبایتdownload
15مجموعه دستورات زبان اسمبلي 8086/88118 کیلوبایتdownload
16رياضيات اسكي30 کیلوبایتdownload
17دستورات رشته‌اي در زبان اسمبلي35 کیلوبایتdownload
18نمونه برنامه‌هاي مقيم در حافظه37 کیلوبایتdownload
19نمونه پرسشهاي اسمبلي62 کیلوبایتdownload
20كتابهاي الكترونيكي7,487 کیلوبایتdownload
21Notepad++ editor1.96 مگابایتdownload

سیستم‌های کنترل خطی

هدف
هدف اين درس، آشنايي با اصول مدلسازي و تحليل و طراحي سيستم‌هاي كنترل خودكار به ويژه سيستم‌هاي صنعتي به كمك روشهاي رياضي و تحليلي و متدهاي تجربي است.

پیش‌نیاز
گذراندن درس سيگنالها و سيستم‌ها – آشنايي با نرم‌افزار MATLAB

سرفصل مطالب درس
• مقدمه‌اي بر سيستم‌هاي كنترلي: معرفي سيستمهاي كنترلي حلقه باز و حلقه بسته و مقايسه ويژگيها، مثالهايي از سيستمهاي كنترلي.
• تبديل لاپلاس: تبديل لاپلاس سيستمها و معكوس آن و خواص آنها – صفر و قطب و اثر آنها در پاسخ سيستم – تبديل لاپلاس و سيستمهاي LTI – تعيين اندازه و فاز تبديل لاپلاس به روش هندسي – سيستمهاي توصيف‌شده با معادلات ديفرانسيل – تبديل لاپلاس يكطرفه و خواص آن – مدل كردن سيستمها و پاسخ آنها به كمك تبديل لاپلاس.
• مدلسازي رياضي سيستمها: پاسخ ضربه، پاسخ پله، تابع تبديل، نمودار بلوكي، اصل ميسون، مثالهايي از مدلسازي سيستمهاي مكانيكي، الكتريكي، گرمايشي، هيدروليكي، موتورهاي Servo.
• طراحي سيستم‌هاي كنترلي: كنترل‌كننده‌هاي ON/OFF، كنترل‌كننده‌هاي تناسبي (P)، كنترل‌كننده‌هاي تناسبي انتگرال‌گير (PI)، كنترل‌كننده‌هاي تناسبي مشتق‌گير (PD)، كنترل‌كننده‌هاي PID، سيستمهاي مرتبه اول و مرتبه دوم، مشخصات پاسخ پله سيستم‌ها، تحليل پاسخ گذرا، تحليل خطاي حالت ماندگار، اثر اغتشاش، معيار پايداري روث-هورويتس، حالتهاي ويژه، پايداري نسبي، مثالهايي از كنترل‌كننده‌هاي الكتريكي و مكانيكي و پنوماتيكي، پيشفازي و پس‌فازي پاسخ سينوسي، معايب فيدبك، مشكل كوك انتگرال، مشكل لگد مشتق، كنترل پيش‌خوردي، كنترلر PI-D، كنترلر I-PD.
• مكان هندسي ريشه‌ها: نمودار مكان هندسي ريشه‌ها و قواعد ترسيم و خواص، تحليل و طراحي سيستمهاي كنترل به كمك مكان هندسي، جبران‌سازي پيش‌فاز، جبران‌سازي پس‌فاز، جبران‌سازي پيش‌فاز – پس‌فاز.
• پاسخ فركانسي سيستمهاي كنترلي: نمودارهاي اندازه و فاز بوده، نمودارهاي نايكوييست، معيار پايداري نايكوييست، پايداري نسبي، پاسخ فركانسي حلقه بسته، تخمين تابع تبديل، طراحي سيستمهاي كنترلي به روش پاسخ فركانسي، جبران‌سازي پيش‌فاز، جبران‌سازي پس‌فاز، جبران‌سازي پيش‌فاز – پس‌فاز، حاشيه فاز و حاشيه بهره.
• كنترل مقاوم: قواعد تنظيم پارامترهاي كنترلر‌هاي PID، كنترل با دو درجه آزادي، روش زيگلر-نيكولز براي تعيين تجربي پارمترهاي كنترل‌كننده‌هاي PID، نكات طراحي كنترلرهاي PID.
• تحليل فضاي حالت: مدل كردن سيستم به كمك ماتريسهاي فضاي حالت، كنترل‌پذيري، مشاهده پذيري، محاسبه تابع تبديل از معادلات حالت و بالعكس، پايداري، تبديلهاي خطي و فرمهاي كانوني، طراحي سيستمهاي كنترلي در فضاي حالت، طراحي بهينه به روش لياپانوف.
• مسائل پيشرفته در مهندسي كنترل: تبديل Z، سيستمهاي كنترلي ديجيتال، پايداري سيستم‌هاي ديجيتال، كنترل فازي، كنترل وفقي، كنترل مد لغزشي.

منابع
۱) “مهندسي كنترل”، هيكو اوگاتا، ترجمه محمود دياني، انتشارات نص.
۲) “سيستمهاي كنترل خطي”، نارش سينها، ترجمه دكتر امين خدابخشيان، انتشارات دانشگاه اصفهان

3) “Linear Control System Analysis and Design: Conventional and Modern”, John Joachim D’Azzo, Constantine Dino Houpis, McGraw-Hill Series in Electrical & Computer Engineering.
4) “Industrial Control Electronics, Applications and Design”, Michael Jacob, Prentice Hall.

#عنوانحجم فایللینک دانلود
1راهنماي شماره 1 استفاده از نرم‌افزار MATLAB1598 کیلوبایتdownload
2راهنماي شماره 2 استفاده از نرم‌افزار MATLAB5411 کیلوبایتdownload
3خودآموز نرم افزار MATLAB  

برنامه‌نویسی سیستم

هدف
۱) ارائه دانش تکمیلی در زمینه زبان ماشین و اسمبلی
۲) آشنایی با نحوه به‌کارگیری امکانات کامپیوترهای شخصی در قالب برنامه‌نویسی اسمبلی و زبانهای سطح بالا

پيش‌نياز
درس زبان ماشین و اسمبلی – آشنایی عملی با برنامه‌نویسی اسمبلی

سرفصل مطالب درس
• ساختارهاي تصميم و تکرار، پرشهاي شرطي و غير شرطي، حلقه‌هاي تکرار نامعين و تکرار معين.
• مدهاي آدرس‌دهي اسمبلي 8086/88
• زيربرنامه‌ها، برنامه‌نويسي ساخت‌يافته، جنبه‌هاي تعريف و فراخواني زيربرنامه‌ها، آشنايي با پشته و تبادل اطلاعات با آن، روشهاي تبادل پارامتر با زيربرنامه به کمک ثباتها و حافظه و پشته
• ماکروها، شبه‌دستورات تکرار، اسمبلي شرطي، کتابخانه IO.H
• محاسبات دودويي، اعمال رياضي چهارگانه، اعمال رياضي روي کلمات چندگانه، عمليات رياضي دهدهي، رياضيات BCD، رياضيات اسکي، اعمال رياضي روي رشته‌هاي عددي
• دستورات منطقي و بيتي، تغيير بيتهاي عدد به صورت مستقل، دستورات شيفت و دوران و کاربردهاي خاص آنها
• دستورات رشته‌اي، پيشوندهاي تکرار، پردازش جدولها
• برنامه‌نويسي پيمانه‌اي، تقسيم پروژه‌هاي اسمبلي و پيوند پيمانه‌ها، تبادل پارامتر بين پيمانه‌ها، ايجاد کتابخانه‌ها، ارتباط برنامه‌هاي اسمبلي با زبانهاي سطح بالا
• برنامه‌هاي اجرايي COM، برنامه‌نويسي و نحوه ايجاد و پيوند
• برنامه‌هاي مقيم در حافظه (TSR)، بازنويسي وقفه‌هاي کامپيوتر
• امکانات کامپيوتر و مديريت آنها، ويژگيهاي پيشرفته صفحه کليد و مانيتور، توليد صوت با بلندگوي کامپيوتر، استفاده از ماوس، مديريت ديسکها و فايلها، گرافيک کامپيوتري و ساختار فايلهاي گرافيکي، تسهيلات چاپ
• آشنایی با عملکرد پردازنده ها و سیستمهای مبتنی بر پردازنده، آشنایی با پردازنده 8088 و Motherboard کامپیوترهای پایه PC-XT، آشنایی با نحوه طراحی کارتهای کامپیوتری (ISA، EISA، PCI و AGP)
• آشنایی با چاپگرها و برنامه نویسی پورت موازی کامپیوتر
• آشنایی با مودم، تکنولوژی DSL، برنامه نویسی پورت سریال کامپیوتر، آشنایی با پورت USB
• گذري بر پردازنده‌هاي 80286 به بعد، آدرس‌دهي با ديسکريپتورها و آدرس‌دهي حفاظت‌شده، برنامه‌نويسي مد محافظت‌شده

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

• Embedded systems programming in C and Assembly, J. F. Brown, Van Nostrand Reinhold, 1993.
• Structured Computer Organization, A. S. Tanenbaum, Prentice-Hall, 2001.
• IBM personal computer XT, Technical Reference, Volumes 1, 2.
• IBM personal computer AT, Technical Reference.
• The 80×86 IBM PC & Compatible Computers, Mazidi, Prentice Hall, 2000.

این کتاب با نام مدارهای واسط توسط دکتر قدرت سپیدنام به فارسی ترجمه شده است.

• Computer Systems: A Programmer’s Perspective, Randal E. Bryant and David R. O’Hallaron, Prentice Hall, 2003.
• Applied Operating System Concepts, Silberschatz, Galvin, Gagne, 1th Edition, John Wiley&Sons, Inc., 2000.
• Advanced Programming in the UNIX(R) Environment, W.R.Stevens, Addison-Wesley,1992.
• Practical Java Game Programming, D. Clingman et al., Charles River Media, 2004.
• Building Powerful Platforms with Windows CE, J.Y. Wilson, Addison-Wesley, 2001.
• Computers as Components, W. Wolf, Academic Press, 2001.

#نام مطلبحجم فایللینک دانلود
2كتاب زبان اسمبلي ويندوز و برنامه‌نويسي سيستم12 مگابايتdownload

ساختمان داده‌ها و الگوریتم‌ها

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

پيش‌نياز
هر چند درس ساختمان داده‌ها به صورتی مستقل از زبانهاي برنامه‌نويسي ارائه مي‌شود، اما آشنايي مقدماتي با يک زبان برنامه‌نويسي شيءگرا (مانند C++ يا JAVA) براي دانشجويان الزامي است.

سرفصل مطالب درس
• مقدمه‌اي بر الگوريتمها، اصول رياضي تحليل الگوريتم، پيچيدگي‌هاي زمان-فضاي الگوريتمها
• آرايه‌ها: عمليات اساسي آرايه‌ها، الگوريتمهاي جستجو، چندجمله‌اي‌ها، رشته‌ها، آرايه‌هاي چندبعدي و ماتريسها، ماتريسهاي خلوت، رکوردها، ADT آرايه.
• پشته‌ها و روابط بازگشتي: ساختار و عمليات اساسي پشته، ارزيابي عبارات محاسباتي و نمادگذاري لهستاني، نقش پشته‌ها در الگوريتمهاي بازگشتي، بازسازي روابط بازگشتي با پشته‌ها، ADT پشته.
• صف: عمليات اساسي صفها، صفهاي حلقوي، دوصفها، صفهاي اولويتي، ADT صف.
• ليستهاي پيوندي: عمليات اساسي ليستهاي پيوندي، ليستهاي پيوندي با سرگره، ليستهاي دوطرفه، ليستهاي حلقوي، ليستهاي ناهمگون، الگوريتمهاي بازگشتي تحليل ليستها، مديريت حافظه پويا، ADT ليستهاي پيوندي، پیاده‌سازی پشته‌ها و صفها با لیستها پیوندی.
• درختها: معرفي ساختار درختها، نمايش درختها به کمک ليستهاي پيوندي، درختهاي دودويي، نمايش درختهاي دودويي به کمک آرايه‌ها و ليستهاي پيوندي، الگوريتمهاي پيمايش درختهاي دودويي، تحليل درختهاي دودويي، ADT درختهاي دودويي، درختهاي دودويي نخ‌کشي‌شده، کومه‌ها و الگوريتمهاي مرتبط، درختهاي جستجوي دودويي، عمليات اساسي درختهاي جستجوي دودويي، درختهاي عمومي، درختهاي موزون عمقي، درختهاي تصميم‌گيري، درختهاي کومه‌اي، درخت بيشينه-کمينه کومه‌اي، درختهاي کومه‌اي دوجمله‌اي، درختهاي کومه‌اي فيبوناتچي، جنگل.
• گرافها: نظريه گرافها، ماتريسهاي مجاورت، عمليات اساسي گرافها، پيمايش گرافها، درختهاي پوشا، مسأله کوتاهترين مسير.
• ساختارهاي جستجو: درختهاي جستجوي بهينه، درختهاي AVL، درختهاي 2-3، درختهاي 2-3-4، درختهاي قرمز-سياه.
• مرتب‌سازي: مفاهيم مرتب‌سازي، بررسي الگوريتمهاي مختلف مرتب‌سازي (حبابي، درجي، گزينشي، ادغام، مبنايي، کومه‌اي، پوسته‌اي) و مقايسه پيچيدگي آنها.
• درهم‌سازي: مفاهيم درهم‌سازي، الگوريتمهاي درهم‌سازي، درهم‌سازي ايستا، درهم‌سازي پويا.

مراجع

• Goodrich M., Tamassia R., Mount D., “Data Structures and Algorithms in C++”, John Wiley & Sons Inc., ISBN: 0-471-20208-8.
• Goodrich M., Tamassia R., “Data Structures and Algorithms in Java”, John Wiley & Sons, Inc., 4th Editio (pdf available).
• Kruse Robert L. , Ryba Alexander J., “Data Structures and Program Design in C++”, Prentice Hall, 2000 (pdf available)
• Seymour Lipschutz,”Schaum’s Outline of Theory and Problems of Data Structure”, McGraw Hill, 1986.
• Horowitz E., Sahni S., Mehta D., “Fundamentals of Data Structures in C++”, W. H. Freeman & Co, 1999 (pdf available)
• Dale N., Joyce D., Weems C., “Object-oriented Data Structures Using Java”, Jones and Bartlett Publishers, 2006.
• Dale N., “C++ plus Data Structures”, Jones and Bartlett Publishers, 3d Edition.
• Cormen T., Leiserson C., Stein C., Rivest R.,”Introduction to Algorithms”, MIT Press, 2001 (pdf available).
• Wirth, N., “Algorithms + Data Structures = Programs”, Prentice- Hall.