# Python course

This repository contains some notes and exercises for learning python3.

## Initiation to programming

* Day 1
	* What we'll learn
	*   Concepts
	*   Syntax
	*   Tools
	*     Writing code
	*     Running code
	* The python3 shell
	* Installing pycharm
	* Your first project
	*     c
	*     c
	*     c++
	*     javascript
	*   How to execute
	*   Simple printing
	*   🏃 Try it
	*   🏃 Try it
	*   String replacement
	*   String formatting
	*   Some links to read up
	* Taking input
	*   Some functions are blocking
	*   Functions can return something
	*   🏃 Try it
	*   Functions can take arguments
	*   🏃 Try it
	* Taking input and evaluation
	*   Conditional logic
	*   Class string methods
	*   Some links to read up on
	* Coding challenge - Celsius to Fahrenheit converter
* Day 2
	* A text based adventure game
	* Creating your own functions
	*   Functions that *do* something
	*   Variable scope
	*   Functions that *return* something
	*   🏃 Try it
	*   Some links to read up on
	* Coding challenge - Pretty Print
	* Using the standard library
	* Coding challenge - Memento Mori calculator
* Day 3
	* Writing your first library
	*   🏃 Try it
	*   How do we write libraries?
	*   What is `__name__ == "__main__"`?
	*   Anatomy of a program
	*   🏃 Try it
	* While loop
	*   🏃 Try it
	* Coding challenge - Guess the number
	*   🏃 Try it
* Day 4
	* Lists
	*   Creating lists
	*   List methods
	*   🏃 Try it
	*   Picking elements and slicing lists
	*   🏃 Try it
	* For loop
	* Coding challenge - Cheerleader chant
	* Coding challenge - ROT13
	*   🏃 Try it
	* List comprehension
* Day 5
	* Handling files
	*   Reading from a file
	*     In-line way
	*     Pythonic way
	*   Writing to a file
	* Coding challenge - Login generator
	* Dictionaries as data containers
	* Coding challenge - Task manager
	* Text based databases
* Day 6
	* Now for some useful scripting
* Day 7
	* Creating our own objects
	*   First some *abstract* examples
	*   🏃 Try it
	*   Class inheritance
	*   🏃 Try it
	*   A *practical* example
	*   Now some *practical* improvements
	*     Improve the login generator
	*     Improve the task manager
* Day 8
	* Infinite programs
	*   Logic breakdown of a simple game
	*   Trivial pursuit multiple choice game
	*     Introduction to the `requests` library
	*   Threading
* Day 9
	* GUI programming
	*   wxpython helloworld
	*   wxpython guess the number
	*   MVC design pattern
* Day 10-12
	* Coding challenge - Login generator with GUI
	* Coding challenge - Trivial pursuit with GUI

## Linux system administrator

**TODO**
