Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / upp-2025 / week01 / concepts.du
blob: 242e635624afda6c2f8a4fc20b881f8dad42ae80 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# Общи концепции - УПП, Седмица 1, 02.10.2025

'define expected-reading 4 min
'define created 27 September 2025
'define edited 28 September 2025
[$pagenav]

[$presentation-controller]

:title_slide35

# Общи концепции


:slide35

## Компютър, код, компилиране

[$br2]

:unordered
- Компютъра е една гигантска елка с много бутони и памет
- Видео, аудио, ... се свеждат до записване на число в паметта
  .unordered
  - Например, записване на 255 в определена памет, казва че червеното на първия пиксел е с максимална яркост

- Как числото става нещо осезаемо е въпрос по електротехника



:middle_slide

.unordered
- В древността (около 1940те) програмистите са ръчно са размествали жички за да работят с компютъра
- Електротехниката се развива и това "разместване" се случва без нуждата от промяна в електрическата схема
- На хората им омръзва от писането на числа, изобретяват програмните езици
- Това е ([=неформатиран=]) текст, като комбинации от знаци се свеждат до съответните цифри
  .unordered
  - Например, нека числото 200 да обозначава\n
    "добавяне на единица към [*(регистър)*] Y"
  - С програмен език текста [`INY`] или [`++Y`] се свежда до числото 200


:middle_slide35

.unordered
- Програмите които превръщат този текст в числа се наричат [=компилатори=].
  Самия процес - [=компилиране=].
- Разногласия по какъв текст какво трябва да значи още текат, затова имаме различни (програмни) езици
- Допълнително, хората правят комбинации от знаци, които се превеждат до много числа по сложни начини
- Така се зараждат [=парадигмите=]


:slide35

## История на версиите, git

[$br2]

.unordered
- Microsoft Word, браузърите, ... следят история на действия
- Можем да се движим назад и напред
- Но ако се върнем назад и направим нова промяна, "бъдещите" промени се забравят
- Би било полезно в някои ситуации всъщност да правим разклонение и да пазим и двете редици промени


:middle_slide35

.unordered
- [url https://git-scm.com/ git] е програма, която пази такива разклонени редици от промени върху файловете в директории
- Всяка промяна се нарича "[=commit=]"
- Различните разклонения се наричат "[=branch=]"-ове
- Всеки "commit" трябва да има автор и описание, тоест commit-ове не се правят автоматично!
- Създаването/изтриването на файлове с/без съдържание също се включва в commit-ите
- Папка (и всички под-папки в нея) в която git следи за промени се нарича "[=repository=]" (хранилище)


:slide35

.unordered
- Понякога искаме да споделим нашите промени и да смесим чужди промени при нас\n
  [*(примерно няколко програмиста паралелно правят модификации по един и същ код)*]
- Можем да използваме Google Drive/Dropbox/... и ръчно да смесваме, но става сложно и тромаво
- Сайтове като [url https://github.com GitHub] са специализирани за работа с repository-та.
  Предоставят:
  .unordered
  - безплатно пространство (облак) за repository-и
  - съвместна интеграция с git
  - "pull request": улеснено смесване на два branch-а с възможност за дискусии


:middle_slide35

.unordered
- git и GitHub (или техни близки алтернативи) се използват масово от програмисти по целия свят
- С цел да видите как се ползват и свикнете с тях, ще ги използваме по време на упражнения


:slide35

## GitHub Classroom

[$br1]

.unordered
- Чрез [url https://classroom.github.com GitHub Classroom] ще създавам [=задания с ограничен срок=] (края на съответното упражнение)
- Когато вие приемете заданието, автоматично се създава git repository към което имате (ограничен) достъп
- Преди срока трябва да добавите commit с вашата работа по време на упражнението, [=колкото и малко да е!=]
- Добавя се един автоматичен "pull request" в който ще пиша отзивите.


Да, странно е, че използваме системата за смесване на branch-ове за обратна връзка, но така са решили да го направят.

:title_slide35

.p [url ./github_classroom.html?a Към "GitHub Classroom упътване"]