Учи · Тествай · Прилагай
Интерактивен учебник
по информатика
Теория с обяснения и схеми, тестове за самопроверка и интерактивни упражнения на C# и SQL — с реално изпълнение и автоматична проверка.
Модул 1 — Обектно-ориентирано проектиране и програмиране (C#)
- M1.01
Компютърът
Какво е компютър, видове, архитектура на фон Нойман, основни хардуерни компоненти и как се изпълнява програма.
6 въпроса - M1.02
Езици за програмиране
Какво е език за програмиране, разлика между машинен код, компилиран и интерпретиран код. Защо C# и как се изпълнява.
5 въпроса2 упр. · C# - M1.03
Инструменти и среди за програмиране
Какво е програмен проект и през кои етапи минава. Инструментите на програмиста — редактор, компилатор, свързващ редактор, дебъгер — и как се събират в една среда (IDE).
6 въпроса3 упр. · C# - M1.04
Интегрирана среда за програмиране Visual Studio
Проект и решение, създаване на конзолно приложение, компилиране и стартиране, четене на грешките. Стандартен вход и изход и пренасочването им.
6 въпроса3 упр. · C# - M1.05
Променливи и типове данни
Деклариране, инициализация и видове променливи. Целочислени, реални, символни, текстови и логически типове в C#.
6 въпроса3 упр. · C# - M1.06
Операции и оператори
Аритметични, релационни, логически и присвояващи оператори. Приоритет на операциите и често срещани грешки.
6 въпроса3 упр. · C# - M1.07
Изчислителни процеси. Линейни процеси
UML диаграма на изчислителен процес и нейните блокове. Линеен, разклонен и цикличен процес. Методът Parse, класът Math и подходът отгоре надолу.
6 въпроса3 упр. · C# - M1.08
Линейни изчислителни процеси
Обобщение чрез задачи: аритметика с правилни дроби вместо неточни дробни типове, диаграма на процеса и програмите AddRat, SubRat, MulRat и DivRat.
6 въпроса3 упр. · C# - M1.09
Сравнения и логически операции
Типът bool, шестте операции за сравняване и трите логически операции. Булева алгебра, законите на Де Морган и частичното оценяване на логически изрази.
6 въпроса3 упр. · C# - M1.10
Условни конструкции (if / else / switch)
Как програмата прави избор. Прости и сложни условия, верижно if-else if, тернарен оператор и switch.
5 въпроса3 упр. · C# - M1.11
Цикли (for, while, do-while)
Как да накараме програмата да повтаря действия. Различни видове цикли, контрол с break и continue, типични задачи.
5 въпроса4 упр. · C# - M1.12
Оператори за цикъл с условие
while с предусловие и do-while с постусловие, UML диаграмата на цикъла и как всеки цикъл се моделира с друг. Алгоритъм на Евклид и численият метод за квадратен корен.
6 въпроса3 упр. · C# - M1.13
Изчислителни процеси. Операции и оператори
Обобщение на цялата тема чрез задачи: сумиране с известен и с неизвестен брой числа, преобразуване на температури и растяща реколта. Кой цикъл кога.
6 въпроса4 упр. · C# - M1.14
ООП — класове и обекти
Какво е обектно-ориентирано програмиране, как се дефинира клас, какво е обект, конструктори и инстанциране.
4 въпроса2 упр. · C# - M1.15
Класове
Синтаксисът на дефиниране на клас в C#, ролята на public, конструкторът по премълчаване и достъпът до атрибутите с точка. Класовете Car и Student.
6 въпроса3 упр. · C# - M1.16
Капсулация и свойства (properties)
Скриване на вътрешното състояние. private/public, get/set свойства, валидация. Принципът: данните се променят само през контролирани методи.
4 въпроса1 упр. · C# - M1.17
Методи (функции)
Декомпозиция на код в методи — параметри, връщана стойност, претоварване, локални променливи и обхват.
4 въпроса2 упр. · C# - M1.18
Конструктори
Конструктор по премълчаване, конструктор с аргументи и копиращ конструктор. Претоварване по сигнатура и класът Rational с истински методи.
6 въпроса3 упр. · C# - M1.19
Предаване на аргументи
Референции и какво всъщност пази променлива от клас. Предаване по стойност и по референция, ключовата дума ref и границите ѝ.
6 въпроса3 упр. · C# - M1.20
Обектно-ориентиран подход
Обобщение на темата чрез довършване на класа Rational: съкращаване на дроби с НОД, нормализирано извеждане и извеждане в десетичен вид.
6 въпроса3 упр. · C# - M1.24
Масиви
Едномерни и двумерни масиви — деклариране, индексиране, обхождане, типични задачи (търсене, сума, минимум/максимум).
4 въпроса2 упр. · C# - M1.25
Static, изключения и мини проект
Статични членове, обработка на грешки с try/catch и сглобяване — малка програма Library Manager, която обединява всичко научено.
4 въпроса2 упр. · C# - M1.26
Наследяване
Един клас взима всичко от друг — без дублиране. base, override, abstract класове.
4 въпроса1 упр. · C# - M1.27
Интерфейси и полиморфизъм
Договор без имплементация. Полиморфизъм — един и същ метод работи различно за различни типове.
4 въпроса1 упр. · C# - M1.29
Още за обектно-ориентирания подход
Обобщение на Модул 1: интерфейсът ITriangle и три класа, които го реализират по различен начин. Защита от недопустими данни и неравенството на триъгълника.
6 въпроса3 упр. · C#
Модул 2 — Структури от данни и алгоритми
- M2.01
Алгоритми
Откъде идва думата „алгоритъм“ и какви са шестте му характеристики. Масова задача и екземпляр, детерминираност, крайност. Представяне с ограничен естествен език.
6 въпроса3 упр. · C# - M2.02
UML диаграми
Практикум по четене и съставяне на UML диаграми: трасиране на чужда диаграма, откриване на дефекти в нея и рисуване на собствени — линейни, разклонени и циклични.
6 въпроса3 упр. · C# - M2.03
Сложност на алгоритми
Машината с произволен достъп до паметта и нейните команди. Размер на входа, сложност по време и по памет в най-лошия случай, означенията O(1) и O(n).
6 въпроса3 упр. · C# - M2.10
Рекурсия
Функция, която вика себе си. База и индуктивен случай. Стек на извикванията, класически задачи: факториел, Фибоначи, двоично търсене.
5 въпроса3 упр. · C# - M2.15
Низове (strings)
Работа с текст в C# — индексиране, дължина, основни методи, форматиране, преобразуване от/към число.
4 въпроса2 упр. · C# - M2.19
Колекции — List и Dictionary
Динамични структури: List<T> за поредици с променлив размер и Dictionary<TKey, TValue> за ключ → стойност.
4 въпроса2 упр. · C# - M2.21
Стек (Stack)
Структурата стек — LIFO. Операции Push, Pop, Peek. Класически приложения: undo, балансирани скоби, обръщане.
4 въпроса2 упр. · C# - M2.21
Опашка (Queue)
Структурата опашка — FIFO. Операции Enqueue, Dequeue, Peek. Класически приложения: BFS, симулация на чакане, кешове.
5 въпроса3 упр. · C# - M2.29
Графи — основни понятия
Какво е граф, видове (насочен/ненасочен, тегловен), представяне (adjacency matrix vs adjacency list), степен. Реални примери.
6 въпроса2 упр. · C# - M2.30
Дървета
Дърво и кореново дърво, свойства (n−1 ребра, единствен път), представяне със списък на родителите, двоични дървета и покриващо дърво на граф.
6 въпроса3 упр. · C# - M2.31
Графи — обхождане (BFS и DFS)
Двата основни алгоритъма: BFS с опашка за най-къс път, DFS със стек/рекурсия за дълбочина. Свързани компоненти и шаблон с visited.
6 въпроса5 упр. · C# - M2.32
Най-къс път в граф
Претеглени графи и дължина на път. НКП в непретеглен граф чрез BFS. Алгоритъм на Дейкстра с релаксация. Флойд–Уоршъл за всеки-до-всеки.
7 въпроса3 упр. · C# - M2.33
Хеш-таблица. Речник
Адресиране и хеш-функции — търсене за константно време. Колизии и разрешаването им. Алгоритъм на Рабин–Карп. Колекцията Dictionary.
7 въпроса3 упр. · C# - M2.34
Софтуерният проект. Качество на кода
Що е проект — цел, начало, край, екип. Жизнен цикъл: инициализиране, планиране, реализация, заключение. Правила за качествен код.
7 въпроса2 упр. · C# - M2.35
Работа по проекти
Практическата работа в екип: роли, дъска със задачи (Kanban), управление на версиите, преглед на кода, документация и защита на проекта.
7 въпроса2 упр. · C#