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

Web Programming

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

اهداف درس

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

ریز مواد

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

ارزیابی

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

مراجع

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