This article is a compilation of all the posts in this blog that are written with a motive to revise all the video lectures and notes while preparing for the final exam of MITx 6.00x on edX in 2012. The course has moved on to newer version by now, nevertheless, these posts serve as a good starter kit to learn programming with Python.

Thought of creating an online journal to revise videos on the go, because when I was revisiting the video lectures from the beginning it took a lot of time. Sometimes I’ve to fast forward the easy portions, then normal pace at confusing situations & again fast forward to some other part of video. It was tough to keep going that way and hence this post, a compilation of all the posts from the course.

All the links below lead to a quick overview of respective topic and the decryption below the titles shows what parts are covered in the post.

## List of python blogs for beginners in Python

- Syntax, Static Semantics, Semantics of a Language
- Before we begin with any language, it’s important to know the aspects of the language. What is Syntax? Semantics? Static Semantics? This post explain these terms with examples.

- Python Objects and Types
- Everything in Python is an object! Every object in Python has a type. This post discusses some of them with examplesOperations on String and Taking input from User

- Arithmetic and Logical Operators in Python
- Explains various operators such as addition. subtraction, multiplication, division, modulo and logical operators for comparison.

- Python Strings and it’s frequently used methods
- Declaring, Accessing and Slicing Strings in Python. Using
`raw_input`

for script to pause and wait for user to input in STDIN.

- Declaring, Accessing and Slicing Strings in Python. Using
- Control Flow: Branching code flow using if - else - elif
- If this Then that! Python provides us with if, else and elif to add conditions in code and branch it like a tree

- Loops: Perform repetitive tasks through Iteration using
`while`

and`for`

constructs- For and While loop constructs in Python enable us to perform repetitive tasks or help us iterate over a string or a list or any iterable object. Also explains
`range()`

briefly. When to use`while`

or`for`

.

- For and While loop constructs in Python enable us to perform repetitive tasks or help us iterate over a string or a list or any iterable object. Also explains
- Guess & Check Algorithm: Finding Square Root using Guess and Check
- Guess and Check is one of the most common methods of finding solution to any problem. We will see how it can be used to find a close approximation of square root of any number. We also use
`abs()`

in between.

- Guess and Check is one of the most common methods of finding solution to any problem. We will see how it can be used to find a close approximation of square root of any number. We also use
- Bisection Search: Linear Search v/s Bisection (Binary) Search
- When it comes to searching an element within a list of elements, our first approach is searching sequentially through the list. We discuss a better method, Binary Search or Bisection Search

- Basics of Recursion with an example in Python
- Recursion is a technique of finding solutions to larger problems using known solution of smaller problems. For me at-least, it was hard to get the understanding of recursion. In this post we see an iterative and recursive version of one problem in programming.

- Python: Lists and List methods
- Declaring, Accessing, Slicing, Deleting and Updating Lists and its elements in Python

- Python: Tuples and Basic Operations on Tuples
- What is a tuple? How is it different from a list? And some basic methods on Tuples

- Python: Dictionary and its properties
- Dictionary is a generalization of a List. Dictionary stores (key, value) pair for easier value access in future using the key. We see how it is different from a list and its properties.

- How to compute Time Complexity or Order of Growth of any program?
- Time Complexity gives us an idea of running time of any program w.r.t. the size of input fed to the program. Order of Growth is just another word for Time Complexity.

- What is Memoization? What is Dynamic Programming?
- Memoization or Dynamic Programming is a technique of remembering solutions to sub-problems which will help us solve a larger problem.

*Disclaimer: This is not a complete list of the topics covered in the course. It is advised to go through the newer version of course on edx.org*

Note: This is a part of what I learned in an online Open Course Ware offered by MIT on edX. Its for my personal reference & also for those who would like to revisit the course.