Skip to content

Latest commit

 

History

History
264 lines (214 loc) · 17.2 KB

README.md

File metadata and controls

264 lines (214 loc) · 17.2 KB

Въведение

Този документ съдържа всички материали от курса Java за начинаещи 22-23. Курса се провежна по графика всяка седмица във Вторник и Четвъртък (с изключение на регламентираните в програмата почивки). Часовете в които започваме са съответно 18:30 до 21:00 часа.

Организация на материалите

Курса се провежда в два семестъра - като материалите за всеки един от тях е разделен в папка с название @semester_n , в която ще намерите всички материали по срещи. Списъка с описанието на всяка среща, по дата с включен линк към детайли за срещата можете да намерите в настоящия документ.

Полезни линкове и материали

За да участвате в този курс в е необходим ентусиазъм и подходящите инструменти

  • Java Java платформа и инструменти за разработка
  • Eclipse Eclipse - среда за разработка на Java код
  • InteliJIdea InteliJ Idea - среда за разработка на Java код

Като допълнителен инструмент в рамките на инициативата ще усвоите работа с:

  • GIT Система за управление на версиите - GIT
  • Github for windows Система за менежиране на Git в контекста на GitHub

Проведени занятия по срещи и дати

Семестър 1 - [ 36 срещи ]

Въведение в програмирането


🚀 Среща 1 / [10.03.2022] - Въведение в Java

  • Въведение в Java;
  • Какво представлява JVM и JDK;
  • Създаване на първата ни Java програма;
  • Извеждане на информация на екрана.

🚀 Среща 2 / [15.03.2022] - Променливи и типове данни

  • Променливи и типове данни;
  • Целочислени типове;
  • Числа с плаваща запетая;
  • Низове и съхранение на текст;
  • Булеви променливи.

🚀 Среща 3 / [17.03.2022] - Оператори за сравнение

  • Мистероизната сила на оператора + при работа със стрингове и числа;
  • Оператори за сравнение;
  • Тернарен оператор и избор на множество възможности;
  • Въвеждане на данни от конзолата.

🚀 Среща 4 / [22.03.2022] - Логически оператори

  • Типът данни char и неговата роля в галерията от примитивни типове;
  • синтаксис за визуално отделяне на дълги числови изрази;
  • константи и работа с ключовата дума final;
  • първи стъпки в логическите оператори (логически И и логическо НЕ);
  • мъдри мисли и съвети свързани с писане на качествен код.

🚀 Среща 5 / [24.03.2022] - Аритметични оператори

  • аритметични оператори *, /, %
  • операции с аритметичен оператор % - свързани с отривани на числови последователности
  • логически оператор ИЛИ
  • условни конструкции if / else
  • сравнение между тернарен оператор ?: и if / else

🚀 Среща 6 / [29.03.2022] - Условни конструкции

  • вложени if / else конструкции
  • else if конструкции
  • живот / видимост на променлива в рамките на IF конструкция
  • работа с .equals() при сравнение на низове

🚀 Среща 7 / [29.03.2022] - Мистериозния клас Random

  • функционалност за генериране на случайни числа
  • разлика между класа Math и класа Random

🚀 Среща 8 / [05.04.2022] - Цикли и глобални променливи

  • цикли
  • първи стъпки в методите
  • глобални променливи

🚀 Среща 9 / [07.04.2022] - Методи и работа с тях

  • упражнение

🚀 Среща 10 / [12.04.2022] - Връщане на стойност от метод

  • Въведение в Git / работа с VCS
  • Връщане на стойности от методи
  • Работа със switch

🚀 Среща 11 / [14.04.2022] - Статични методи и класове

  • упражнение
  • Предаване на параметри на методи
  • Метод overloading
  • Статични и инстанционни методи
  • Създаване на нови класове съдържащи статични методи
  • ключовата дума continue

🚀 Среща 12 / [19.04.2022] - Работа с низове и FOR цикли

  • упражнение
  • особености на return
  • работа с низове
  • цикъл for

🚀 Среща 13 / [21.04.2022] - Масиви и техните особености

  • упражнение
  • масиви и работа с масиви

🚀 Среща 14 / [26.04.2022] - Модификатори за достъп

  • упражнение
  • модификатори за достъп до полета и методи
  • масив от обекти

🚀 Среща 15 / [28.04.2022] - Конструктор getter / setter

  • упражнение
  • клас конструктор
  • работа с geter и setter

🚀 Среща 16 / [03.05.2022] - Работа с пакети

  • упражнение
  • класове и обекти
  • пакети и импортиране на пакети
  • ключовата дума this

🚀 Среща 17 / [05.05.2022] - Мистериозния клас Object

  • упражнение
  • мистериозния клас - Object
  • цикъл for за работа с колекции

🚀 Среща 18 / [10.05.2022] - Упражнения с класове и обекти

  • упражнение

🚀 Среща 19 / [12.05.2022] - Референтни типове и команди

  • упражнение
  • подаване на параметри тип Object
  • референтни типове

🚀 Среща 20 / [17.05.2022] - Многомерни масиви - част 1

  • многомерен масив
  • разпределение на данни в масив
  • движение на данни в многомерен масив
  • използване на масиви като карти за символи

🚀 Среща 21 / [19.05.2022] - Многомерни масиви - част 2

  • Форматиране на низове с помоща на printf
  • видимост на класове в пакети
  • работа с методи от пакета Math

🚀 Среща 22 / [31.05.2022] - Многомерни масиви - част 3

  • работа с методите Math.max и Math.min
  • концепции за компонентно тестване на методи

Обектно ориентирано програмиране - принципи и концепции


🚀 Среща 23 / [02.06.2022] - ООП принципи - наследяване

  • Още за Object и неговата роля в Java;
  • Какво е наследяване;
  • Работа с модификатор за достъп protected;
  • Полиморфизъм и полиморфно поведение - при презаписване на стойности.

🚀 Среща 24 / [07.06.2022] - ООП принципи - абстракция

  • Създаване на договори и рестрикции
  • Работа с абстракни класове
  • Работа с комплексно наследяване
  • Още примери за полиморфно поведение
  • RUN time vs COMPILE time

🚀 Среща 25 / [09.06.2022] - Енумерации и конзолни цветове

  • Работа с цветове и стилове в конзолата
  • Работа с енумерации
  • Преизползване на конструктори, при наследяване
  • Оператор за множестно аргументи (...)

🚀 Среща 26 / [14.06.2022] - Файлове и изключения - част 1

  • Какво са изключения - и как информират програмиста за проблеми
  • Run time и Compile time изключения
  • Операции с файлове за четене и писане на информация
  • Особености при работа с числа и символи (особено отрицателни)

🚀 Среща 27 / [16.06.2022] - Файлове и изключения - част 2

  • Работа с BufferedReader при четене на линии от файл
  • Трикове и идеи как да управляваме, файловете си по-лесно
  • Операции с низове

Работа с технологии - Java Fx и бази данни


🚀 Среща 28 / [21.06.2022] - Въведение в базите данни - част 1

  • какво са базите данни и имат ли почва у нас
  • Какви инструменти са ни необходими за да започнем работа
  • Създаване на база данни
  • Селектиране на база данни
  • Създаване на таблица - особености и типове данни
  • Добавяне на нов ред в таблица
  • Актуализация на информация в таблица
  • Изтриване на информация в таблица
  • Търсене и намиране на информация в таблица
  • Изтриване на таблица

🚀 Среща 29 / [23.06.2022] - Въведение в базите данни - част 2

  • рестрикции в таблици
  • работа с първични и външни ключове
  • работа с графичен интерфейс на MySQL Workbench
  • оператора WHERE и работа с логически конструкции
  • работа с функции в SQL
  • комбиниране на данни от множество таблици (JOIN)

🚀 Среща 30 / [28.06.2022] - Въведение в JavaFx - част 1

  • Графични системи и библиотеки
  • Два варианта за създаване на JavaFx проект
  • Какво е Maven като част от популярните Build системи (рабоат Maven Repository)
  • Работа с POM.XML файл - структура и организация
  • Въведение в концепцията за модулите в Java
  • Първата ни JavaFX програма

🚀 Среща 31 / [30.06.2022] - Въведение в JavaFx - част 2

  • Създаване на UI компоненти с помоща на JavaFX класове
  • Разделяне и организиране на код
  • Работа със събития и обработчици на събития
  • Интерфейси и тяхната функция в програмирането
  • Анонимни класове и техните особености
  • Работа с анимации (обработка на данни във фонов режим)

🚀 Среща 32 / [05.07.2022] - Въведение в JavaFx - част 3

  • Въведение в концепцията за XML и маркиране на структрута
  • Добавяне на FXML към структурата на проекта ни
  • Трансформация на код от програматична към FXML форма
  • Работа със събития във FXML
  • Работа с контролери във FXML
  • Стилизиране на UI контроли с помоща на CSS
  • Стилови правила характерни за UI контроли в контекста на документацията на FXML

🚀 Среща 33 / [07.07.2022] - Въведение в JavaFx - част 4

  • Какво е MVC и как е свързано с текущо разработваното приложение
  • Работа с колекции - класа ArrayList

🚀 Среща 34 / [12.07.2022] - Работа с JDBC - част 1

  • какво е JDBC
  • сваляне и инсталация на JDBC за работа с MySQL
  • особености на драивърите
  • връзка с базата данни
  • работа със стеитмънти
  • шаблони за дизайн - Singleton

🚀 Среща 35 / [14.07.2022] - Работа с JDBC - част 2

  • разработка на Query Builder абстракция
  • концепция за модели и репозитори
  • работа с Generic и интерфейси

🚀 Среща 36 / [19.07.2022] - Работа с интерфейси и generic

  • още детайли за работа с Generic и интерфейси от близо
  • работа със списъчни структури

Семестър 2 - [ 40 срещи ]

Структури от данни и свързани с тях операции


🚀 Среща 1 / [15.09.2022] - Въведение в структурите от данни

  • работа със свързан списък
  • работа със стек
  • работа с опашка
  • реализация на структури от данни с помоща на интерфейси и генерични струкутри

🚀 Среща 2 / [20.09.2022] - Алгоритми за търсене и сортиране

  • сортиране по метода на мехурчето
  • сортиране по метода на пряката селекция
  • двуично търсене

🚀 Среща 3 / [22.09.2022] - Структури от данни - част 2

  • работа с итератори
  • работа с генератори
  • работа с ламбда функции