Make links look nice with images
- rename all *_00_lecture.ipynb files into *_00_content.ipynb - add links to YouTube videos at the end of the chapters - add links to mybinder for all chapters and exercises - remove the old chapter 8 on mappings & sets - update the README.md and make it look nicer
This commit is contained in:
parent
a49b0307a0
commit
e1a0dd7924
38 changed files with 3152 additions and 11770 deletions
201
README.md
201
README.md
|
|
@ -1,91 +1,143 @@
|
|||
# An Introduction to Python and Programming
|
||||
|
||||
The purpose of this repository is to serve as an interactive "book" for a
|
||||
The purpose of this repository is to serve as an interactive book for a
|
||||
thorough introductory course on programming in the
|
||||
**[Python](https://www.python.org/)** language.
|
||||
**[Python <img height="12" style="display: inline-block" src="static/link_to_py.png">](https://www.python.org/)**
|
||||
language.
|
||||
|
||||
The course's **main goal** is to **prepare** the student for **further
|
||||
studies** in the "field" of **data science**.
|
||||
|
||||
The "chapters" are written in [Jupyter notebooks](https://jupyter-notebook.readthedocs.io/en/stable/)
|
||||
which are a de-facto standard for exchanging code and results among data
|
||||
The chapters are laid out in [Jupyter notebooks <img height="12" style="display: inline-block" src="static/link_to_jp.png">](https://jupyter-notebook.readthedocs.io/en/stable/)
|
||||
which are a de-facto standard for exchanging code and analyses among data
|
||||
science professionals and researchers.
|
||||
They can be viewed in a plain web browser with the help of
|
||||
[nbviewer](https://nbviewer.jupyter.org/):
|
||||
They can be viewed in a web browser either statically on [nbviewer <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/tree/master/)
|
||||
or interactively (i.e., you can execute the code) on [mybinder <img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab):
|
||||
|
||||
- *Introduction*: Start up
|
||||
([video](https://www.youtube.com/watch?v=YTU8jaG27Xk)
|
||||
| [lecture](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/00_intro_00_lecture.ipynb)
|
||||
| [review](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/00_intro_01_review.ipynb)
|
||||
| [exercises](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/00_intro_02_exercises.ipynb))
|
||||
- *Chapter 0*: Introduction
|
||||
([content <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/00_intro_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/00_intro_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/watch?v=YTU8jaG27Xk&list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)
|
||||
| [review <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/00_intro_01_review.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/00_intro_01_review.ipynb)
|
||||
| [exercises <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/00_intro_02_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/00_intro_02_exercises.ipynb))
|
||||
- **Part A: Expressing Logic**
|
||||
- *Chapter 1*: Elements of a Program
|
||||
([video](https://www.youtube.com/watch?v=v0lk1Qfaw8Y)
|
||||
| [lecture](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/01_elements_00_lecture.ipynb)
|
||||
| [review](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/01_elements_01_review.ipynb)
|
||||
| [exercises](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/01_elements_02_exercises.ipynb))
|
||||
([content <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/01_elements_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/01_elements_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/watch?v=v0lk1Qfaw8Y&list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)
|
||||
| [review <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/01_elements_01_review.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/01_elements_01_review.ipynb)
|
||||
| [exercises <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/01_elements_02_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/01_elements_02_exercises.ipynb))
|
||||
- *Chapter 2*: Functions & Modularization
|
||||
([video](https://www.youtube.com/watch?v=j4Xn8QFysmc)
|
||||
| [lecture](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/02_functions_00_lecture.ipynb)
|
||||
| [review](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/02_functions_01_review.ipynb)
|
||||
| [exercises](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/02_functions_02_exercises.ipynb))
|
||||
([content <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/02_functions_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/02_functions_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/watch?v=j4Xn8QFysmc&list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)
|
||||
| [review <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/02_functions_01_review.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/02_functions_01_review.ipynb)
|
||||
| [exercises <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/02_functions_02_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/02_functions_02_exercises.ipynb))
|
||||
- *Chapter 3*: Conditionals & Exceptions
|
||||
([video](https://www.youtube.com/watch?v=aDbblINzuGQ)
|
||||
| [lecture](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/03_conditionals_00_lecture.ipynb)
|
||||
| [review](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/03_conditionals_01_review.ipynb)
|
||||
| [exercises](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/03_conditionals_02_exercises.ipynb))
|
||||
([content <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/03_conditionals_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/03_conditionals_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/watch?v=aDbblINzuGQ&list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)
|
||||
| [review <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/03_conditionals_01_review.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/03_conditionals_01_review.ipynb)
|
||||
| [exercises <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/03_conditionals_02_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/03_conditionals_02_exercises.ipynb))
|
||||
- *Chapter 4*: Recursion & Looping
|
||||
([video](https://www.youtube.com/watch?v=jT6hr4vOJks)
|
||||
| [lecture](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/04_iteration_00_lecture.ipynb)
|
||||
| [review](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/04_iteration_01_review.ipynb)
|
||||
| [exercises 1](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/04_iteration_02_exercises.ipynb)
|
||||
| [exercises 2](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/04_iteration_03_exercises.ipynb))
|
||||
([content <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/04_iteration_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/04_iteration_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/watch?v=jT6hr4vOJks&list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)
|
||||
| [review <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/04_iteration_01_review.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/04_iteration_01_review.ipynb)
|
||||
| [exercises 1 <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/04_iteration_02_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/04_iteration_02_exercises.ipynb)
|
||||
| [exercises 2 <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/04_iteration_03_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/04_iteration_03_exercises.ipynb))
|
||||
- **Part B: Managing Data and Memory**
|
||||
- *Chapter 5*: Numbers & Bits
|
||||
([video](https://www.youtube.com/watch?v=nB00WGCnVjg)
|
||||
| [lecture](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/05_numbers_00_lecture.ipynb)
|
||||
| [review](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/05_numbers_01_review.ipynb)
|
||||
| [exercises](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/05_numbers_02_exercises.ipynb))
|
||||
([content <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/05_numbers_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/05_numbers_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/watch?v=nB00WGCnVjg&list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)
|
||||
| [review <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/05_numbers_01_review.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/05_numbers_01_review.ipynb)
|
||||
| [exercises <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/05_numbers_02_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/05_numbers_02_exercises.ipynb))
|
||||
- *Chapter 6*: Text & Bytes
|
||||
([video](https://www.youtube.com/watch?v=3WTRlgN09sM)
|
||||
| [lecture](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/06_text_00_lecture.ipynb)
|
||||
| [review](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/06_text_01_review.ipynb)
|
||||
| [exercises](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/06_text_02_exercises.ipynb))
|
||||
([content <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/06_text_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/06_text_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/watch?v=3WTRlgN09sM&list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)
|
||||
| [review <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/06_text_01_review.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/06_text_01_review.ipynb)
|
||||
| [exercises <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/06_text_02_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/06_text_02_exercises.ipynb))
|
||||
- *Chapter 7*: Sequential Data
|
||||
([video](https://www.youtube.com/watch?v=nx2sCDoeC3I)
|
||||
| [lecture](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/07_sequences_00_lecture.ipynb)
|
||||
| [review](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/07_sequences_01_review.ipynb)
|
||||
| [exercises](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/07_sequences_02_exercises.ipynb))
|
||||
([content <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/07_sequences_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/07_sequences_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/watch?v=nx2sCDoeC3I&list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)
|
||||
| [review <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/07_sequences_01_review.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/07_sequences_01_review.ipynb)
|
||||
| [exercises <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/07_sequences_02_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/07_sequences_02_exercises.ipynb))
|
||||
- *Chapter 8*: Map, Filter, & Reduce
|
||||
([video](https://www.youtube.com/watch?v=ePzzq2YBWjY)
|
||||
| [lecture](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/08_mfr_00_lecture.ipynb)
|
||||
| [review](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/08_mfr_01_review.ipynb)
|
||||
| [exercises](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/08_mfr_02_exercises.ipynb))
|
||||
([content <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/08_mfr_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/08_mfr_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/watch?v=ePzzq2YBWjY&list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)
|
||||
| [review <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/08_mfr_01_review.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/08_mfr_01_review.ipynb)
|
||||
| [exercises <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/08_mfr_02_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/08_mfr_02_exercises.ipynb))
|
||||
- *Chapter 9*: Mappings & Sets
|
||||
([video](https://www.youtube.com/watch?v=vbp0svA35TE)
|
||||
| [lecture](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/08_mappings_00_lecture.ipynb)
|
||||
| [review](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/08_mappings_01_review.ipynb)
|
||||
| [exercises](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/08_mappings_02_exercises.ipynb))
|
||||
([content <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/09_mappings_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/09_mappings_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/watch?v=vbp0svA35TE&list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)
|
||||
| [review <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/09_mappings_01_review.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/09_mappings_01_review.ipynb)
|
||||
| [exercises <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/09_mappings_02_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/09_mappings_02_exercises.ipynb))
|
||||
- *Chapter 10*: Classes & Instances
|
||||
([content <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/10_classes_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/10_classes_00_content.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/watch?v=ibDT0uOAOTI&list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f)
|
||||
| [review <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/10_classes_01_review.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/10_classes_01_review.ipynb)
|
||||
| [exercises <img height="12" style="display: inline-block" src="static/link_to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/10_classes_02_exercises.ipynb)
|
||||
[<img height="12" style="display: inline-block" src="static/link_to_mb.png">](https://mybinder.org/v2/gh/webartifex/intro-to-python/master?urlpath=lab/tree/10_classes_02_exercises.ipynb))
|
||||
|
||||
However, it is recommended that students **install Python and Jupyter
|
||||
locally** and run the code in the notebooks on their own.
|
||||
This way, the student can play with the code and learn more efficiently.
|
||||
Precise **installation instructions** are either in the [00th notebook](
|
||||
https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/00_intro_00_lecture.ipynb)
|
||||
However, it is recommended to **install Python and [Jupyter <img height="12" style="display: inline-block" src="static/link_to_jp.png">](https://jupyter.org)
|
||||
locally** and run the code in the notebooks on one's own machine in the [JupyterLab <img height="12" style="display: inline-block" src="static/link_to_jp.png">](https://jupyterlab.readthedocs.io/en/stable/)
|
||||
application.
|
||||
Precise **installation instructions** are either in [Chapter 0 <img height="12" style="display: inline-block" src="static/link_to_nb.png">](
|
||||
https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/master/00_intro_00_content.ipynb#Installation)
|
||||
or further below.
|
||||
|
||||
A playlist with all video presentations of the individiual chapters can be found [here](https://www.youtube.com/playlist?list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f).
|
||||
|
||||
Feedback is encouraged and will be incorporated.
|
||||
Open an issue in the [issues tracker](https://github.com/webartifex/intro-to-python/issues)
|
||||
or initiate a [pull request](https://help.github.com/en/articles/about-pull-requests)
|
||||
### Feedback
|
||||
|
||||
Feedback **is highly encouraged** and will be incorporated.
|
||||
Simply open an issue in the [issues tracker <img height="12" style="display: inline-block" src="static/link_to_gh.png">](https://github.com/webartifex/intro-to-python/issues)
|
||||
or initiate a [pull request <img height="12" style="display: inline-block" src="static/link_to_gh.png">](https://help.github.com/en/articles/about-pull-requests)
|
||||
if you are familiar with the concept.
|
||||
Simple issues that anyone can **help fix** are, for example,
|
||||
**spelling mistakes** or **broken links**.
|
||||
If you feel that some topic is missing entirely, you may also mention that.
|
||||
The materials here are considered a **permanent work-in-progress**.
|
||||
|
||||
A "Show HN" post about this introduction was made on [Hacker News](https://news.ycombinator.com/item?id=22669084)
|
||||
A "Show HN" post about this course was made on [Hacker News <img height="12" style="display: inline-block" src="static/link_to_hn.png">](https://news.ycombinator.com/item?id=22669084)
|
||||
and some ideas for improvement were discussed there.
|
||||
|
||||
|
||||
## Prerequisites
|
||||
### Videos
|
||||
|
||||
Presentations on the chapters are available either via the individual links to
|
||||
[YouTube <img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com)
|
||||
above or this [playlist <img height="12" style="display: inline-block" src="static/link_to_yt.png">](https://www.youtube.com/playlist?list=PL-2JV1G3J10lQ2xokyQowcRJI5jjNfW7f).
|
||||
|
||||
|
||||
### Prerequisites
|
||||
|
||||
To be suitable for *total beginners*, there are *no* formal prerequisites.
|
||||
It is only expected that the student has:
|
||||
|
|
@ -93,7 +145,7 @@ It is only expected that the student has:
|
|||
- a *solid* understanding of the **English language**,
|
||||
- knowledge of **basic mathematics** from high school,
|
||||
- the ability to **think conceptually** and **reason logically**, and
|
||||
- the willingness to **invest 2-4 hours a day for a month**.
|
||||
- the willingness to **invest around 90 - 120 hours on this course**.
|
||||
|
||||
|
||||
## Installation
|
||||
|
|
@ -109,8 +161,8 @@ Just go to the [download](https://www.anaconda.com/distribution/#download-sectio
|
|||
section and install the latest version (i.e., *2019-10* with Python 3.7 at the
|
||||
time of this writing) for your operating system.
|
||||
|
||||
Then, among others, you will find an entry "Anaconda Navigator" in your start
|
||||
menu like below.
|
||||
Then, among others, you will find an entry "[Anaconda Navigator](https://docs.anaconda.com/anaconda/navigator/)"
|
||||
in your start menu like below.
|
||||
Click on it.
|
||||
|
||||
<img src="static/anaconda_start_menu.png" width="30%">
|
||||
|
|
@ -123,9 +175,8 @@ Now, click on "JupyterLab."
|
|||
|
||||
A new tab in your web browser opens with the website being "localhost" and some
|
||||
number (e.g., 8888).
|
||||
This is the [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/)
|
||||
application that is used to display and run the Jupyter notebooks mentioned
|
||||
above.
|
||||
This is the [JupyterLab <img height="12" style="display: inline-block" src="static/link_to_jp.png">](https://jupyterlab.readthedocs.io/en/stable/)
|
||||
application that is used to display and run the notebooks mentioned above.
|
||||
On the left, you see the files and folders in your local user folder.
|
||||
This file browser works like any other.
|
||||
In the center, you have several options to launch (i.e., "create") new files.
|
||||
|
|
@ -144,14 +195,14 @@ JupyterLab.
|
|||
Python can also be installed in a "pure" way as obtained from its core
|
||||
development team (i.e., without any third-party packages installed).
|
||||
However, this may be too "advanced" for a beginner as it involves working
|
||||
with a [terminal emulator](https://en.wikipedia.org/wiki/Terminal_emulator),
|
||||
with a [terminal emulator <img height="12" style="display: inline-block" src="static/link_to_wiki.png">](https://en.wikipedia.org/wiki/Terminal_emulator),
|
||||
which looks like the one in the picture below and is used *without* a mouse by
|
||||
typing commands into it.
|
||||
|
||||
<img src="static/terminal.png" width="50%" align="center">
|
||||
|
||||
Assuming that you already have a working version of Python 3.7 or higher
|
||||
installed (cf., the official [download page](https://www.python.org/downloads/)),
|
||||
installed (cf., the official [download page <img height="12" style="display: inline-block" src="static/link_to_py.png">](https://www.python.org/downloads/)),
|
||||
the following summarizes the commands to be typed into a terminal emulator to
|
||||
get the course materials up and running on a local machine without the
|
||||
Anaconda Distribution.
|
||||
|
|
@ -167,7 +218,7 @@ This creates a new folder *intro-to-python* with all the materials of this
|
|||
repository in it.
|
||||
|
||||
Inside this folder, it is recommended to create a so-called **virtual
|
||||
environment** with Python's [venv](https://docs.python.org/3/library/venv.html)
|
||||
environment** with Python's [venv <img height="12" style="display: inline-block" src="static/link_to_py.png">](https://docs.python.org/3/library/venv.html)
|
||||
module.
|
||||
This must only be done the first time.
|
||||
A virtual environment is a way of *isolating* the third-party packages
|
||||
|
|
@ -185,7 +236,7 @@ environment (*venv* is the name chosen before).
|
|||
|
||||
- `source venv/bin/activate`
|
||||
|
||||
This may change how the terminal's [command prompt](https://en.wikipedia.org/wiki/Command-line_interface#Command_prompt)
|
||||
This may change how the terminal's [command prompt <img height="12" style="display: inline-block" src="static/link_to_wiki.png">](https://en.wikipedia.org/wiki/Command-line_interface#Command_prompt)
|
||||
looks.
|
||||
|
||||
[poetry](https://poetry.eustace.io/docs/) and [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/)
|
||||
|
|
@ -193,7 +244,7 @@ are popular tools to automate the described management of virtual environments.
|
|||
|
||||
After activation for the first time, you must install the project's
|
||||
**dependencies** (= the third-party packages needed to run the code), most
|
||||
notably [JupyterLab](https://pypi.org/project/jupyterlab/) in this project
|
||||
notably [JupyterLab <img height="12" style="display: inline-block" src="static/link_to_jp.png">](https://pypi.org/project/jupyterlab/) in this project
|
||||
(the "python -m" is often left out [but should not be](https://snarky.ca/why-you-should-use-python-m-pip/);
|
||||
if you have poetry installed, you may just type `poetry install` instead).
|
||||
|
||||
|
|
@ -209,11 +260,11 @@ This opens a new tab in your web browser just as above.
|
|||
|
||||
#### Interactive Presentation Mode & Live Coding
|
||||
|
||||
The *requirements.txt* file also installs the [nbextensions](https://github.com/ipython-contrib/jupyter_contrib_nbextensions)
|
||||
for Jupyter notebooks, the [black](https://github.com/psf/black) code
|
||||
formatting tool (incl. the [blackcellmagic](https://github.com/csurfer/blackcellmagic)
|
||||
Jupyter extension) and the [RISE](https://github.com/damianavila/RISE) Jupyter
|
||||
extension.
|
||||
The *requirements.txt* file also installs the [nbextensions <img height="12" style="display: inline-block" src="static/link_to_gh.png">](https://github.com/ipython-contrib/jupyter_contrib_nbextensions)
|
||||
for Jupyter notebooks, the [black <img height="12" style="display: inline-block" src="static/link_to_gh.png">](https://github.com/psf/black)
|
||||
code formatting tool (incl. the [blackcellmagic <img height="12" style="display: inline-block" src="static/link_to_gh.png">](https://github.com/csurfer/blackcellmagic)
|
||||
Jupyter extension) and the [RISE <img height="12" style="display: inline-block" src="static/link_to_gh.png">](https://github.com/damianavila/RISE)
|
||||
Jupyter extension.
|
||||
With them, the instructor can easily re-format code in a class session and
|
||||
execute code in presentation mode.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue