Python Programming ------------------- ### Skill Set #1: Beginner Usage * Getting started * Writing and running a Python program on NCI * Using the Python command line * Using a Jupyter Notebook * [Basics of Python programming](https://www.w3schools.com/python/) * Formatting: Indentation and comments * Creating variables * Arithmetic and logical operators * Using various data structures * Integers and Floats * Strings * Lists, Tuples, Sets, Dictionaries * If...Else statements * While and For loops * Functions * Using libraries * [Using Numpy arrays](http://cs231n.github.io/python-numpy-tutorial/#numpy) * Creating * Indexing and slicing * Array mathematical operations * Broadcasting * [Using Dates](https://www.w3schools.com/python/python_datetime.asp) * Using Conda Libraries on NCI * Debugging * Skills * Using the stack trace * Tools * pdb ### Skill Set #2: Advanced Usage * Advanced Python Programming * Lambda functions * Classes and Objects * Error-handling (Try...Except) * Using JSON files * [Code optimisation](https://wiki.python.org/moin/PythonSpeed/PerformanceTips)