For Malcolm Gin's working files and solutions to DAT208x on edX.org: https://courses.edx.org/courses/course-v1:Microsoft+DAT208x+6T2016/info

These scripts are written for Python 3.

Functions, scripts, and behaviors are tested in IPython, Anaconda, for Python 3 on macOS Sierra.


Further Readings for Chapter 1. Python Basics: To learn more about Python's recent developments, you can visit www.python.org (https://www.python.org/); the official home page of the Python programming language. Here, you will find guidelines to get started with Python on your own system.

In the Python documentation (https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex), you can read more about the different data types we've discussed. Don't let this comprehensive documentation scare you. Just try to read through it and see which parts you can already understand. The more advanced you get in Python, the more you'll encounter huge documentation pages where you have the find the bits of information you need to solve your problem. The sooner you learn how to do this, the better!

You are learning Python 3 in this course. When going through Python Documentation, make sure that you're reading about Python 3, and not Python 2! The differences are not big, but can be hard to spot and confusing to new users.


Further Readings for Chapter 2. List - A Data Structure: To get a deeper insight into Python lists, you can check out the official documentation on Data Structures (https://docs.python.org/3.5/tutorial/datastructures.html). If you don't understand everything in there (such as the append() method for example), don't worry: we'll get to that soon enough.

At the end of the third video, Filip pointed out the difference between copying the list contents, or a reference to the list. He pointed out that this was only a simplified version of the story. If you're interested in the bigger picture, you can go through this documentation page (https://docs.python.org/3.5/library/copy.html).


Further Readings for Chapter 3. Functions and Packages: Functions and methods are at the foundation of every Python program. The blogs, tutorials and documentation written about this topic is therefore huge. To get a concise yet detailed writeup about functions, you can head over to TutorialsPoint (http://www.tutorialspoint.com/python/python_functions.htm). Methods are very related to the Object Oriented Programming (OOP) in Python. To get a taste for that, you can check out this blogpost (https://www.jeffknupp.com/blog/2014/06/18/improve-your-python-python-classes-and-object-oriented-programming/).

To learn more about how packages (or modules) work under the hood, you can go through this documentation page (https://docs.python.org/3/tutorial/modules.html). It's a pretty technical read, but this will give you the bigger picture. If you want to take it to the next level: the page also tells you how to create your own modules and packages in Python.


Further Readings for Chapter 4. NumPy: As this entire module is centered around Numpy, short for Numeric Python, there's one resource you should definitely check out if you want to learn more: http://www.numpy.org/. You can read about the internal structure and workings of Numpy and about tons of other tools that haven't been discussed in this introductory course.


Further Readings for Chapter 5. Plotting with Matplotlib: Matplotlib is not the only package to data visualization in Python. A great package is ggplot (http://ggplot.yhathq.com/), a port of a very popular R package to do visualization, ggplot2 (http://ggplot2.org/). It's based on the so-called grammar of graphics, a term coined by Leland Wilkinson, who wrote some amazing books on data visualization.

Often, getting started with a visualization from scratch is very difficult. You'll typically want to base yourself on a beautiful example and then adapt that example to work with your own data and your customizations. You can find a ton of matplotlib examples in this gallery (http://matplotlib.org/1.5.1/gallery.html). Have a look at them before you start your own visualizations; it will save you a ton of time!


Further Readings for Chapter 6. Control Flow and Pandas: The if-else construct is not the only control structure available in Python. There's also while and for, among others. If you want to read some more about all the control structures that Python features, have a look at this documentation page (https://docs.python.org/3.5/tutorial/controlflow.html). For an overview about comparators and boolean operators, you can check out another docs page (https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not).

The community around Pandas is growing by the minute. As Pandas is a big thing in Python that's focussed on Data Science, there's a dedicated website (http://pandas.pydata.org/). There, you can read about the latest developments in Pandas and download several versions. The main author of Pandas, Wes McKinney, also included a great 10-minute video explaining the basics about Pandas.