You are not allowed to perform this action

اصول برنامه‌سازی مقیاس‌پذیر

Principles of Scalable Programming

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

هدف کلی

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

سرفصل‌ها

  1. بحثی بر مقیاس‌پذیری در زبان‌های برنامه‌سازی (جمع‌اوری زباله، نوع دسترسی به حافظه، استثنائات، و …)
  2. پشتیبانی از انواع تجرید‌ها (ماژول، شی‌گرایی، برنامه‌نویسی تابعی و ….)
  3. برنامه‌نویسی و طراحی تابعی
  4. برنامه‌نویسی همزمان و جمع‌اوری دیتا موازی
  5. برنا‌مه‌نویسی واکنشی
  6. برنامه‌نویسی توزیع‌شده
  7. مدل اکتور و سکوی akka
  8. پردازش جریانی داده

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

  • آزمون: آزمون‌های میان‌نیم‌سال و پایان‌نیم‌سال (۴۰ درصد نمره)
  • تمرین و پروژه: سه تمرین تئوری و یک پروژه عملی که در طول نیم‌سال تحویل داده می‌شوند (۴۰ درصد نمره).
  • گزارش پژوهشی: موضوع پژوهش قبل از آزمون پایان‌نیم‌سال تعیین می‌شود. دانشجو کار پژوهش را با کمک استاد درس آغاز کرده و پس از انجام کار، نتیجه پژوهش را در قالب گزارش ارائه می‌دهد (۲۰ درصد نمره).

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

  1. M. Odersky, L. Spoon, and B. Venners. Programming in Scala: Updated for Scala 2.12.. Third Edition, Artima Incorporation, 2016.
  2. A. Prokopec. Learning Concurrent Programming in Scala. Packt Publishing Ltd, 2017.
  3. P. Chiusano and R. Bjarnason. Functional programming in Scala. Simon and Schuster, 2014.