Textbooks
The original textbook for 6.00 and the course lectures parallel each other, though there is more detail in the book about some topics. The book is NOT required. We will not be referring to it in assignments or depending upon it to cover holes in the lectures.
Guttag, John. Introduction to Computation and Programming Using Python. Spring 2013 edition. MIT Press, 2013. ISBN: 9780262519632.
A second edition of the textbook is now available. However, there may be some discrepancies between the original course lectures included on this course site and the sections in this second edition of the textbook.
Guttag, John. Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press, 2016. ISBN: 9780262529624.
If you choose not to purchase this book, you will probably find it useful to buy or borrow another book that covers Python. You might check your local public library's resources, or search online for a free Python text, such as How to Think Like a Computer Scientist or An Introduction to Python (PDF).
Other optional textbooks:
- Zelle, John M. Python Programming: An Introduction to Computer Science. 1st ed. Franklin Beedle & Associates, 2003. ISBN: 9781887902991. (Be sure to get the 1st edition, not the 2nd.)
- Budd, Timothy. Exploring Python. McGraw-Hill Science, 2009. ISBN: 9780073523378.
- Shaw, Zed A. Learn Python the Hard Way. (Available to read on the web for free. Also available as PDF download, ePub download, or printed book mailed to you, each at a low cost.
- Swaroop, CH. A Byte of Python.
- Dive into Python by Mark Pilgrim
- Code Like a Pythonista: Idiomatic Python by David Goodger
- The Python Programming Wikibook is not too bad. This is a work in progress, often minimal.
References (Python 2.5.4)
- Python 2.5.4 Documentation
- Python 2.5.4 Tutorial
- Python 2.5.4 Reserved Words
- Python 2.5 Quick Reference Card by Michael Goerz
- Guido van Rossum, the creator of Python, has written a Python Style Guide that contains layout and naming conventions for the Python language. These conventions will help you write code that is easily readable by others.
- The Python Cheat Sheet is a handy one page guide covering commonly used Python methods.
Further Readings
- Floating Point Arithmetic
- Strings
- Tuples
- Lists
- Dictionaries
- Exceptions
- Section 11.5 in How to Think Like a Computer Scientist
- The Exceptions chapter in the Python Tutorial
- Recursion
- The Recursion chapter in An Introduction to Python
- Sections 4.9-4.11 in How to Think Like a Computer Scientist
Probability and Statistics for Computer Scientists
- Wikipedia article on Probability
- Normal distribution reference
- Wikipedia article on the Confidence interval
Simulation Methods
- Wikipedia article on the Monte Carlo method
- Random walks
- Matplotlib/pylab reference
Breadth-First and Depth-First Searches
Although two of these are Wikipedia articles, these pages have a lot of information, including animated images showing you what nodes are chosen. Once you understand how both algorithms work, try writing out the order nodes are visited in another graph using both BFS and DFS.
- Breadth-first and depth-first search article from Kirupa.com
- Wikipedia article on Depth-first search
- Wikipedia article on Breadth-first search