First edition of Programming 0
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
EuropeCodeWeekDemo
exam
git-and-github
pdfs
sublime
week0
week1
week2
week3
week4
week5
week6
week7
week8
.gitignore
README.md

README.md

Programming 0

Материали, разделени по седмици

Седмица Задачи Презентация Видео
0 Задачите се намират тук Въвеждаща Презентация за курса 1. Въвеждаща лекция.
2. Работа с Python IDLE и първите задачи.
0 Задачите се намират тук Values, Expressions, Variables, Syntax. 1. Работа с текстови файлове
2. Syntax, Values, Expressions & Python REPL
3. Променливи
1 Задачите се намират по своите папки Types. IO. Booleans & If statement 1. Типове, оператори и типова система в Python.
2. Вход и Изход. Взимане на вход от потребителя.
3. Булеви променливи и if statement.
1 Задачите се намират по своите папки Statements. Boolean operators. While statement 1. Обобщение на наученото досега
2. Булеви оператори - and, or и not
3. Statements
4. Цикли. While loop
1 В събота се решаваха само задачи В събота се решаваха само задачи В събота се решаваха само задачи
2 Задачите се намират в week2/ Списъци. Оператори и функции над списъци 1. Списъци. Оператори и Функции над списъци.
2. Индексиране на списъци
3. Обхождане на списъци чрез for и while
2 Задачите се намират в week2/ Aлгоритми - въведение 1. Що е то алгоритъм?
3 Задачите се намират в week3/ Functions. Variable Scope. 1. Мотивация и интуиция за функциите.
2.Синтаксис на функциите.
3. Функции в различни примери.
4. Видимост на променливите. Глобални и Локални променливи.
3 Курсистите сами мислеха задачи Няма презентация Няма видео
3 Курсистите решаваха задачи с това, което са измислили Няма презентация Няма видео
4 Задачите се намират в week4/ Речници. 1. Мотивация и интуиция за речници.
2. Синтаксис на речници в Python
4 Задачите се намират в week4/ Решаване на задачи и алгоритми част втора. Вложени цикли. 1.Refresher на речниците.
2.Ретроспекция на задачите, които сме решавали досега.
3. Мотивация за вложени цикли.
5 Задачите се намират в week5/ Още задачи с вложени цикли.. Що е то матрица? 1. Вложени цикли с повече от 1 списък
2. Матрици и вложени списъци
5 Задачите се намират в week5/ Решаване на задачи с вложени цикли Няма нов материал / видео
6 Стефан Кънев ни беше на гости Стефан Кънев ни беше на гости Стефан Кънев ни беше на гости
6 Решаване на задачи със списъци и низове Няма мов материал / видео Няма нов материал / видео
7 Решаване на задачи с целия материал до момента, измислени от курсистите Няма мов материал / видео Няма нов материал / видео
8 Въведение в дискретната математика Занятията бяха на бяла дъска. Занятията бяха на бяла дъска.
9 Решаване на задачи с множества и сортиращи алгоритми Очаква се Oчаква се
10 Финален изпит и край на курса Финален изпит и край на курса Финален изпит и край на курса

Програмата

Курсът ще бъде с продължитеност 3 месеца, като:

  • Започва на 12ти януари и завършва на 1ви април.
  • Веднъж на седмица ще имаме занятия 2 пъти - понеделник и сряда.
  • През една седмица, ще имаме занятия 3 пъти - понеделник, сряда и събота.

В курсът ще се изучават основи на програмирането, като за целта ще използваме:

  • Python като език за програмиране (версия 3.4)
  • Елементи от Дискретната Математика - като фундаментални и необходими знания. Ще си говорим за множества, функции, релации, наредби и други интересни неща.
  • Python IDLE за среда за разработка през първия месец.
  • Sublime Text версия 3 за текстов редактор за втория и третия месец.
  • Операционната система ще бъде по избор, като ще работим главно под Windows. Linux-а ще дойде в курса по Програмиране 101.

Първи Mесец

  • Ще започнем с мотивация и поглед над света на програмистите. Ще покажем и разкажем каква е разликата между различните професии, свързани с разработката на софтуер. Ще покажем и примерния път, по който човек трябва да мине, за да стигне до една от тези професии.
  • Ще разкажем какво ни чака и ще настроим Python и Python IDLE, който ще използваме през първия месец за писане на код.
  • Започваме със основите - Как да говорим на компютъра на език, близък до английския? Как да даваме определени команди и как да сме сигурни, че компютъра ни разбира. print ще стане нашият нов най-добър приятел в света на Python.
  • Основен синтаксис на Python - променливи и изрази с променливи. Каква е разликата между 1 ред код и 10 реда код? Какво наричаме програма?
  • Какво е оператор, какво са операнди и защо ги използваме още от първи клас в часовете по математика, без да знаем?
  • Как програмата ни взима решения? Истина, Лъжа. Синтаксис на if / elif / else конструкция.
  • Оператори за работа с Истини и Лъжи. Истини в таблици или Таблица на истините. Ще комбинираме True и False и ще получаваме различни резултати.
  • Писане на текст в компютърна програма - работа с низове и различни оператори за тях.
  • Основните типове в Python или как Python прави разлика между число, низ, истина или лъжа?
  • Ще решаваме задачи с всичко научено до тук.
  • Ще завършим с една Zen Философска лекция, свързана с данните, входно-изходни операции и как нашата програма взима данни, обработва ги и праща на някъде другаде.

Втори Месец

  • Ще видим как може да представим колекция от типовете, които видяхме до сега. Много числа? Много низове? Много истини или пък много лъжи? Ще се запознаем с концепцията за списъци и колекции от неща.
  • За да работим добре със списъци, ще се запознаем със синтаксиса на for цикъла в Python и ще видим как да го използваме, за да не повтаряме дадена работа много пъти.
  • Започваме с дискрентата математика - множества и операции с множества. Какво представлява едно множество и какво може да правим с него? Ще се занимаваме със сечения, обединения, разлики на множества.
  • Как може да представим тези множества в Python с инструментите, които имаме до момента? Ще използваме списъци, за да направиш същите операции, които направихме на хартия с множествата от предната тема.
  • Ако има Кралица в света на програмирането, то функцията би била много добър кандидат за титлата. Ще погледнем функциите през погледа на дискретната математика и ще решаваме интересни задачи с тях.
  • Ще се запознаем с функциите в Python - синтаксис и смисъл от тях. Ще започнем да правим разлика между print и return
  • Следват релациите, погледни отново през Дискретната Математика. Ще порешаваме интересни неща с тях и ще видим какъв дълбок смисъл може да намерим в релациите. Ще видим какво става като вземем множество от цели числа и релациите <, >, <=, >= межу две числа.
  • Ще се запознаем с абстрактния проблем, който много често се решава в програмирането - сортиране на поредица от нещa. Ще си поговорим за числа и низове като за начало.
  • Ще вдигнем нивото на абстракция и ще си говорим за модули в Python. Ще видим как изграждаме абстракция чрез функции и как изграждаме абстракция чрез модули. Ще вникнем в техния смисъл и причината за тяхното съществуване и използване.
  • Ще си поговорим за входно/изходи операции и ще се запознаем с термина I/O (Input-Output). Ще видим как имаме I/O на ниво функция, на ниво модул и на ниво програма.
  • Ще се запознаем с концепцията за файл и файлова система. Ще се преместим от средата Python IDLE към текстовия редактор Sublime.
  • Ще порешаваме задачи с файлове, илюстрирайки концепцията за I/O.
  • Ще си поговорим отново за типове и типови преобразувания. Ще видим разликата между Implicit и Explicit Type Casting и какво мисли Python по въпроса.
  • Като за финал, ще решаваме задачи с наученото досега.

Трети Месец

  • Ще се запознаем с речниците - {} - в Python, като средство, чрез което може да пазим данни под формата на таблица, където ключът е низ. Ще видим как може да добавяме, премахваме и обхождаме стойности в един речник.
  • Ще си поговорим за оперативна памет и твърд диск. Къде се пазят данните ни и какво се случва в тях? Как преобразуваме данните от един вид в друг вид? Ще се запознаем с термините Сериализация и Десериализация.
  • Ще си поговорим за абстракция на ниво данни. Ще кажем какво представлява понятието Структури от данни. Ще направим разлика между Интерфейс и Реализация
  • Ще се запознаем с още една абстракна задача за решаване - Търсене на игла в купа сено. Как решаваме този проблем? Двоично търсене и Линейно търсене като вид алгоритъм за решаване на абстракния проблем за търсенето.
  • Ще комбинираме абстракция проблем за сортиране с абстракния проблем за търсене и ще решим задачи, включващи и двете неща.
  • Ще си поговорим за стил на писане на код и защо е важно да пишем така, че ние да го разчитаме. PEP8
  • До края на месеца ще решаваме много задачи с наученото досега.
  • Ще завършим с идеята и концепцията зад обектния модел и Обектно Ориентираното Програмиране.