Add initial version of chapter 01's summary
This commit is contained in:
parent
5163c34d53
commit
777da3568d
2 changed files with 156 additions and 0 deletions
|
@ -39,6 +39,8 @@ Alternatively, the content can be viewed in a web browser
|
||||||
|
|
|
|
||||||
[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/develop/chapter_01_elements/03_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/develop/chapter_01_elements/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/develop?urlpath=lab/tree/chapter_01_elements/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/develop?urlpath=lab/tree/chapter_01_elements/03_exercises.ipynb)
|
||||||
|
|
|
||||||
|
[summary <img height="12" style="display: inline-block" src="static/link/to_nb.png">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/develop/chapter_01_elements/04_summary.ipynb)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
154
chapter_01_elements/04_summary.ipynb
Normal file
154
chapter_01_elements/04_summary.ipynb
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "slide"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"source": [
|
||||||
|
"\n",
|
||||||
|
"# Chapter 1: Elements of a Program"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "skip"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"source": [
|
||||||
|
"## TL;DR"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"metadata": {
|
||||||
|
"slideshow": {
|
||||||
|
"slide_type": "skip"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"source": [
|
||||||
|
"We end each chapter with a summary of the main points (i.e., **TL;DR** = \"too long; didn't read\"). The essence in this first chapter is that just as a sentence in a real language like English may be decomposed into its parts (e.g., subject, predicate, and objects), the same may be done with programming languages.\n",
|
||||||
|
"\n",
|
||||||
|
"- program\n",
|
||||||
|
" - **sequence** of **instructions** that specify how to perform a computation (= a \"recipe\")\n",
|
||||||
|
" - a \"black box\" that processes **inputs** and transforms them into meaningful **outputs** in a *deterministic* way\n",
|
||||||
|
" - conceptually similar to a mathematical function $f$ that maps some input $x$ to an output $y = f(x)$\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"- input (examples)\n",
|
||||||
|
" - data from a CSV file\n",
|
||||||
|
" - text entered on a command line\n",
|
||||||
|
" - data obtained from a database\n",
|
||||||
|
" - etc.\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"- output (examples)\n",
|
||||||
|
" - result of a computation (e.g., statistical summary of a sample dataset)\n",
|
||||||
|
" - a \"side effect\" (e.g., a transformation of raw input data into cleaned data)\n",
|
||||||
|
" - a physical \"behavior\" (e.g., a robot moving or a document printed)\n",
|
||||||
|
" - etc.\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"- objects\n",
|
||||||
|
" - distinct and well-contained areas/parts of the memory that hold the actual data\n",
|
||||||
|
" - the concept by which Python manages the memory for us\n",
|
||||||
|
" - can be classified into objects of the same **type** (i.e., same abstract \"structure\" but different concrete data)\n",
|
||||||
|
" - built-in objects (incl. **literals**) vs. user-defined objects (cf., [Chapter 11 <img height=\"12\" style=\"display: inline-block\" src=\"../static/link/to_nb.png\">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/develop/chapter_11_classes/00_content.ipynb))\n",
|
||||||
|
" - e.g., `1`, `1.0`, and `\"one\"` are three different objects of distinct types that are also literals (i.e., by the way we type them into the command line Python knows what the value and type are)\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"- variables\n",
|
||||||
|
" - storage of intermediate **state**\n",
|
||||||
|
" - are **names** referencing **objects** in **memory**\n",
|
||||||
|
" - e.g., `x = 1` creates the variable `x` that references the object `1`\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"- operators\n",
|
||||||
|
" - special built-in symbols that perform operations with objects in memory\n",
|
||||||
|
" - usually, operate with one or two objects\n",
|
||||||
|
" - e.g., addition `+`, subtraction `-`, multiplication `*`, and division `/` all take two objects, whereas the negation `-` only takes one\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"- expressions\n",
|
||||||
|
" - **combinations** of **variables** (incl. **literals**) and **operators**\n",
|
||||||
|
" - do *not* change the involved objects/state of the program\n",
|
||||||
|
" - evaluate to a **value** (i.e., the \"result\" of the expression, usually a new object)\n",
|
||||||
|
" - e.g., `x + 2` evaluates to the (new) object `3` and `1 - 1.0` to `0.0`\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"- statements\n",
|
||||||
|
" - instructions that **\"do\" something** and **have side effects** in memory\n",
|
||||||
|
" - (re-)assign names to (different) objects, *change* an existing object *in place*, or, more conceptually, *change* the state of the program\n",
|
||||||
|
" - usually, work with expressions\n",
|
||||||
|
" - e.g., the assignment statement `=` makes a name reference an object\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"- comments\n",
|
||||||
|
" - **prose** supporting a **human's understanding** of the program\n",
|
||||||
|
" - ignored by Python\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"- functions (cf., [Chapter 2 <img height=\"12\" style=\"display: inline-block\" src=\"../static/link/to_nb.png\">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/develop/chapter_02_functions/00_content.ipynb))\n",
|
||||||
|
" - named sequences of instructions\n",
|
||||||
|
" - the smaller parts in a larger program\n",
|
||||||
|
" - make a program more modular and thus easier to understand\n",
|
||||||
|
" - include [built-in functions <img height=\"12\" style=\"display: inline-block\" src=\"../static/link/to_py.png\">](https://docs.python.org/3/library/functions.html) like [print() <img height=\"12\" style=\"display: inline-block\" src=\"../static/link/to_py.png\">](https://docs.python.org/3/library/functions.html#print), [sum() <img height=\"12\" style=\"display: inline-block\" src=\"../static/link/to_py.png\">](https://docs.python.org/3/library/functions.html#sum), or [len() <img height=\"12\" style=\"display: inline-block\" src=\"../static/link/to_py.png\">](https://docs.python.org/3/library/functions.html#len)\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"- flow control (cf., [Chapter 3 <img height=\"12\" style=\"display: inline-block\" src=\"../static/link/to_nb.png\">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/develop/chapter_03_conditionals/00_content.ipynb) and [Chapter 4 <img height=\"12\" style=\"display: inline-block\" src=\"../static/link/to_nb.png\">](https://nbviewer.jupyter.org/github/webartifex/intro-to-python/blob/develop/chapter_04_iteration/00_content.ipynb))\n",
|
||||||
|
" - expression of **business logic** or an **algorithm**\n",
|
||||||
|
" - conditional execution of parts of a program (e.g., `if` statements)\n",
|
||||||
|
" - repetitive execution of parts of a program (e.g., `for`-loops)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "Python 3",
|
||||||
|
"language": "python",
|
||||||
|
"name": "python3"
|
||||||
|
},
|
||||||
|
"language_info": {
|
||||||
|
"codemirror_mode": {
|
||||||
|
"name": "ipython",
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"file_extension": ".py",
|
||||||
|
"mimetype": "text/x-python",
|
||||||
|
"name": "python",
|
||||||
|
"nbconvert_exporter": "python",
|
||||||
|
"pygments_lexer": "ipython3",
|
||||||
|
"version": "3.8.6"
|
||||||
|
},
|
||||||
|
"livereveal": {
|
||||||
|
"auto_select": "code",
|
||||||
|
"auto_select_fragment": true,
|
||||||
|
"scroll": true,
|
||||||
|
"theme": "serif"
|
||||||
|
},
|
||||||
|
"toc": {
|
||||||
|
"base_numbering": 1,
|
||||||
|
"nav_menu": {},
|
||||||
|
"number_sections": false,
|
||||||
|
"sideBar": true,
|
||||||
|
"skip_h1_title": true,
|
||||||
|
"title_cell": "Table of Contents",
|
||||||
|
"title_sidebar": "Contents",
|
||||||
|
"toc_cell": false,
|
||||||
|
"toc_position": {
|
||||||
|
"height": "calc(100% - 180px)",
|
||||||
|
"left": "10px",
|
||||||
|
"top": "150px",
|
||||||
|
"width": "303.333px"
|
||||||
|
},
|
||||||
|
"toc_section_display": false,
|
||||||
|
"toc_window_display": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 4
|
||||||
|
}
|
Loading…
Reference in a new issue