TCMB532 Скриптове за автоматизация и управление на мрежови възли и телекомуникационни системи
Анотация:
Курсът противно ще ви научи на основите на езици за програмиране като Java, Expect и Groovy като фокуса ще бъде върху това как да го използвате за създаването на приложения свързани с мрежовата администрация и/или телекомуникациите.
Курсът цели също да даде основни умения по програмиране на студентите участващи в студио проектите на НБУ.
Курсът ще бъде преподаван от д-р. Васил Йорданов
http://bg.linkedin.com/pub/vasil-yordanov/4/245/166
Преподавател(и):
доц. Георги Петров д-р
Описание на курса:
Компетенции:
Завършилите курса ще имат добра devOps култура и ще знаят що е то Java, Expect, Groovy. Ще могат да използват специфични библиотеки на тези езици за целите на мрежовото инженерство и телекомуникациите.
В края на курса студентите ще знаят:
принципите на обектно ориентираното програмиране
основните езикови конкструкции на четри програмни езика, два от които са обектно ориентирани (Java и Groovy), а три са скриптови езици (Groovy, Tcl, Expect).
как се компилират Java програми.
как се изпълняват и прави Debugging на програмите
как се работи с някои изестни среди за програмиране
какви са основните структури от данни в четрита езика
за какво случжат изключенията.
как се работи с входно/изходни потоци
как се работи с регулярните изрази в тези езици.
какви са общите и различните езикови конструкции в Java и Groovy
как езика Expect надгражда Tcl и как се автоматизира взаимодействието с програми.
Курсът е практически ориентиран и в края на курс студентите ще могат:
Да работят с средите за програмиране IntelliJ IDEA и Eclipse.
Да стартират и правят Debugging в InterlliJ IDEA
Да създават прости програми и да разчитат съществуващ код на четрита езика.
Да работят със основните структури от данни в тези езици
Да прихващат възникнали изключения в хода на програмта
Да записват/четат данни в изходен/от входен поток
Да прилагат регулярни изрази.
Да автоматизират взаимодействието мрежата чрез програми написани на езици Expect и Groovy
Предварителни изисквания:
Добра компютърна грамотност.
Добри познания по TCP/IP.
Желание и достатъчно свободно време.
Форми на провеждане:
Редовен
Учебни форми:
Лекция
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
- Основни принципи и понятия при обектно-ориентираната разработка на софтуер: Капсулация, наследяване, абстракция, полиморфизъм. Класове, обекти, пакети, интерфейси, наследяване, имплементация. Обектно-ориентирано моделиране с Unified Modelling Language (UML). Библиотеки приложни класове (Java API). (2 ч.) С
- ъздаване на нови типове данни – класове, методи и атрибути. Създаване, компилиране и изпълнение на Java програма. Среди за програмиране - IntelliJ IDEA, Eclipse, NetBeans. Debugging на Java програма. Коментари и коментари за документация (Javadoc). (2 ч.)
- Променливи и оператори в езика Java – приоритет, присвояване, математически, логически, релационни, побитови и низови оператори. Основни езикови конструкции за управление хода на програмата,оператори if, if-else, while, do-while, for, break, continue, switch и др. Работа със стрингове и регулярни изрази. (2 ч.)
- Инициализация на членове на обекти, конструктори, финализиране и garbage collector. Пакети и спецификатори за достъп – public, private, protected. Многократно използване на класовете. Полиморфизъм. Абстрактни класове и методи. Интерфейси и вътрешни класове.(2 ч.)
- Oсновни структури от данни на езика Java: масиви и операции с масиви, списъци и колекции, множества, таблици, хеш-таблици, стекове и опашки. Основни интерфейси и класове за реализация на колекции, опашки и асоциативни списъци. Сортиране и търсене в колекции и масиви. Сортирани колекции и асоциативни списъци. Java generics.(3 ч.)
- Регулярни изрази в езика Java. (1 ч) Механизъм за обработка на грешки чрез изключения. Реализация на собствени класове за изключения. Блок try – catch – finally и прехвърляне на обработката към извикващия метод с throws. Unchecked Exceptions - клас RuntimeException. Exception chaining. (2 ч.) Системата за вход-изход в езика Java. Основни операции с файлове и директории. Входни/изходни потоци. Филтриращи входни и изходни потоци. Шаблон „Декоратор“. Символен вход/изход - класове Reader, Writer и техните наследници. Файлове с произволен достъп – RandomAccessFile. Пренасочване на стандартния вход/изход. (2 ч.). Въведение в езика Groovy. Създаване, компилиране и изпълнение на Groovy програма. Среди за програмиране. Debugging на Groovy програми. Разлики с езика Java. (1 ч) Нови програмни конструкции в Groovy, които ги няма в Java. Closures, нов вграден синтаксис за списък и таблици, регулярни изрази. Оператори while и for. Вграждане на изрази в String (GString). (3 ч) Въведение в езика Tcl. Изрази, структури за управление хода на програмата. Структури от данни - списъци, масиви. Прихващане на изключения. Работа с файлове. Създаване и изпълнение на Tcl програма. (3 ч)
- Въведение в езика Expect - aвтоматизациране на взаимодействието с програми. Създаване и изпълнение на Tcl програма. Команди - send и expect, spawn, interact. (3 ч)
- Glob шаблони, регулярни изрази. Debugging, tracing, logging. (2 ч) Библиотеката Expect4Groovy. (2 ч)
Литература по темите:
1. Eckel's Br., Thinking in Java, 4th edition
2. Libes D., Exploring Expect - A Tcl-based Toolkit for Automating Interactive Programs,O'Reilly Media, 1994
3. Konig D., King P., Groovy in Action,
4. Expect4Groovy, http://sourceforge.net/projects/expect4groovy
5. https://docs.oracle.com/javase/tutorial/
Средства за оценяване:
Студентите ще бъдат оценени на базата на:
1. Тяхното присъствие и участие в лекциите и упражненията
2. Точки получени от проекти, които трябва да реализирате в екип
Предметът не предвижда финален изпит.