Skip to content

tmetodie/Programming101-Python-2016

 
 

Repository files navigation

Programming101-Python

Course materials & problems for HackBulgaria's Programming 101 with Python. Starting Octomber 2016.

Partners

The course is happening thanks to:

Experian Telebid Pro Nemetschek Bulgaria

Course weeks

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

Course Program

Week 1

  • 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

Week 2

  • 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

Week 3

  • Getting familiar with basic Python OOP concepts
  • Introduction to unittests

Week 4

  • Function(positional and keyword) arguments
  • Source control systems - working with git and GitHub
  • Working in teams with git and GitHub - branches, merges, pull requests
  • Building large console applications with bigger class hierarchy

Week 5

  • Introduction to TDD
  • Linked List and Double Linked List
  • Binary Search

Week 6

  • Trees, Stack, Queue
  • BFS and DFS algorithms

Week 7

  • Working with Graphs
  • Finding the shortest path in Graphs
  • pip
  • virtualenv
  • Solving OOP related problems

Week 8

  • Introducing relational database with pure SQL.
  • CRUD, JOIN and GROUP BY

Week 9

  • Working with pure SQL - making databases & queries
  • Combining Python & SQL - persisting data & state.

Week 10

  • Combining Python & SQL
  • Introducing & understanding decorators.
  • Understanding the concept behind Python modules & init.py

Week 11

  • Combining Python & SQL - persisting data & state.
  • Working with security concepts.
  • Mixins, Multiple inheritance

Week 12

  • Introducing the iterator pattern and generators
  • Introducing & understanding with blocks.
  • Meta-programming with Python

Week 13

  • 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

Week 14

  • World Wide Web - HTTP, Servers

Week 15

  • Django

About

Course materials & problems for HackBulgaria's Programming 101 with Python. Starting October 2016.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 96.0%
  • HTML 4.0%