"Introduction to Computer Science and Programming Using Python," is 3 credits course from MITx on the edX platform. In this course provide basic to hard excercise and problem sets. So, the user get gradually understanding in python.
- Hangman: If you have dare, beat the computer.
- WordGame: Create the word with possible letter. It build both version, first play the game by yourself, then repeat the same game with computer and see who make highest score.
- Encryption and Decryption messages: This basic encryption and decryption message. it remind me Alan Turing enigma machine.
Lecture 1 – Introduction to Python: • Knowledge • Machines • Languages • Types • Variables • Operators and Branching
Lecture 2 – Core elements of programs • Bindings • Strings • Input/output • IDEs • Control Flow • Iteration • Guess and Check
Lecture 3 – Simple Programs: • Approximate Solutions • Bisection Search • Floats and Fractions • Newton-Raphson
Lecture 4 – Functions: • Decomposition and Abstraction • Functions and Scope • Keyword Arguments • Specifications • Iteration vs Recursion • Inductive Reasoning • Towers of Hanoi • Fibonacci • Recursion on non-numerics • Files
Lecture 5 – Tuples and Lists: • Tuples • Lists • List Operations • Mutation, Aliasing, Cloning
Lecture 6 – Dictionaries: • Functions as Objects • Dictionaries • Example with a Dictionary • Fibonacci and Dictionaries • Global Variables
Lecture 7 – Debugging: • Programming Challenges • Classes of Tests • Bugs • Debugging • Debugging Examples
Lecture 8 – Assertions and Exceptions • Assertions • Exceptions • Exception Examples
Lecture 9 – Classes and Inheritance: • Object Oriented Programming • Class Instances • Methods • Classes Examples • Why OOP • Hierarchies • Your Own Types
Lecture 10 – An Extended Example: • Building a Class • Viualizing the Hierarchy • Adding another Class • Using Inherited Methods • Gradebook Example • Generators
Lecture 11 – Computational Complexity: • Program Efficiency • Big Oh Notation • Complexity Classes • Analyzing Complexity
Lecture 12 – Searching and Sorting Algorithms: • Indirection • Linear Search • Bisection Search • Bogo and Bubble Sort • Selection Sort • Merge Sort
Lecture 13 – Visualization of Data: • Visualizing Results • Overlapping Displays • Adding More Documentation • Changing Data Display • An Example Lecture 14 – Summary