# Learning Outcomes

### What is Python and how do I use Jupyter notebooks?

To answer this question you will learn to:

1. Explain what Python is.

2. Recognise when using a notebook is useful.

3. Use a notebook either by clicking or by using keyboard shortcuts.

4. Generate different formated text and code blocks.

Referencing modules: Introduction

### Why write software for conducting research?

To answer this question you will learn to:

1. Understand why you would write software to manage your data and plots.

2. Identify the elements of a program.

Referencing modules: Example Data Analysis

### What are variables?

To answer this question you will learn to:

1. Illustrate the concept of a variable with labels and boxes.

2. Recognise and test the different variable types.

3. Predict the behaviour of variables through different cells.

Referencing modules: Variables

### What are functions and how do I use them?

To answer this question you will learn to:

1. Recognise methods and functions.

2. Differentiate methods and functions.

3. Use help and ? to read the documentation of functions.

Referencing modules: Using Functions

### What are types and how do they differ?

To answer this question you will learn to:

1. Identify types.

2. Predict the output of type(x).

3. Use appropriate methods over each type.

4. Match properties of strings with lists.

5. Compare lists of lists with matrices.

Referencing modules: Types

### What are containers?

To answer this question you will learn to:

1. Define a container.

2. Interpret the result of in and understand its usage.

3. Use tuples and lists.

Referencing modules: Containers

### What are Dictionaries and how do I use them?

To answer this question you will learn to:

1. Identify a dictionary and a set.

2. Recognise the differences between a dictionary and a set.

3. Carry out common operations using dictionaries and sets.

Referencing modules: Defining Functions, Dictionaries and Sets

### What are data structures?

To answer this question you will learn to:

1. Implement a data structure.

2. Distinguish different approaches to create data structures.

3. Judge which approach is more readable, efficient or easier to use for a particular problem.

Referencing modules: Data Structures

### What is control and flow?

To answer this question you will learn to:

1. Understand why decision making is important in programs.

2. Exemplify the different levels of decision making on a program.

3. Explain the purpose and importance of indentation.

4. Execute comparisons between variables.

Referencing modules: Control and flow

### What are loops and why are they useful?

To answer this question you will learn to:

1. Understand why loops are useful.

2. Understand the role of indentation in loops.

3. Implement a combination of loops and control flow to extract data from a data structure.

Referencing modules: Iteration

### What are comprehensions and how can I use them?

To answer this question you will learn to:

1. Understand what a comprehensions is and the conditions for use.

2. Translate a loop into a comprehension.

3. Executed nested comprehensions.

4. Integrate comprehensions with a data structure.

Referencing modules: Comprehensions

### What are libraries and how do I use them?

To answer this question you will learn to:

1. Know what a library is.

Referencing modules: Using Libraries

### What are Classes?

To answer this question you will learn to:

1. Create a user defined type, a class

2. Know the difference between an object and a class

3. Define methods for classes

Referencing modules: Classes

### How do I work with files?

To answer this question you will learn to:

1. Implement a reader with and without a context manager.

2. Be familiar with the os module and generate readers that can work on different computers.

3. Recall the modules needed.

4. Understand the different properties for different file formats.

Referencing modules: Working with files

### How do I create and edit plots?

To answer this question you will learn to:

1. Generate simple plots

2. Recognise what are figures and axes.

3. View multiple plots at once.

Referencing modules: Plotting

### What is Numerical Python (NumPy)?

To answer this question you will learn to:

1. Recognise the differences between numpy’s arrays and other data structures in Python.

2. Know what operations are available in NumPy.

3. Judge when and where np.newaxis is needed for operating matrices.

4. Distinguish betweencopy and [:] views of an array.

Referencing modules: Numerical Python