- Introducing basic git usage - how to install, configure and clone stuff.
- Introducing the editors we are going to work with - Sublime Text & Atom
- We will start with basic Python tasks, to get familiar with the syntax and basic Python structures
- Introducing PEP8 formatting & plugins. Getting religious about PEP8.
- Introducing Linux & the shell - basic commands. We will install and compile a lot of things!
- Introducing TDD (Test Driven Development) as a way of living & coding. Getting religious about TDD.
- Solving lots of Python problems with TDD.
- Introducing OOP concepts in Python & solving more abstract & complex problems with OOP & TDD
- Introducing Database concepts with Python and
sqlite3
- Introducing teamwork problems & leveling up our git skills - working with branches, merges & pull requests.
- Solving team problems, using Git, Python's OOP and TDD
- Introducing to basic security concepts - SQL injections, hash functions & password hashing, bruteforce protection.
- Introducing Python's
SQLAlchemy
ORM - working with more complex database problems. - Introducing basic web programming concepts - HTTP, HTML * CSS.
- Introducing the
Django
framework for web development - implementing a web application that works with database. - Learning how to deploy our web application - http servers & configuration.
- Intoducing to multithreading and networking with Python.
- Course introduction
- Algorithm analysis
- Execution instructions
- Asymptotic analysis
- Algorithm complexity and Big Oh notation
- Best/wrost case analysis
- Linear data structures
- Array
- List
- Vector
- Queue/Stack
- Linear search
- Binary search
- Different data types - integers/floats
- Different structures - arrays/range of numbers
- Ternary search
- Interpolation search
- Hashing
- Hash function
- Hash table
- Bloom filter
- String algorithms
- Trie
- Rolling hash
- Run-length encoding
- Burrows-Wheeler transform
- Knuth-Morris-Pratt
- Randomized algorithms - Monte Carlo and Las Vegas
- Dynamic programming