Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit365d5c91c0f66aa6b0e621920f7a63726900deab (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-10-05 18:21:25 +0300
Committer
 Syndamia <kamen@syndamia.com>
2023-10-05 18:21:25 +0300
Files9595092a614da3c61423b0a8be487b730705fba7
syndamia.com-365d5c91c0f66aa6b0e621920f7a63726900deab.tar
syndamia.com-365d5c91c0f66aa6b0e621920f7a63726900deab.tar.gz
syndamia.com-365d5c91c0f66aa6b0e621920f7a63726900deab.zip
Parent4fd6ab6616ceefa1008928a3f4e0b25906fb4ada (diff)
(te/upp-2023/w1) Finished setup information
1 files changed, 251 insertions, 24 deletions
-rw-r--r--src/teaching/upp-2023/week1/setup.md275
diff --git a/src/teaching/upp-2023/week1/setup.md b/src/teaching/upp-2023/week1/setup.md
index 2e127de..aa99ba0 100644
--- a/src/teaching/upp-2023/week1/setup.md
+++ b/src/teaching/upp-2023/week1/setup.md
@@ -38,7 +38,7 @@
git е програма (система) за [контрол на версиите](https://en.wikipedia.org/wiki/Distributed_version_control).
В един проект, git пази **списък от всички commit-и**.
-Един commit в себе си съдържа информация какви са точно промените, кой ги е направил, кога са направени, защо са направени и так. нат.
+Един commit в себе си **съдържа какви са точно промените**, кой ги е направил, кога са направени, защо са направени и так. нат.
Този списък, заедно с още неща за които не е нужно да мислите, се нарича **repository**.
Обаче, **commit-ове не се правят автоматично**, не е като историята с промени в един Word файл.
@@ -57,7 +57,7 @@ git е програма (система) за [контрол на версииÑ
&&lineb5
-Всички списъци от commit-и трябва да се пазят някъде и да може лесно да се споделят и гледат.
+Всички repository-та трябва да се пазят някъде и да може лесно да се споделят и гледат.
Има много сайтове за тази цел, най-популярния се нарича [GitHub](https://github.com).
Напомням, че git и GitHub са напълно отделни неща, направени от различни хора с различни функционалности.
@@ -69,25 +69,6 @@ git е програма (система) за [контрол на версииÑ
&&slide
-### GitHub classroom
-
-&&lineb3
-
-За всеки практикум ще ви направя линк, чрез който след малко кликане ще се създаде ново лично repository за всеки от вас.
-
-До 12:20 трябва да сте качили работата си **по време** на упражнението в това repository.
-GitHub предоставя лесни начини да правите промени по файлове директно чрез браузъра, така че за незаинтересуваните, може да го ползвате като усложнен Google Drive.
-
-След това аз ще направя отзиви върху вашата работа.
-Те ще се намират в таба "Pull Requests" на конкретното repository.
-Четете ги, отговаряйте, целта е да дискутираме какво сте направили.
-
-&&/slide
-
-
-
-&&slide
-
## Сега всички трябва да си направят GitHub акаунти
Отивате на [github.com/signup](https://github.com/signup), въвеждате си данните една по една и се регистрирате
@@ -130,7 +111,26 @@ GitHub предоставя лесни начини да правите пром
&&slide
-## Как ползваме GitHub classroom
+## GitHub classroom
+
+&&lineb3
+
+За всеки практикум ще ви направя линк, чрез който след малко кликане ще се създаде ново лично repository за всеки от вас.
+
+До 12:20 трябва да сте качили работата си **по време** на упражнението в това repository.
+GitHub предоставя лесни начини да правите промени по файлове директно чрез браузъра, така че за незаинтересуваните, може да го ползвате като усложнен Google Drive.
+
+След това аз ще направя отзиви върху вашата работа.
+Те ще се намират в таба "Pull Requests" на конкретното repository.
+Четете ги, отговаряйте, целта е да дискутираме какво сте направили.
+
+&&/slide
+
+
+
+&&slide
+
+### Как ползваме GitHub classroom
За всяко упражнение ще има отделен линк.
Този за днеска е: TODO
@@ -193,10 +193,10 @@ GitHub предоставя лесни начини да правите пром
Вътре в това конкретно repository очаквам да качвате работата ви през упражнението.
Повтарям, дори да е недовършено, дори да има някакви празни файлове и такива, трябва да го качите.
-От тук най-лесния начин е да отидете на "Add file", "Upload files", да ги плъзнете върху страницата, и накрая да изберете "Commit changes".
-
Който иска спокойно може да прави няколко commit-и, да им прави съобщения и так. нат., ама към този етап, това не е нужно.
+В края на презентация показвам как точно е най-лесно да качите работата си.
+
&&/clide
@@ -211,3 +211,230 @@ GitHub предоставя лесни начини да правите пром
&&centered &&width80 ![](./img/feedback.gif) &&/width &&/centered
&&/slide
+
+
+
+&&slide
+
+## Къде пишем код?
+
+&&lineb2
+
+**Кодът е чисто и просто текст**, компилаторът е специалната програма, която превръща този текст в нещо, което може компютъра да изпълни.
+
+За писане и редактиране на текст ползваме **текстови редактори**.
+Програмистите са искали да улеснят работата си, затова модерните текстови редактори поддържат много помощни функционалности: показване на грешки на точния ред, автоматично форматиране, ...
+
+За някои и това не е било достатъчно удобно, затова са създадени **Integrated Development Environment** (IDE), програми които съдържат в себе си всичко нужно за разработка на код.
+Тоест, те са текстови редактори, но "вградено" могат да компилират код, да менижират сегашното repository, ...
+
+&&/slide
+
+
+
+&&clide
+
+Главно очакваме да пишете на IDE-то наречено Visual Studio.
+Разработено е от Microsoft и е едно от най-използваните и развитите IDE-та на пазара.
+
+Разбира се, може да ползвате и текстови редактори като Visual Studio Code, vim, emacs, ...
+
+- Главния проблем с тях е, че ще се налага повече конфигурация, но пък ще са по-леки и по-флексибилни
+- Главния плюс е, че те са налични за операционни системи извън Microsoft Windows, за разлика от Visual Studio
+
+Ивана ви говори за Visual Studio Code, аз ще ви говоря за Visual Studio.
+
+Извън това, по лично желание, с мен може да говорите за vim, а за neovim може би ще мога да ви насоча към някой с опит.
+
+&&/clide
+
+
+
+&&slide
+
+### Инсталация
+
+&&lineb1
+
+Намираме се в компютърна зала, така че всички предоставени компютри би трябвало вече да са налични на предоставените компютри.
+За ваши лични машини, ще минем набързо през информацията тук.
+
+За Visual Studio Code, отивате на [code.visualstudio.com/Download](https://code.visualstudio.com/Download), избирате своета операционна система (за Уиндоус, ако не сте сигурни, изберете "System Installer x64") и инсталирате.
+
+За Visual Studio, отивате на [visualstudio.microsoft.com](https://visualstudio.microsoft.com/), скролвате малко надолу, избирате "Download Visual Studio" и след това "Community 2022".
+
+- Ако искате да ползвате по-стара ОС, като Windows 8.1 или Windows 7 ще трябва да използвате "Community 2019"[^vs-2022-old-win], разликата между версиите не е съществена, затова не се притеснявайте.
+
+&&/slide
+
+
+
+&&slide
+
+След като истеглите инсталатора за Visual Studio и след като изчакате да заредят работи, би трябвало да имате прозорец на име "Installing - Visual Studio Community 2022".
+
+Единствено избирате "Desktop development with C++" в таба Worloads, и натискате "Install".
+Би трябвало да заема към 11 GB памет и в моето тестване се инсталира за 10тина минути.
+
+![](./img/vs-install.png)
+
+&&/slide
+
+
+
+&&slide
+
+Когато е готово, би трябвало да се включи автоматично и да имате прозорец с име "Sign in to Visual Studio".
+За сега това не е нужно, спокойно изберете "Not now, maybe later."
+
+![](./img/vs-signin.png)
+
+След това, на "Start with a familiar environment", отново, не е нужно да променяте нищо, просто натиснете "Start Visual Studio".
+
+![](./img/vs-start-env.png)
+
+&&/slide
+
+
+
+&&slide
+
+### Как да създадем проект с Visual Studio
+
+Това е първия прозорец, който се отваря.
+В лявата колона имате скорошни проекти, в дясната имате начини да създадете нов проект.
+
+![](./vs-open-recent.png)
+
+&&/slide
+
+
+
+&&slide
+
+Нека да направим нов проект, кликнете "Create a new project".
+В този прозорец избирате началната "конфигурация" на проекта.
+В този курс ще работим само и единствено с "Console App", затова изберете него и кликнете "Next".
+
+![](./vs-create-project.png)
+
+Последния прозорец преди писането на код е за конфигурация на проекта.
+Тук единствено може да искате да промените Project Name и Location, другото не е важно.
+
+![](./vs-configure-project.png)
+
+&&/slide
+
+
+
+&&slide
+
+#### Бърза вметка, какво и защо конзолата?
+
+През 19ти век са изборетени teleprinters: пишещи машини с възможности да печат текст от електрически сигнал.
+Използвали са се в телеграфията: пишеш като на пишеща машина съобщението и отговора се напечатва на същия лист хартия.
+
+В ранните години на компютрите, точно тези teleprinters са били използвани, все пак са били съществуваща технология, която "изпраща" текст като ел. сигнали и може да принтира ел. сигнали като текст.
+
+Имало е неудобства, използвало се е много хартия, и механиката на бутоните е била сложна.
+С времето компаниите са разработвали такива устройства, който обаче ползват електроннолъчева тръба и "нормални" бутони за клавиши.
+
+Чисто практически, ние това знаем като конзолата: устройство (или в модерно време, програма) което може да получи входен текст и да изкара текст.
+
+&&/slide
+
+
+
+&&slide
+
+### Как да компилираме с Visual Studio
+
+След малко чакане, най-после ще се намираме в средата за писане на код.
+
+![](./vs-general.png)
+
+В Solution Explorer имате всички файлове от проекта (Visual Studio позволява да групирате няколко проекта в едно, наречено Solution, не е нужно да се заниамвате).
+
+Тук **единственото важно за вас се намира в папката "Source Files"**.
+В нея ще се намира вашия код, всичко останало са допълнителни неща, които са релевантни за по-големи проекти.
+
+&&/slide
+
+
+
+&&slide
+
+Компилирането на код става от менюто "Debug" най-отгоре, и след това избиране на "Start Without Debugging".
+
+![](./img/vs-debug-menu.png)
+
+След малко чакане, би трябвало да излезе един прозорец, който изглежда горе-долу така:
+
+![](./img/vs-console.png)
+
+&&/slide
+
+
+
+&&slide
+
+### Как да дебъгваме с Visual Studio
+
+Bug е когато нещо непланирано се случи в кода.
+Debuging е глаголът за откриване на причината за един bug.
+Visual Studio предоставя много функционалности, които да ускорят debugging.
+
+Нека да въведем една грешка, в реда на който изкараме "Hello, World!", нека да махнем последната ";".
+
+При компилиране, ще получим съобщение за грешки по време на компилирането.
+
+![](./img/vs-build-errors.png)
+
+&&/slide
+
+
+
+&&slide
+
+Нека да натиснем "No" и да погледнем Visual Studio.
+
+Грешките, или поне където то си мисли че са, ще бъдат подчертани с червена зигзагообразна линия.
+Ако сложим мишката върху тях, ще получим popup, в който ще пише каква е грешката на това място.
+Грешки също се виждат в така наречения "Error List", който се намира директно под кода.
+Той се появява когато при компилиране получим грешки и изчезва когато няма.
+
+![](./img/vs-errors.png)
+
+&&/slide
+
+
+
+&&slide
+
+### Качване на решенията
+
+След като сте решили една задача, имате два варианта за писане на следващата: или да създадете нов проект, или да презапишете кода.
+Второто е най-лесно.
+
+Във всеки случай, ще се наложи сегашния файл с код да го качите.
+Най-елементарния начин: копирате всичко, след това отивате на вашето GitHub repository, кликвате "Add", после "Create new file".
+
+Отгоре на "Name your file..." пишете някакво име, което **моля да завърша на `.cpp`!**
+Това показва, че файла съдържа код на C++.
+Също, когато решавате много задачи и създавате много такива файлове, **напомням че имената на файловете трябва да са различни.**
+
+В "Enter file contents here" пействате копирания код.
+Горе в дясно натискате "Commit changes...", в попъпа после пак натискате "Commit changes" (ако искате, променяйте "Commit message" и "Extended description", но не е нужно) и сте готови с този файл/задача.
+
+
+&&/slide
+
+
+
+&&clide
+
+## Вече имате достатъчно информация да пишете код сами, [време е за задачи](./)
+
+&&/clide
+
+[^vs-2022-old-win]: Може би има трикове с които да инсталирате 2022 версията, но те не са официални и затова няма да го преподам