Как протича защитата
Последният час от двете години. Всеки екип има 8–10 минути пред класа и учителя. Защитата е 10% от оценката на проекта, но тя е моментът, в който се виждат и другите 90% — базата, AI функцията, интерфейсът, документацията и екипът.
| Част | Време | Какво се очаква |
|---|---|---|
| Задачата | 1 мин | проблем, потребител, вход и изход — в едно изречение |
| Демонстрация | 3 мин | петте входа, включително провалящия се; заявката или контекстът се виждат |
| Решенията | 2 мин | схемата, AI функцията и защо точно така |
| Тестове и ограничения | 1–2 мин | таблицата с ✗-овете, N/10, три изречения „системата не…“ |
| Въпроси | 2 мин | от класа и от учителя — към когото попадне |
Графикът
По 10 минути на екип със смяната — четири екипа в един час. При повече екипи учителят обявява реда предварително и защитите минават в два последователни часа; редът се тегли, не се избира.
| Ред | Екип | Тема | Компютърът е готов (✓) |
|---|---|---|---|
| 1 | … | … | приложението е отворено на чист старт, снимките са локално |
| 2 | … | … | |
| 3 | … | … | |
| 4 | … | … |
Аргументиране на решенията
Частта „Решенията“ не е преразказ на кода. Тя отговаря на въпроса защо — защо тази схема, този модел, този формат на изхода, тази проверка. За всяко решение има поне една отхвърлена алтернатива и причина.
| Въпросът | Слаб отговор | Силен отговор |
|---|---|---|
| Защо тази схема? | „Така ни дойде.“ | „Три таблици плюс служебна; заеманията са отделно, защото една книга се заема много пъти; читателят е код, не име.“ |
| Защо изглед за модела, а не таблиците? | „По-лесно е.“ | „По-къс промпт, без служебните таблици; с всички таблици моделът бъркаше JOIN-а в 2 от 10 въпроса.“ |
| Защо SQL, а не JSON или RAG? | „Така беше в урока.“ | „Данните са структурирани и въпросите са за бройки и дати — това е задача за заявка, не за търсене по смисъл.“ |
| Защо температура 0? | „Не знам, така беше в примера.“ | „За да е повторяем резултатът при тестовете; при 0.7 два пъти върна различна заявка на един въпрос.“ |
| Защо конзолен интерфейс? | „Не успяхме да направим уеб.“ | „Четирите функционални изисквания са изпълнени; уеб нямаше да добави нищо към веригата за трите часа.“ |
Честно за ограниченията
Всяка система има граници. Екипът, който ги посочи сам, показва, че познава системата си; екипът, на който ги посочат, показва обратното. Три изречения, всяко със „Системата не…“, взети от таблицата с тестове и от провалените въпроси:
- „Системата не отговаря на въпроси с дати в свободен вид („миналата седмица“) — 2 от 10 провала са такива.“
- „Системата не е тествана с повече от 200 реда в основната таблица.“
- „Системата не бива да се ползва за решения за реални хора — данните са синтетични.“
| Носи точки | Губи точки |
|---|---|
| „8 от 10 въпроса; двата провала са с дати, ето защо“ | „Работи добре“ |
| „Опитахме пример с дата в промпта — стана 7/10, върнахме го“ | премълчан неуспешен опит |
| „Тази справка я предложи асистент; беше грешна, ето как я хванахме“ | код, който никой от екипа не може да обясни |
| „Не бива да се ползва за X, защото данните са Y“ | „Може да се ползва навсякъде“ |
| „Не знам, но бих проверил така…“ | уверено изречение, което звучи добре и е грешно |
Въпросите
Не са уловки — това са въпросите, които всеки получава, когато покаже система с база и модел. Очаквайте ги и от съучениците, и от учителя, и към всеки от екипа:
- Покажи заявката, която току-що се изпълни. Вярна ли е? Откъде знаеш?
- Какво прави системата, когато моделът върне нещо, което не е SELECT / не е JSON / няма източник?
- Къде е ключът? Какво става, ако е грешен?
- Има ли в базата реален човек? Как сте сигурни?
- Върху кои 10 въпроса е числото N/10 и кой ги е измислил?
- Кое от кода е предложено от асистент и как го проверихте?
- Кой направи проверката bezopasna и защо точно тези думи са забранени?
- Ако започвахте отначало, какво бихте направили различно?
Оценъчни карти
Картата на учителя — по шестте критерия
| Критерий | Тежест | 0 | 1 | 2 | 3 |
|---|---|---|---|---|---|
| База и заявки | 25% | няма работеща база | таблици има, справките са слаби | схема, данни и справки работят | плюс проверени очаквания и изглед |
| AI компонент | 25% | няма извикване | извикване без проверка | цялата верига с проверка и запис | плюс разбираеми грешки и N/10 |
| Интерфейс и тестване | 15% | ползва се само от автора | ползва се, без тестове | ползва се, таблица с тестове | плюс гранични случаи с ✗ и обяснение |
| Документация | 15% | липсва | непълна, без стартиране | осемте раздела | плюс проверена от друг човек |
| Защита | 10% | преразказ | описание без „защо“ | решенията с причини | плюс честни ограничения и отговори |
| Екип | 10% | един е работил | роли има, приносът не е ясен | ясни роли и принос | плюс всеки обяснява всичко |
Преди точките — трите проверки за автоматично сваляне на оценката: реални лични данни без основание; API ключ, попаднал в хранилището; AI инструмент, използван без да е деклариран.
Картата на съучениците (peer карта)
Всеки попълва по една за всеки друг екип. Не е анонимна и се предава на учителя; отива при екипа като обратна връзка.
| Въпрос | Отговор |
|---|---|
| Разбрах ли за 1 минута какво прави приложението? | да / отчасти / не |
| Видях ли на какво стъпва отговорът (заявка, JSON, източник)? | да / не |
| Едно решение, което бих пренесъл в своя проект | … |
| Един въпрос, който бих задал | … |
| Бих ли го ползвал, ако бях потребителят? | 1–5 и защо |
Какво трябва да запомниш
- Защитата е 8–10 минути с роли; демонстрацията показва и провалящ се вход и това, на което стъпва отговорът.
- Решението е „X вместо Y, защото Z“ — за схемата, модела, формата, проверката, интерфейса.
- Ограниченията се казват от екипа, не се откриват от класа: три изречения „системата не…“.
- „Не знам, но бих проверил така…“ е по-силно от уверен грешен отговор.
- Учителят оценява по шестте критерия с карта 0–3; съучениците дават обратна връзка по peer карта.
- От двете години остават пет неща: данните определят тавана; без проверка няма твърдение; системата е повече от модела; сигурността е в кода и правата, не в промпта; отговорността е на човека.