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

Web Programming

مقطع: کارشناسی گرایش: نرم‌افزار
نوع درس: نظری تعداد واحد: ۳
پیش‌نیاز: برنامه‌سازی پیشرفته هم‌نیاز: –

هدف کلی

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

سرفصل‌ها

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

ارزیابی پیشنهادی

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

منابع پیشنهادی

  1. J. Wolf. HTML and CSS: The Comprehensive Guide. Rheinwerk Computing, 2023.
  2. D. Flanagan. Javascript: The Definitive Guide. 7th Edition, O'Reilly Media, 2020.
  3. B. Shaw, S. Badhwar, C. Guest, and B. Chandra. Web Development with Django. 2nd Edition, Packt Publishing, 2023.
  4. M. Fowler, D. Rice, M. Foemmel, E. Hieatt, R. Mee, and R. Stafford. Patterns of Enterprise Application Architecture. Pearson Addison-Wesley, 2003.