Метапрограмування (Осінь 2018)

Галузь знань: 12 Інформаційні технології
Спеціальність: 121 Інженерія програмного забезпечення
Освітня програма: Програмна інженерія

Викладач: асистент Терлецький Дмитро Олександровчи (лекції, лабораторні заняття)
Викладається: у 7-му семсетрі бакалаврату.
Загальний обсяг: 120 год, з яких:
  • Лекції – 28 год.
  • Лабораторні заняття – 26 год.
  • Консультації – 2 год.
  • Самостійна робота – 64 год.

Програма курсу

Лекція
Тема лекції
Слайди лекцій Домашнє завдання
1 Основні поняття метапрограмування. Метадані та метазнання. Підходи до метапрограмування. Ієрархія метарівнів. Лекція-1 ДЗ-1
2

Теми для самостійного опрацювання

Лекція
Тема лекції
Слайди лекцій Домашнє завдання
1 Загальні особливості синтаксису мови Python. Базові оператори. Умовні оператори. Циклічні оператори. Лекція-1д ДЗ-1д
2 Базові типи даних у мові Python. Числа. Рядки. Списки. Словники. Кортежі. Файли. Множини. Лекція-2д ДЗ-2д
3 Функції. Області видимості та простори імен. Аргументи функцій. Розширені можливості функцій. Лекція-3д ДЗ-3д
4

Умови лабораторних робіт


Перелік тем що виносяться на модульні контрольні роботи


Перелік рекомендованих джерел

Основний:

  1. V. Stuikys, R. Damasevicius, Meta-Programming and Model-Driven Meta-Program Development: Principles, Processes and Techniques // Springer, 2013.
  2. D. C. Hay, Data Model Patterns: A Metadata Map // Morgan Kaufmann Publishers, 2006.
  3. J. Pomerantz, Metadata // The MIT Press, 2015.
  4. R. Gartner, Metadata: Shaping Knowledge from Antiquity to the Semantic Web // Springer, 2016.
  5. R. L. Lubas, A. S. Jackson, I. Schneider, The Metadata Manual: A Practical Workbook // Chandos Publishing, 2013.
  6. python.org
  7. M. Lutz, Learning Python: Powerful Object-Oriented Programming, 5th ed. // O'Reilly Media, Inc., 2013.
  8. D. Beazley, B. K. Jones, Python Cookbook: Recipes for Mastering Python 3, 3rd ed. // O'Reilly Media, Inc., 2013.
  9. L. Ramalho, Fluent Python: Clear, Concise, and Effective Programming // O'Reilly Media, Inc., 2015.
  10. ruby-lang.org
  11. L. Carlson, L. Richardson, Ruby Cookbook: Recipes for Object-Oriented Scripting, 2nd ed. // O'Reilly Media, Inc., 2015.
  12. P. Perrotta, Metaprogramming Ruby 2: Program Like the Ruby Pros, 2nd ed. // The Pragmatic Bookshelf LLC., 2014.
  13. D. Thomas, C. Fowler, A. Hunt, Programming Ruby 1.9 & 2.0: The Pragmatic Programmers' Guide // The Pragmatic Bookshelf LLC., 2013.
  14. D. Flanagan, Yu. Matsumoto, The Ruby Programming Language: Everything You Need to Know // O'Reilly Media, Inc., 2008.
  15. M. Voelter, DSL Engineering: Designing, Implementing and Using Domain-Specific Languages // CreateSpace Independent Publishing Platform, 2013.

Додатковий:

  1. R. Lammel, Software Languages: Syntax, Semantics and Metaprogramming // Springer, 2018.
  2. P. Caplan, Metadata Fundamentals for All Librarians // American Library Association, 2003.
  3. M. Lutz, Python Pocket Reference: Python in Your Pocket, 5th ed. // O'Reilly Media, Inc., 2014.
  4. B. Lubanovic, Introducing Python: Modern Computing in Simple Packages // O'Reilly Media, Inc., 2015.
  5. A. Martelli, A. Ravenscro, S. Holden, Python in a Nutshell: The Definitive Reference, 3rd ed. // O'Reilly Media, Inc., 2017.
  6. M. Summerfield, Python in Practice: Create Better Programs Using Concurrency, Libraries, and Patterns // Addison-Wesley, 2014.
  7. H. Fulton, A. Arko, The Ruby Way, 3rd ed. // Addison-Wesley, 2015.
  8. O. Frieder, G. Frieder, D. Grossman, Computer Science Programming Basics with Ruby: Exploring Concepts and Curriculum with Ruby // O'Reilly Media, Inc., 2013.
  9. M. Clements, Ruby Quick Syntax Reference // Apress, 2014.
  10. M. Fitzgerald, Ruby Pocket Reference: Instant Help for Ruby Programmers, 2nd ed. // O'Reilly Media, Inc., 2015.
  11. P. Riti, Practical Scala DSLs: Real-World Applications Using Domain Specific Languages // Apress, 2018.
  12. R. D. Kelker, Clojure for Domain-Specific Languages: Learn How to Use Clojure Language with Examples and Develop Domain-Specific Languages on the Go // Packt Publishing, 2013.