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