اصول برنامهسازی مقیاسپذیر
Principles of Scalable Programming
مقطع: تحصیلات تکمیلی | گرایش: علم داده |
نوع درس: نظری | تعداد واحد: ۳ |
پیشنیاز: – | همنیاز: – |
هدف کلی
هدف این درس، آشنا کردن دانشجویان کارشناسی ارشد و دکترا با الگوها و پارادایمهای برنامهنویسی مقیاسپذیر و با کارایی بالا برای ساخت سیستمهای مقیاس بالا است. این الگوها باید به صورت عملی در یک یا چند زبان برنامهنویسی به دانشجویان تدریس شود که زبان پیشنهادی اسکالا است.
سرفصلها
- بحثی بر مقیاسپذیری در زبانهای برنامهسازی (جمعاوری زباله، نوع دسترسی به حافظه، استثنائات، و …)
- پشتیبانی از انواع تجریدها (ماژول، شیگرایی، برنامهنویسی تابعی و ….)
- برنامهنویسی و طراحی تابعی
- برنامهنویسی همزمان و جمعاوری دیتا موازی
- برنامهنویسی واکنشی
- برنامهنویسی توزیعشده
- مدل اکتور و سکوی akka
- پردازش جریانی داده
ارزیابی پیشنهادی
- آزمون: آزمونهای میاننیمسال و پایاننیمسال (۴۰ درصد نمره)
- تمرین و پروژه: سه تمرین تئوری و یک پروژه عملی که در طول نیمسال تحویل داده میشوند (۴۰ درصد نمره).
- گزارش پژوهشی: موضوع پژوهش قبل از آزمون پایاننیمسال تعیین میشود. دانشجو کار پژوهش را با کمک استاد درس آغاز کرده و پس از انجام کار، نتیجه پژوهش را در قالب گزارش ارائه میدهد (۲۰ درصد نمره).
منابع پیشنهادی
- M. Vanier. Scalable computer programming languages. 2008.
- M. Odersky, L. Spoon, and B. Venners. Programming in Scala: Updated for Scala 2.12.. Third Edition, Artima Incorporation, 2016.
- A. Prokopec. Learning Concurrent Programming in Scala. Packt Publishing Ltd, 2017.
- P. Chiusano and R. Bjarnason. Functional programming in Scala. Simon and Schuster, 2014.