# Python "Boot Camp"
Almost 50 people have signed up for this year's installment of the SGPE Python boot camp sponsored by SIRE. This represents almost a 500% increase in attendance from last year's event which is pretty exciting! In addition to SGPE MSc students, we are expecting PhD students from throughout Scotland and England as well as a few faculty members from various departments around the UK.
If you have note already done so please take a few minutes to fill out the [course survey](https://www.surveymonkey.com/s/YQN7HDK).
## Logistics
### Location:
The course will be held in the following locations:
* Monday: Appleton Tower room M2b/M2c
* Tuesday: Appleton Tower room M2b/M2c
* Wednesday: Lecture Theatre 175, Old College
* Thursday: Lecture Theatre 175, Old College
* Friday: Appleton Tower room M2b/M2c (morning); Lecture Theatre 175, Old College (Afternoon).
Note that there are relatively few number of power sockets in LT 175 (we are working on a scheme to get more!). Please try to make sure that you fully charge your laptop Tuesday, and Wednesday night.
### Software:
I have posted detailed instruction for downloading all of the required software (all of which is free!) on the Python boot camp [Wiki](https://github.com/davidrpugh/python-boot-camp/wiki/Getting-started). All participants are expected to have downloaded and installed the software prior to the start of class on Monday.
On Sunday afternoon there will be a help desk from 3-5pm in the basement computer lab of 30 Buccleuch place for those of you who would like some help installing the software.
### Food/Tea/Coffee:
I plan to take frequent official breaks (and you are free to take as many unofficial breaks as you wish). Unfortunately, you will be on your own for tea/coffee and lunch.
## Curriculum
Curriculum for the 2nd annual "Python Boot Camp" held for the Scottish Graduate Programme in Economics at the University of Edinburgh, June 2-6 2014. The curriculum mainly follows [*Think Python*](http://www.greenteapress.com/thinkpython/) by Allen Downey, and [Quantitative Economics](http://quant-econ.net/) by Thomas Sargent and John Stachurski. *Think Python* is freely available on-line in both [pdf](http://www.greenteapress.com/thinkpython/thinkpython.pdf) and [html](http://www.greenteapress.com/thinkpython/html/index.html). [Solutions](http://www.greenteapress.com/thinkpython/code/) to exercises are also available. Code and additional documentation for *Quantitative Economics* can be forked from its [github repository](https://github.com/jstac/quant-econ).
## Day 1:
### Morning:
* [Chapter 1: The way of the program](http://www.greenteapress.com/thinkpython/html/thinkpython002.html)
* [Chapter 2: Variables, expressions and statements](http://www.greenteapress.com/thinkpython/html/thinkpython003.html)
* [Chapter 3: Functions](http://www.greenteapress.com/thinkpython/html/thinkpython004.html)
* [Chapter 4: Case Study on Interface Design](http://www.greenteapress.com/thinkpython/html/thinkpython005.html)
### Afternoon:
For the afternoon sessions, I will switch from discussing the basics of Python programming to more specialized topics. I will start by covering [Part I: Programming in Python](http://quant-econ.net/learning_python.html) of *Quantitative Economics*.
## Day 2:
### Morning:
* [Chapter 5: Conditionals and recursion](http://www.greenteapress.com/thinkpython/html/thinkpython006.html)
* [Chapter 6: Fruitful functions](http://www.greenteapress.com/thinkpython/html/thinkpython007.html)
* [Chapter 7: Iteration](http://www.greenteapress.com/thinkpython/html/thinkpython008.html)
### Afternoon:
We will pick up where we left off with [Part I: Programming in Python](http://quant-econ.net/learning_python.html) before moving on to [Part II: The Scientific Libraries](http://quant-econ.net/scientific_python.html) of *Quantitative Economics*.
## Day 3:
### Morning:
* [Chapter 8: Strings](http://www.greenteapress.com/thinkpython/html/thinkpython009.html)
* [Chapter 9: Case Study on Word Play](http://www.greenteapress.com/thinkpython/html/thinkpython010.html)
* [Chapter 10: Lists](http://www.greenteapress.com/thinkpython/html/thinkpython011.html)
### Afternoon:
We will pick up where we left off with [Part II: The Scientific Libraries](http://quant-econ.net/scientific_python.html) before moving on to [Part III: Introductory applications](http://quant-econ.net/introductory_applications.html) of *Quantitative Economics*.
## Day 4:
### Morning:
* [Chapter 11: Dictionaries](http://www.greenteapress.com/thinkpython/html/thinkpython012.html)
* [Chapter 12: Tuples](http://www.greenteapress.com/thinkpython/html/thinkpython013.html)
* [Chapter 13: Case Study on Data Structures](http://www.greenteapress.com/thinkpython/html/thinkpython014.html)
* [Chapter 14: Files](http://www.greenteapress.com/thinkpython/html/thinkpython015.html)
### Afternoon:
We will pick up where we left off with [Part III: Introductory applications](http://quant-econ.net/introductory_applications.html) of *Quantitative Economics*.
## Day 5:
### Morning:
* [Chapter 15: Classes and Objects](http://www.greenteapress.com/thinkpython/html/thinkpython016.html)
* [Chapter 16: Classes and Functions](http://www.greenteapress.com/thinkpython/html/thinkpython017.html)
* [Chapter 17: Classes and Methods](http://www.greenteapress.com/thinkpython/html/thinkpython018.html)
* [Chapter 18: Inheritance](http://www.greenteapress.com/thinkpython/html/thinkpython019.html)
* [Chapter 19: Case Study on Tkinter](http://www.greenteapress.com/thinkpython/html/thinkpython020.html)
### Afternoon:
We will pick up where we left off with [Part III: Introductory applications](http://quant-econ.net/introductory_applications.html) of *Quantitative Economics* and perhaps start on selected topics from [Part IV: Advanced applications](http://quant-econ.net/main_applications.html)
# Where to go to learn more:
Hopefully, by this point you will have fallen in love with Python programming and want to know where you can learn more...
I have found the following books interesting/useful:
* [*Think Complexity:*](http://www.greenteapress.com/compmod/) Picking up where *Think Python* leaves off, this book is about complexity science, data structures and algorithms, intermediate programming in Python, and the philosophy of science. Available in both [.html](http://www.greenteapress.com/compmod/html/index.html) and [.pdf](http://www.greenteapress.com/compmod/) formats.
* [*Think Stats:*](http://www.greenteapress.com/thinkstats/html/) Introduction to Bayesian and Frequentist statistics for Python programmers. Available in both [.html](http://www.greenteapress.com/thinkstats/html/index.html) and [.pdf](http://greenteapress.com/thinkstats/thinkstats.pdf) formats.
* [*Programming Collective Intelligence:*](http://shop.oreilly.com/product/9780596529321.do) Introduction to statistical learning theory and machine learning techniques for Python programmers. Potential gold-mine of economics research applications. I maintain a [repository](https://github.com/davidrpugh/programming-collective-intelligence-code) of the code for the entire book.
If you *really* want to become a Python Jedi Master, then I suggest that you put yourself through MIT's legendary [CS 6.00 (Spring, 2011): Introduction to Computer Science and Programming](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/). The [fall 2008 version](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/) of the course is still relevant (and the lecturer is more engaging). Both of these courses include video lectures and recitations as well as the usual course materials.