Course materials & problems for HackBulgaria's Programming 101 with Python. Starting Octomber 2016.
The course is happening thanks to:
| Week | Date | Tasks | Presentations |
|---|---|---|---|
| 1 | Monday - 17.10 | Tasks for week1 | Intro |
| 1 | Wednesday - 19.10 | Tasks for week1 | Data Structures and Comprehensions |
| 1 | Friday - 21.10 | Tasks for week1 | |
| 2 | Monday - 24.10 | Tasks for week2 | |
| 2 | Wednesday - 26.10 | Tasks for week2 | Reading/writing files, os, sys, main |
| 3 | Monday - 31.10 | Tasks for week3 | OOP |
| 3 | Wednesday - 02.11 | Tasks for week3 | Dive into OOP |
| 3 | Friday - 04.11 | Tasks for week3 | Unit tests |
| 4 | Monday - 07.11 | Tasks for week4 | Arguments, git and Github |
| 4 | Wednesday - 09.11 | Tasks for week4 |
- Installing Linux - basic shell commands.
- Python tooling on Linux
- PEP8
- Text Editors - vim, sublime, atom, etc..
- Solving Python problems in order to get familiar with the language
- Getting familiar with Python syntax and basic language & data structures
- Take a look at other languages: Java, Ruby, Node, JS, etc...
- Reading and writing files, JSON
- Getting familiar with basic Python OOP concepts
- Introduction to unittests
- Function(positional and keyword) arguments
- Source control systems - working with
gitand GitHub - Working in teams with
gitand GitHub - branches, merges, pull requests - Building large console applications with bigger class hierarchy
- Introduction to TDD
- Linked List and Double Linked List
- Binary Search
- Trees, Stack, Queue
- BFS and DFS algorithms
- Working with Graphs
- Finding the shortest path in Graphs
- pip
- virtualenv
- Solving OOP related problems
- Introducing relational database with pure SQL.
- CRUD, JOIN and GROUP BY
- Working with pure SQL - making databases & queries
- Combining Python & SQL - persisting data & state.
- Combining Python & SQL
- Introducing & understanding decorators.
- Understanding the concept behind Python modules & init.py
- Combining Python & SQL - persisting data & state.
- Working with security concepts.
- Mixins, Multiple inheritance
- Introducing the iterator pattern and generators
- Introducing & understanding with blocks.
- Meta-programming with Python
- Starting to implement our own abstraction over the database creation (homemade ORM)
- Understanding the need for an ORM
- Introducing & working with SQLAlchemy
- Making a simple query engine to fetch objects from the database
- World Wide Web - HTTP, Servers
- Django


