ابزار کاربر

ابزار سایت


درس:۴۰۲۴۴

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

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.
درس/۴۰۲۴۴.txt · آخرین ویرایش: 2019/12/26 01:59 (ویرایش خارجی)