diff options
| Commit | 365d5c91c0f66aa6b0e621920f7a63726900deab (patch) | |
|---|---|---|
| Author | 2023-10-05 18:21:25 +0300 | |
| Committer | 2023-10-05 18:21:25 +0300 | |
| Files | 9595092a614da3c61423b0a8be487b730705fba7 | |
| syndamia.com-365d5c91c0f66aa6b0e621920f7a63726900deab.tar syndamia.com-365d5c91c0f66aa6b0e621920f7a63726900deab.tar.gz syndamia.com-365d5c91c0f66aa6b0e621920f7a63726900deab.zip | ||
| Parent | 4fd6ab6616ceefa1008928a3f4e0b25906fb4ada (diff) | |
(te/upp-2023/w1) Finished setup information
1 files changed, 251 insertions, 24 deletions
| -rw-r--r-- | src/teaching/upp-2023/week1/setup.md | 275 |
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 предоставя лесни начини да правите пром &¢ered &&width80  &&/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тина минути. + + + +&&/slide + + + +&&slide + +Когато е готово, би трябвало да се включи автоматично и да имате прозорец с име "Sign in to Visual Studio". +За сега това не е нужно, спокойно изберете "Not now, maybe later." + + + +След това, на "Start with a familiar environment", отново, не е нужно да променяте нищо, просто натиснете "Start Visual Studio". + + + +&&/slide + + + +&&slide + +### Как да създадем проект с Visual Studio + +Това е първия прозорец, който се отваря. +В лявата колона имате скорошни проекти, в дясната имате начини да създадете нов проект. + + + +&&/slide + + + +&&slide + +Нека да направим нов проект, кликнете "Create a new project". +В този прозорец избирате началната "конфигурация" на проекта. +В този курс ще работим само и единствено с "Console App", затова изберете него и кликнете "Next". + + + +Последния прозорец преди писането на код е за конфигурация на проекта. +Тук единствено може да искате да промените Project Name и Location, другото не е важно. + + + +&&/slide + + + +&&slide + +#### Бърза вметка, какво и защо конзолата? + +През 19ти век са изборетени teleprinters: пишещи машини с възможности да печат текст от електрически сигнал. +Използвали са се в телеграфията: пишеш като на пишеща машина съобщението и отговора се напечатва на същия лист хартия. + +В ранните години на компютрите, точно тези teleprinters са били използвани, все пак са били съществуваща технология, която "изпраща" текст като ел. сигнали и може да принтира ел. сигнали като текст. + +Имало е неудобства, използвало се е много хартия, и механиката на бутоните е била сложна. +С времето компаниите са разработвали такива устройства, който обаче ползват електроннолъчева тръба и "нормални" бутони за клавиши. + +Чисто практически, ние това знаем като конзолата: устройство (или в модерно време, програма) което може да получи входен текст и да изкара текст. + +&&/slide + + + +&&slide + +### Как да компилираме с Visual Studio + +След малко чакане, най-после ще се намираме в средата за писане на код. + + + +В Solution Explorer имате всички файлове от проекта (Visual Studio позволява да групирате няколко проекта в едно, наречено Solution, не е нужно да се заниамвате). + +Тук **единственото важно за вас се намира в папката "Source Files"**. +В нея ще се намира вашия код, всичко останало са допълнителни неща, които са релевантни за по-големи проекти. + +&&/slide + + + +&&slide + +Компилирането на код става от менюто "Debug" най-отгоре, и след това избиране на "Start Without Debugging". + + + +След малко чакане, би трябвало да излезе един прозорец, който изглежда горе-долу така: + + + +&&/slide + + + +&&slide + +### Как да дебъгваме с Visual Studio + +Bug е когато нещо непланирано се случи в кода. +Debuging е глаголът за откриване на причината за един bug. +Visual Studio предоставя много функционалности, които да ускорят debugging. + +Нека да въведем една грешка, в реда на който изкараме "Hello, World!", нека да махнем последната ";". + +При компилиране, ще получим съобщение за грешки по време на компилирането. + + + +&&/slide + + + +&&slide + +Нека да натиснем "No" и да погледнем Visual Studio. + +Грешките, или поне където то си мисли че са, ще бъдат подчертани с червена зигзагообразна линия. +Ако сложим мишката върху тях, ще получим popup, в който ще пише каква е грешката на това място. +Грешки също се виждат в така наречения "Error List", който се намира директно под кода. +Той се появява когато при компилиране получим грешки и изчезва когато няма. + + + +&&/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 версията, но те не са официални и затова няма да го преподам |