NSWI170 Computer Systems
Počítačové systémy

Cvičení - David Bednárek
Středa 15:40-17:10
Učebna: N8
Nejpozději na druhé cvičení (🟥5.3. 🟦12.3.) si přineste Arduino se správným shieldem (podle pokynů přednášejícího). Půjčují se v knihovně na Malé Straně.
Podmínky pro udělení zápočtu
- Zelené kolečko u všech 6 domácích úkolů
- Zelené ✅ kolečko získáte, pokud před druhým termínem odevzdáte 100% funkční řešení bez smrtelných hříchů
- Získání alespoň 13 bodů z domácích úkolů celkem
- 1 bod získáte, pokud před prvním termínem odevzdáte 100% funkční řešení
- Zdrojové kódy tohoto řešení (posledního z nich) budou během následujícího týdne revidovány cvičícím
- Dalších i bodů (za i-tou úlohu) získáte, pokud před druhým termínem odevzdáte řešení s dostatečně kvalitním zdrojovým kódem
- Nutnou podmínkou je získání prvního bodu
- V ideálním případě tento bonus získate zároveň s prvním bodem
- Pokud jej hned nezískáte, můžete odevzdat opravené řešení až do druhého termínu
- Opravené řešení, které chcete vyhodnotit, označte Žádostí 🙏 o revizi
- 1 bod získáte, pokud před prvním termínem odevzdáte 100% funkční řešení
- Úspěšné vyřešení zápočtového testu
- Podmínkou připuštění k zápočtovému testu je splnění obou výše uvedených podmínek
- Vaše řešení domácích úkolů budete mít při zápočtovém testu k dispozici
- Zápočtové testy budou vypisovány podobně jako termíny zkoušek společně pro všechny skupiny
- Podmínkou připuštění k zápočtovému testu je splnění obou výše uvedených podmínek
Plán cvičení
Datum cvičení |
První termín |
Druhý termín |
Téma | Smrtelné hříchy |
Podklady | Recodex |
---|---|---|---|---|---|---|
🟥19.2.2025 🟦26.2.2025 |
🟥26.2.2025 🟦5.3.2025 |
🟥19.3.2025 🟦26.3.2025 |
Úvod do jazyka C(++) | |||
🟥5.3.2025 🟦12.3.2025 |
🟥12.3.2025 🟦19.3.2025 |
🟥2.4.2025 🟦9.4.2025 |
Arduino | Absence dekompozice | hello_world.ino![]() |
🟥02 - Arduino LEDs 🟦02 - Arduino LEDs |
🟥19.3.2025 🟦26.3.2025 |
🟥26.3.2025 🟦2.4.2025 |
🟥16.4.2025 🟦23.4.2025 |
Tlačítka | Nepojmenované konstanty | ![]() |
🟥03 - Arduino Tlačítka 🟦03 - Arduino Tlačítka |
🟥2.4.2025 🟦9.4.2025 |
🟥9.4.2025 🟦16.4.2025 |
🟥30.4.2025 🟦7.5.2025 |
Sedmisegmentovka | Copy-Paste | ||
🟥16.4.2025 🟦23.4.2025 |
🟥23.4.2025 🟦30.4.2025 |
🟥14.5.2025 🟦21.5.2025 |
Stopky | Globální proměnné | ||
🟥30.4.2025 🟦7.5.2025 |
🟥7.5.2025 🟦14.5.2025 |
🟥28.5.2025 🟦4.6.2025 |
Běžící zpráva | Nedostatečná Enkapsulace |
Odevzdávání a opravování domácích úkolů
credit_status homework(int i)
{
start = now();
solution = starter_solution;
/* DAY 0: assignment */
do {
solution = student.improve(solution);
if (now() > start + 7)
break;
student.submit(solution);
} while (solution.validity < 100% || student.dislike(solution));
/* DAY 7: first deadline */
acceptable_solutions = solutions.filter(validity == 100%);
if (! acceptable_solutions.empty())
{
solution = acceptable_solutions.latest();
review = teacher.review(solution);
/* DAY 14: first review completed */
if (review == DEADLY_SIN)
solution.set_points(0);
goto zero_points;
}
solution.accept(); /* ✅ */
if (review == OK) {
solution.set_points(1+i);
return ALIVE;
}
solution.set_points(1);
do {
do {
solution = student.correct(solution, review);
if (now() > start + 28) /* second deadline */
return ALIVE;
student.submit(solution);
} while (solution.validity < 100% || student.dislike(solution));
student.request_review(solution);
review = teacher.review(solution);
} while (review != OK);
solution.accept(); /* ✅ */
solution.set_points(1+i);
return ALIVE;
}
/* DAY 7: first deadline missed */
if (student.cannot_understand(solution.validity))
{
student.request_review(solution);
review = teacher.review(solution);
/* DAY 14: help review completed */
}
zero_points:
do {
do {
solution = student.correct(solution, review);
if (now() > start + 28) /* second deadline */
return DEAD; /* 🛑 */
student.submit(solution);
} while (solution.validity < 100% || student.really_dislike(solution));
review = teacher.review(solution);
} while (review == DEADLY_SIN);
solution.accept(); /* ✅ */
solution.set_points(0);
return ALIVE;
}