From 0f58f9055d7df0ca82e49d990fca5990a2bba3b4 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Fri, 15 Sep 2023 16:03:41 +0300 Subject: (te/upp-2023/w1) Moved index to welcome and index will now contain exercises --- src/teaching/upp-2023/index.md | 2 +- src/teaching/upp-2023/week1/index.md | 285 +------------------------------- src/teaching/upp-2023/week1/welcome.md | 294 +++++++++++++++++++++++++++++++++ 3 files changed, 297 insertions(+), 284 deletions(-) create mode 100644 src/teaching/upp-2023/week1/welcome.md (limited to 'src') diff --git a/src/teaching/upp-2023/index.md b/src/teaching/upp-2023/index.md index 5b20a01..df36ce9 100644 --- a/src/teaching/upp-2023/index.md +++ b/src/teaching/upp-2023/index.md @@ -10,4 +10,4 @@ |№|Дата|Упражнение| |-------|----|----------| -|1 |?.10.2023|[Добре дошли](/teaching/upp-2023/week1)| +|1 |?.10.2023|[Добре дошли](/teaching/upp-2023/week1/welcome.html) \|\| [Задачи; Visual Studio и първата програма](/teaching/upp-2023/week1?a)| diff --git a/src/teaching/upp-2023/week1/index.md b/src/teaching/upp-2023/week1/index.md index d4db42b..9ca9317 100644 --- a/src/teaching/upp-2023/week1/index.md +++ b/src/teaching/upp-2023/week1/index.md @@ -1,289 +1,8 @@ -# Добре дошли - УПП, Седмица 1, ?.10.2023 +# Visual Studio и първата програма - УПП, Седмица 1, ?.10.2023 &&presentation - -&&slide &¢ered &&font35 - -# Добре дошли - -&&width65 -[![](https://upload.wikimedia.org/wikipedia/commons/3/3c/Chimpanzee_seated_at_typewriter.jpg)](https://en.wikipedia.org/wiki/Infinite_monkey_theorem) -&&/width - -&&/font &&/centered &&/slide - - - -&&slide - -## Кой съм аз - -&&lineb2 - -&&font35 - -Казвам се Камен (моля не ми говорете на Вие), в момента съм третокурсник в КН2. - -&&lineb1 - -Ще водя практикуми - давам ви задачи, вие ги решавате и на живо оправяме проблеми. - -&&lineb1 - -Също може би ще проверявам домашни и/или контролни през семестъра (не знам за сега как ще се организира това). - -&&/font - -&&/slide - - - -&&slide - -## Кои сте вие - -Айде сега, ред по ред: - -&&lineb2 - -&&font35 - -- Име - - Едва ли ще го запомня сега, не ми се сърдете :) -- Коя операционна система ползвате -- Писали ли сте код преди? Aко да: - - на кои езици? - - в какво IDE/текстов редактор? - - как сте се научили (ходили сте на курсове (къде?) или самоуки)? - -&&/font - -&&/slide - - - -&&slide - -## Как можете да се свържете - -- Facebook messenger: - -- Discord: - -- Имейл: - - kamen.d.mladenov@protonmail.com PGP key - - kamen@syndamia.com PGP key **(гледайте си спама!)** - - [kdmladenov@uni-sofia.bg](mailto:kdmladenov@uni-sofia.bg) - -&&lineb1 - -Ако не ви отговоря в рамките на ден-два, пишете ми пак. - -&&/slide - - - -&&slide - -## Как ще протичат практикумите - -Ще се опитам да ги направя малко по-интересни и по-полезни отколкто съм виждал при други асистенти: - -- материали от всякакъв вид в: - - &¢ered &&font35 - [syndamia.com/teaching/upp-2023](/teaching/upp-2023) - &&/font &&/centered - -- ще започнем всяко упражнение с 5 минутки преговор, какво ново трябва да приложим - и ще го завършим с 15-20 минути (ако има желание/смисъл) обяснение на задача -- повечето задачи ще имат поне 1-2 външни препратки към неща, свързани с програмиране, компютри и даже математика. - Не е нужно да ги четете, идеята е да ви покажа какво са правили хората и да ви запозная с неща, които може да са ви интересни. - -&&/slide - - - -&&slide - -## Оплаквайте се! - -- За първи път водя практикум (и никога не съм преподавал формално) -- Задачите сам си ги измислям - -Ако задачите са трудни, зле направени, ако нещо не обяснявам като хората, изобщо ако нещо не е ок, свържете се с мене, ще го обсъдим. - -&&lineb3 - -## Помагайте си! - -- Аз съм един, вие сте >20 - -
- -Със сигурност няма да успея да мога да помогна на всеки по всяко време от практикума, не се страхувайте да питате съседите си за помощ. - -&&/slide - - - -&&slide - -## Няколко съвета в позицията ми на третокурсник - -&&lineb2 - -&&font35 - -- **НЕ плагиатствайте!** - **НЕ си качвайте решения на задачи (особено контролни/домашни) онлайн!** - Системата е умна, не си мислете, че като промените имена и форматиране на работи няма да ви хване. - Много хора се прецакаха! -- **Следвайте материала, който ви се преподава!** - За хората с опит, ще дойде време когато ще искате да приложите лични знания и практики. - Ако не е казано някъде, не го правите и не го обмисляте! - -&&/font &&/slide - - - &&clide &¢ered -# ФМИ в контекста на програмирането - -Или защо учим толкова много математика - -&&lineb2 - -&&font22 -Ще си позволя едно отклонение, за да -поясня малко смисъла от ФМИ. -&&/font +# Visual Studio и първата програма &&/centered &&/clide - - - -&&slide - -## В КН2 има много и трудна математика - -&&table - -&&width35 -![](./img/u4-mat-hard.png) -&&/width - -&&cont - -- Жълто - математически предмет -- Червено - проблемни предмети - -
- -- Всички проблемни предмети също са математики -- Към половината предмети са математики -- Почти всички проблемни са наблъскани в 1ви курс - -&&/cont - -&&/table -&&/slide - - - -&&slide - -## Защо учим толкова много математика? - -Има добра причина, има директни и основни приложения в компютрите, и без тях щяхме още да сме пещерняци. -Нека обясня защо: - -&&lineb2 - -### Дискретни структури - -Смесица на уводите в няколко предмета: - -- **Булева алгебра**: как работим и смятаме с истина/лъжа, с 0/1. - Полезност: - - - Доказана е [еквивалентност между ел. вериги и булевата алгебра](https://en.wikipedia.org/wiki/A_Symbolic_Analysis_of_Relay_and_Switching_Circuits). - - Много типове данни и математически операции могат да се сведат до булева алгебра и работа с памет. - -&&/slide - - - -&&slide - -### Дискретни структури (продължение) - -- **Теория на множествата**: множество е някаква съвкупност от обекти и дефинираме различни операции с тези съвкупности. - Полезност: - - - Позволява ни да третираме колекция от математически обекти като математически обект[^importance-of-sets]. - Използва се в основата на много математики; колкото са полезни те, толкова са и множествата. - -- **Комбинаторика**: като цяло изследва бройки на неща (с/без повторения, в ограничено пространство, ...). - Полезност[^importance-of-combinatorics]: - - - Много често използвана за анализ и дизайн на алгоритми и структори от данни - - Употребява се при оптимизации и теория на кодирането (компресиране на данни, отстраняване на грешки, криптография) - - Есенциална в теория на графите - -&&/slide - - - -&&slide - -### Дискретни структури (продължение) - -&&lineb5 - -- **Теория на графите**: граф е съвкупност от някакви обекти и връзки между тях. - Полезност: - - - Позволява модерлиране на много естествени структури: интернет мрежите, географски карти (места и пътищата между тях), йерархии, биологически мрежи и так. нат. - - Използва се във важни структури от данни като [heap](https://en.wikipedia.org/wiki/Heap_%28data_structure%29) (и интересната [fibonacci heap](https://www.youtube.com/watch?v=6JxvKfSV9Ns)) и [trie](https://en.wikipedia.org/wiki/Trie) - -&&/slide - - - -&&slide - -### Езици, автомати и изчислимост - -Това е част от материала в по-общото "theoretical computer science". -Можем формално да опишем и докажем теоретични компютри и програми. -Тези резултати са директно приложими върху ралните компютри. - -Дефакто работим с компютрите чисто теоретически, с възможността да правим точни доказателства и да определим всички характеристики на един компютър. - - -### Алгебра 1 - -Особено полезен клон на алгебрата, може да моделира много неща от физическия свят. -Повечето компютърна графика се основава на нея и има големи приложения в machine learning, обработка на изображения и алгоритми за препоръки. - -TODO - -&&/slide - - - -&&slide - -### Диференциално и интегрално смятане - - - -&&/slide - - - - -[^importance-of-sets]: [https://math.stackexchange.com/a/536172](https://math.stackexchange.com/a/536172) -[^importance-of-combinatorics]: [https://math.stackexchange.com/questions/2146051/where-do-combinatorics-play-a-role-in-computer-science](https://math.stackexchange.com/questions/2146051/where-do-combinatorics-play-a-role-in-computer-science) diff --git a/src/teaching/upp-2023/week1/welcome.md b/src/teaching/upp-2023/week1/welcome.md new file mode 100644 index 0000000..5da6688 --- /dev/null +++ b/src/teaching/upp-2023/week1/welcome.md @@ -0,0 +1,294 @@ +# Добре дошли - УПП, Седмица 1, ?.10.2023 + +&&presentation + +&&slide &¢ered &&font35 + +# Добре дошли + +&&width65 +[![](https://upload.wikimedia.org/wikipedia/commons/3/3c/Chimpanzee_seated_at_typewriter.jpg)](https://en.wikipedia.org/wiki/Infinite_monkey_theorem) +&&/width + +&&/font &&/centered &&/slide + + + +&&slide + +## Кой съм аз + +&&lineb2 + +&&font35 + +Казвам се Камен (моля не ми говорете на Вие), в момента съм третокурсник в КН2. + +&&lineb1 + +Ще водя практикуми - давам ви задачи, вие ги решавате и на живо оправяме проблеми. + +&&lineb1 + +Също може би ще проверявам домашни и/или контролни през семестъра (не знам за сега как ще се организира това). + +&&/font + +&&/slide + + + +&&slide + +## Кои сте вие + +Айде сега, ред по ред: + +&&lineb2 + +&&font35 + +- Име + - Едва ли ще го запомня сега, не ми се сърдете :) +- Коя операционна система ползвате +- Писали ли сте код преди? Aко да: + - на кои езици? + - в какво IDE/текстов редактор? + - как сте се научили (ходили сте на курсове (къде?) или самоуки)? + +&&/font + +&&/slide + + + +&&slide + +## Как можете да се свържете + +- Facebook messenger: + +- Discord: + +- Имейл: + - kamen.d.mladenov@protonmail.com PGP key + - kamen@syndamia.com PGP key **(гледайте си спама!)** + - [kdmladenov@uni-sofia.bg](mailto:kdmladenov@uni-sofia.bg) + +&&lineb1 + +Ако не ви отговоря в рамките на ден-два, пишете ми пак. + +&&/slide + + + +&&slide + +## Как ще протичат практикумите + +Ще се опитам да ги направя малко по-интересни и по-полезни отколкто съм виждал при други асистенти: + +- материали от всякакъв вид в: + + &¢ered &&font35 + [syndamia.com/teaching/upp-2023](/teaching/upp-2023) + &&/font &&/centered + +- ще започнем всяко упражнение с 5 минутки преговор, какво ново трябва да приложим + и ще го завършим с 15-20 минути (ако има желание/смисъл) обяснение на задача +- повечето задачи ще имат поне 1-2 външни препратки към неща, свързани с програмиране, компютри и даже математика. + Не е нужно да ги четете, идеята е да ви покажа какво са правили хората и да ви запозная с неща, които може да са ви интересни. + +&&/slide + + + +&&slide + +## Оплаквайте се! + +- За първи път водя практикум (и никога не съм преподавал формално) +- Задачите сам си ги измислям + +Ако задачите са трудни, зле направени, ако нещо не обяснявам като хората, изобщо ако нещо не е ок, свържете се с мене, ще го обсъдим. + +&&lineb3 + +## Помагайте си! + +- Аз съм един, вие сте >20 + +
+ +Със сигурност няма да успея да мога да помогна на всеки по всяко време от практикума, не се страхувайте да питате съседите си за помощ. + +&&/slide + + + +&&slide + +## Няколко съвета в позицията ми на третокурсник + +&&lineb2 + +&&font35 + +- **НЕ плагиатствайте!** + **НЕ си качвайте решения на задачи (особено контролни/домашни) онлайн!** + Системата е умна, не си мислете, че като промените имена и форматиране на работи няма да ви хване. + Много хора се прецакаха! +- **Следвайте материала, който ви се преподава!** + За хората с опит, ще дойде време когато ще искате да приложите лични знания и практики. + Ако не е казано някъде, не го правите и не го обмисляте! + +&&/font &&/slide + + + +&&clide &¢ered + +# ФМИ в контекста на програмирането + +Или защо учим толкова много математика + +&&lineb2 + +&&font22 +Ще си позволя едно отклонение, за да +поясня малко смисъла от ФМИ. +&&/font + +&&/centered &&/clide + + + +&&slide + +## В КН2 има много и трудна математика + +&&table + +&&width35 +![](./img/u4-mat-hard.png) +&&/width + +&&cont + +- Жълто - математически предмет +- Червено - проблемни предмети + +
+ +- Всички проблемни предмети също са математики +- Към половината предмети са математики +- Почти всички проблемни са наблъскани в 1ви курс + +&&/cont + +&&/table +&&/slide + + + +&&slide + +## Защо учим толкова много математика? + +Има добра причина, има директни и основни приложения в компютрите, и без тях щяхме още да сме пещерняци. +Нека обясня защо: + +&&lineb2 + +### Дискретни структури + +Смесица на уводите в няколко предмета: + +- **Булева алгебра**: как работим и смятаме с истина/лъжа, с 0/1. + Полезност: + + - Доказана е [еквивалентност между ел. вериги и булевата алгебра](https://en.wikipedia.org/wiki/A_Symbolic_Analysis_of_Relay_and_Switching_Circuits). + - Много типове данни и математически операции могат да се сведат до булева алгебра и работа с памет. + +&&/slide + + + +&&slide + +### Дискретни структури (продължение) + +- **Теория на множествата**: множество е някаква съвкупност от обекти и дефинираме различни операции с тези съвкупности. + Полезност: + + - Позволява ни да третираме колекция от математически обекти като математически обект[^importance-of-sets]. + Използва се в основата на много математики; колкото са полезни те, толкова са и множествата. + +- **Комбинаторика**: като цяло изследва бройки на неща (с/без повторения, в ограничено пространство, ...). + Полезност[^importance-of-combinatorics]: + + - Много често използвана за анализ и дизайн на алгоритми и структори от данни + - Употребява се при оптимизации и теория на кодирането (компресиране на данни, отстраняване на грешки, криптография) + - Есенциална в теория на графите + +&&/slide + + + +&&slide + +### Дискретни структури (продължение) + +&&lineb5 + +- **Теория на графите**: граф е съвкупност от някакви обекти и връзки между тях. + Полезност: + + - Позволява модерлиране на много естествени структури: интернет мрежите, географски карти (места и пътищата между тях), йерархии, биологически мрежи и так. нат. + - Използва се във важни структури от данни като [heap](https://en.wikipedia.org/wiki/Heap_%28data_structure%29) (и интересната [fibonacci heap](https://www.youtube.com/watch?v=6JxvKfSV9Ns)) и [trie](https://en.wikipedia.org/wiki/Trie) + +&&/slide + + + +&&slide + +### Езици, автомати и изчислимост + +Това е част от материала в по-общото "theoretical computer science". +Можем формално да опишем и докажем теоретични компютри и програми. +Тези резултати са директно приложими върху ралните компютри. + +Дефакто работим с компютрите чисто теоретически, с възможността да правим точни доказателства и да определим всички характеристики на един компютър. + + +### Алгебра 1 + +Особено полезен клон на алгебрата, може да моделира много неща от физическия свят. +Повечето компютърна графика се основава на нея и има големи приложения в machine learning, обработка на изображения и алгоритми за препоръки. + +TODO + +&&/slide + + + +&&slide + +### Диференциално и интегрално смятане + + + +&&/slide + + +&&clide &&font35 + +# Айде сега сериозно, започваме първото упражнение + +&&/font &&/clide + + +[^importance-of-sets]: [https://math.stackexchange.com/a/536172](https://math.stackexchange.com/a/536172) +[^importance-of-combinatorics]: [https://math.stackexchange.com/questions/2146051/where-do-combinatorics-play-a-role-in-computer-science](https://math.stackexchange.com/questions/2146051/where-do-combinatorics-play-a-role-in-computer-science) -- cgit v1.3.1-23-gd82d