В рамките на дисциплината ще говорим за два важни аспекта на програмирането, които са както независими от езика, така и силно свързани с Java като програмна технология. Предоставената учебна програма, съдържа и връзки към материалите, които сме разработили по време на упражненията, както и кореспондиращите домашни, с които ще се предизвикате в последствие.
В тази част от дисциплината ще си говорим за това как да създадем работеща програма. Синтактичните правила, логично ще са силно обвързани с начина по който Java функционира, но концепциите са напълно преизползваеми за всяка категории език за програмиране. Успешното усвояване на тези идеи, ще ви дадът възможност да разработвате всякакъв тип базови програми, както и ида идентифицирате основните типове и структури от данни, които се ползват в ежедневната практика. Допълнително ще отделим време и за да разгледаме работа с алгоритми за сортиране на масиви и търсене на информация в тях.
Огромен процент от ежедневните активносит на програмистите е свързани точно със:
- създаване на програмни конструкции които съхраняват данни от числов, низов или структурен тип.
- дефиниране на условни конструкции
- работа със структурирана цикличност, която да управлява непрекъснатост на даден процес
- съхранение на информация в масивоподобни структури
- дефиниране на функции, които да бъзат преизползвани.
ОСНОВИ НА ЕЗИКА JAVA | ||
---|---|---|
N | Тема | Какво разглеждаме |
седмица 1 |
Въведение в Java |
- Въведение в дисциплината. - Как да си свалим и инсталираме JDK и каква е разликата между JDK и JRE. - Как да си свалим и инсталираме среда за разработка IntelliJ или Eclipse. - Как да свалим и инсталираме Git. - Първи стъпки в Git. - Как да компилираме и стартираме една Java програма чрез Java компилатора без използване на среди за разработка. - Имплементиране на Hello World програма. - Обяснение и демонстрация на променливи в Java. |
седмица 2 |
Оператори и условни конструкции |
- Работа с IntelliJ IDEA - Символни низове - String - Оператори - Изрази (аритметични, логически) - Условни конструкции (If-Else, Switch-Case) - Преобразуване на типове (кастване), видове кастване |
седмица 3 |
Оператори в Java |
- Масиви - Цикли - Работа с масиви и цикли - Четене от конзолата - Демонстрация и работа с константи в Java - Демонстрация и работа с тернарен оператор - Демонстрация и работа с оператор break и continue - Демонстрация и работа с Debug Mode в IntelliJ IDEA |
седмица 4 |
Работа с многомерни масиви |
- Продължение на Упражнение 3 - работа с масиви и цикли (упражнение) - Демонстрация на двумерни масиви - Глобални константи в клас - Демонстрация и обяснения на Javadoc коментари |
седмица 5 |
Алгоритми за сортиране и търсене (част 1) |
- Рекурсия - Търсене в масив - Линейно търсене в масив - Двоично търсене в масив - Сортиране на масив - Видове алгоритми за сортиране |
седмица 6 |
Алгоритми за сортиране и търсене (част 2) |
- Видове алгоритми за сортиране (продължение) - Алгоритъм за сортиране Quick Sort (Бърза сортировка) - Алгоритъм за сортиране Selection Sort (Пряка селекция) - Работа с класове - статични методи и членове на клас - Модификатори за достъп в Java - Списъчна структура ArrayList |
Обектно ориентираното програмиране, е популярна парадигма за организиране на програмна логика. За добро или лошо - Java по своята същност е обектно ориентиран по подразбиране, затова няма мърдане - ще трябва да се запознаем с някой от основните идеи, които седят зад този термин. В тази част ще си говорим за:
- разлики между класове и обекти
- как да създаваме договори между нашите класове с помоща на интерфейси
- създаване на иерархични структури с помоща на наследяване.
Далеч сме от мисълта, че тази проблематика ще стане напълно ясна - само за няколко срещи - но е добро начало за да започвем мисли по тази тема.
<tbody>
ОБЕКТНО ОРИЕНТИРАНО ПРОГРАМИРАНЕ | ||
---|---|---|
N | Тема | Какво разглеждаме |
седмица 7 |
Обектно ориентирано програмиране (част 1) |
- Въведение в обектно-ориентираното програмиране - Обектно-ориентираното програмиране и обектите от реалния свят - Характеристики на обектите от реалния свят - Създаване на класове-аналози на обекти от реалния свят - Четене и писане от/във файл - Въведение в изключенията (Exceptions) и тяхната обработка - Конструктори в Java - get() и set() методи на класовете в Java |
седмица 8 |
Обектно ориентирано програмиране (част 2) |
- Продължение от Упражнение 7 - Въведение в ООП - Обяснение на ключова дума this - Модификатори за достъп в контекста на ООП - Наследяването като принцип на ООП - Концепция “Override” в ООП - Абстрактни класове в Java - Абстрактни методи в Java |
седмица 9 |
Обектно ориентирано програмиране (част 3) |
- Продължение от Упражнение 8 - ООП - Начални стъпки за работа с тестове без използване на външни библиотеки - Имплементиране на Unit тестове без използване на външни библиотеки - Интерфейси в Java |
седмица 10 |
Обектно ориентирано програмиране (част 4) |
- Пакети(packages) в Java - Изключения(Exceptions) в Java - Конструкция try-catch блок в Java - Въпроси |