Skip to content

HackBulgaria/Programming0-1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
  • До края на месеца ще решаваме много задачи с наученото досега.
  • Ще завършим с идеята и концепцията зад обектния модел и Обектно Ориентираното Програмиране.

About

First edition of Programming 0

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages