http://www.pythonlearn.com/ materials in support of Python for Informatics: Exploring Information book
http://pythontutor.com/ LEARN programming by visualizing code execution
- Iteration — Comprehensive guide for iteration in Python with examples.
- Iteration — source 2 — Another guide to complement the first one.
- The guess and check pattern — Youtube — Video explaining this concept.
- Bisection method — Wikipedia — Broad explanation.
- While statements — In depth guide for the while Statements, good for the beginner and for the experienced programmer.
- How to stop an infinite loop — (now that we learned the while loop…) Try CTRL + C If it doesn’t work, CTRL + C + ENTER or CTRL + Pause/Break.
- Loop with a Decrementing Counter — Little bit of explanation of decrementing function.
- Exhaustive enumeration — Explanation.
- Python loops — Clear representation of the concept and further reading links for the «for loop» and other loop related information.
- Floating point numbers — Youtube — Video explaining the subject (couldn’t watch it so I’m not sure if it’s helpful).
- Why can’t decimal numbers be represented exactly in binary? — StackOverflow — Discussion on the subject, may help understanding the problem.
- The Newton-Raphson method — Already the Babylonians knew how to approximate square roots, so you should too.
- Levels of programming languages — Easy and short explanation of the subject however some of it may be misleading.
- High level vs. low level languages — Long discussion with different directions.
- Compiled and interpreted languages — Youtube — Short explanation video.
- Differences between compiled and interpreted languages — Detailed article with various examples and language comparisons.
- Shell — «Sometimes called command shell, a shell is the command processor interface. The command processor is the program that executes operating system commands. The shell, therefore, is the part of the command processor that accepts commands. After verifying that the commands are valid, the shell sends them to another part of the command processor to be executed.» Taken from Wedopedia
- Command-line interpreter — Explanation of the term including shell.
- Picking an Interpreter — Simple and easy to understand article about different interpreters for Python (I believe canopy uses CPython but I can be wrong).
- Modular arithmetic — Video explaining the modulo concept. It can be chalanging idea to understand at first but it holds great power.
- Order of evaluation — Table lists the order of operation (precedence rules) for Python operators. Including advanced topics that will be helpfull later in the course.
- Python strings — A guide to using strings in python, contains advanced material that may be usefull later in the course.
- Asking questions — Beginner guide for using raw_input and some good Q&A in the comment section.
- Efficient string concatenation in Python — Very in depth analysis of different methods for string concatenation, might be usefull very late in the course.
- How to properly comment your code — MIT’s quick guide for commenting code.
- Coding without comments — Advanced discussion on commenting more useful for experienced programmers.
- Indenting code — Simple beginner friendly guide.
- If statements — Starting with basic explanation and examples and progress to very complicated scripts.
- Instructions per second — Wikipedia
- How computers work: computation — Youtube — Youtube video explaining some topics covered in the lecture.
- The history of digital storage — Interesting infographic illustrating the evolution of digital storage.
- Is there a perfect algorithm for chess? — StackOverflow — Insightful discussion.
- What is cryptography? — A basic explanation of cryptography and a more advanced explanation why some encryption is too hard to crack.
- Impossible programs — Not so basic explanation of the impossible program.
- Declarative and imperative knowledge — «The contrast between function and procedure is a reflection of the general distinction between describing properties of things and describing how to do things, or, as it is sometimes referred to, the distinction between declarative knowledge and imperative knowledge.» (-SICP)
- Methods of computing square roots — Wikipedia
- Real proper custard — Custard recipe.
- The baby: the world’s first stored-program computer
- A learning model of simple computing machine architecture — Scientific article about basic machine architecture.
- Alan turing six primitives
- What is a turing machine?
- Semantics — For a deeper understanding of the term.
- In terms of programming, what do semantics mean? — StackOverflow — Easy to understand explanation of syntax, semantics, and static semantic defenitions.
- Defensive programming — Advanced article about defensive programming in software development process.
- «Approximate timing for various operations on a typical PC» Taken from Teach Yourself Programming in Ten Years
Online books, tutorials and reading materials
- Invent with Python — Another recourse for further reading and exploration of development using Python.
- A Byte of Python — Good python book for beginners as well as others.
- Online Python Tutor — To have better understanding about the Python code you written, also learn programming by visualizing Python code execution. (It supports both Python 2.7 and Python 3.3)
Other useful links.
- stackoverflow — Great site with great community all about helping others, almost every question you will have is already asked and answered on this website (make sure you search thoroughly before asking questions).
- /r/learnprogramming — A growing reddit community about learning programming.
- geekviewpoint — Great compact website with a lot of examples for basic and complex problems solved using Python.
- Computer language chart — Very interesting representation of the different languages of the past and the present.
- Teach Yourself Programming in Ten Years — Good article about the philosophy of learning new subjects and particularly programming.
- Declarative knowledge — declarative-knowledge-refers-statements-fact
- Imperative knowledge — imperative-knowledge
- Pair interviewing — pair-interviewing
- Python language inside great softwares — python-language-inside-great-softwares