## Agenda for Week 3

### Hands-on Workshop: Python for Data Science

1. Basic Python programming skills with a focus on data analysis.
2. Introduction to Python programming language
3. Basic Python syntax and data structures (lists, tuples, dictionaries)
4. Introduction to Python libraries for data science (Pandas, Numpy)
5. Reading data into Python and performing basic data cleaning
6. Simple data analysis using Python

## Part 1: Python Basics

### Variables and Data Types

In Python, we can store information in variables. There are several types of data we can store, including integers, floating point numbers, strings, and Booleans.

``````   # Integer
x = 10
print(type(x))

# Float
y = 10.0
print(type(y))

# String
z = "Hello, World!"
print(type(z))

# Boolean
a = True
print(type(a))
``````

#### Arithmetic Operations

Python supports all the basic arithmetic operations.

``````   # Addition
print(5 + 5)

# Subtraction
print(5 - 2)

# Multiplication
print(3 * 3)

# Division
print(10 / 2)

# Exponentiation
print(4 ** 2)
``````

#### Logical Operations

Python also supports logical operations, which are often used in conditional statements.

``````   # And operation
print(True and False)

# Or operation
print(True or False)

# Not operation
print(not True)
``````

#### Conditional Statements

Conditional statements are used to perform different computations or actions depending on whether a condition evaluates to true or false.

``````   # Define a variable
x = 10

# If statement
if x > 0:
print("x is positive")

# If-else statement
if x % 2 == 0:
print("x is even")
else:
print("x is odd")

# If-elif-else statement
if x < 0:
print("x is negative")
elif x == 0:
print("x is zero")
else:
print("x is positive")
``````

#### Loops

Loops are used to repeatedly execute a block of code.

``````   # For loop
for i in range(5):
print(i)

# While loop
i = 0
while i < 5:
print(i)
i += 1

# Loop through a list
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
``````

#### Functions

Functions are reusable blocks of code that perform a specific task.

``````   # Define a function
def greet(name):
return "Hello, " + name

# Call the function
print(greet("World"))

# Function with multiple parameters
def power(base, exponent):
return base ** exponent

# Call the function
print(power(2, 3))
``````

### Part 2: Python Data Structures

Python has four basic inbuilt data structures: `Lists`, `Tuples`, `Sets`, and `Dictionaries`.

#### Lists

A list is a collection of items. It is ordered, changeable, and allows duplicate elements.

``````   # Define a list
fruits = ["apple", "banana", "cherry"]
print(fruits)

# Access list items by index
print(fruits[0])

# Change the value of a list item
fruits[1] = "blueberry"
print(fruits)

# Add an item to the list
fruits.append("orange")
print(fruits)
``````

#### Tuples

A tuple is similar to a list, but it is ordered and unchangeable.

``````   # Define a tuple
fruits_tuple = ("apple", "banana", "cherry")
print(fruits_tuple)

# Access tuple items by index
print(fruits_tuple[0])

# Trying to change the value of a tuple item throws an error
# fruits_tuple[1] = "blueberry"  # This will throw an error
``````

#### Dictionaries

A dictionary is an unordered collection of key-value pairs.

``````   # Define a dictionary
fruit_colors = {
"apple": "red",
"banana": "yellow",
"cherry": "red"
}
print(fruit_colors)

# Access dictionary items by key
print(fruit_colors["apple"])

# Change the value of a dictionary item
fruit_colors["banana"] = "green"
print(fruit_colors)
``````

#### Sets

A set is an unordered collection of unique items.

``````   # Define a set
fruits_set = {"apple", "banana", "cherry", "apple"}
print(fruits_set)  # Duplicates are removed
``````

### Part 3: Introduction to Pandas and NumPy

#### Creating arrays in NumPy

``````   import numpy as np

# Create a one-dimensional array
a = np.array([1, 2, 3])
print(a)

# Create a two-dimensional array
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
``````

#### Manipulating arrays in NumPy

``````   # Change an element of the array
b[0, 0] = 10
print(b)

# Get the shape of the array
print(a.shape)
print(b.shape)
``````

#### Creating DataFrames in Pandas

``````   import pandas as pd

# Create a DataFrame from a dictionary
df = pd.DataFrame({
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35],
"Occupation": ["Doctor", "Engineer", "Teacher"]
})
print(df)
``````

#### Manipulating DataFrames in Pandas

``````   # Select a column
print(df["Name"])

# Add a new column
df["Salary"] = [100000, 120000, 90000]
print(df)

# Delete a column
df = df.drop("Age", axis=1)
print(df)
``````

#### Reading data from CSV files

``````   # Assuming we have a CSV file "data.csv"
df = pd.read_csv("data.csv")
print(df.head())
``````

Please note: you’d need to have a `data.csv` file available and replace `data.csv` with the path to your file. Uncomment this section when ready to use.

#### Basic data exploration

``````   # Get the shape of the DataFrame
print(df.shape)

# Get information about the DataFrame
print(df.info())

# Describe the DataFrame
print(df.describe())
``````

## Conclusion

In this lab, we have covered the basics of Python including data types, arithmetic and logical operations, conditional statements, loops, and functions. We’ve also explored Python’s basic data structures and were introduced to the data science libraries Pandas and NumPy. Practice these concepts and get comfortable with them, as they are the building blocks for more complex data science tasks.

Remember, the aim is to create a learning experience where students can get their hands dirty with code while also understanding the theory behind the actions they perform.

title: Weekly Meeting Agenda subtitle: baseline for weekly meeting agenda author: Thaddeus Thomas —

Each meeting can have a unique structure depending on the nature of that weeks session.

### Example of weekly meeting

General framework to ensure meetings are well-organized and efficient.

One-hour meeting structure

1. Introduction (5-10 minutes):
• Welcome participants.
• Share the agenda for the meeting.
• Recap the last meeting (if applicable) and note any follow-ups.
2. Main Agenda (40-45 minutes):
• This is where the main activities of the meeting will take place.
• For a workshop or lecture, this will include the main presentation and demonstration.
• For a discussion, this may involve presenting the topic and then facilitating a group discussion.
• For a hackathon or project showcase, this would include the actual work or presentations.
3. Q&A/Discussion (5-10 minutes):
• Reserve some time for attendees to ask questions or discuss the day’s topic further.
• Encourage participation and interaction.
4. Conclusion and Looking Ahead (2-3 minutes):
• Wrap up the meeting and summarize key points.
• Briefly mention what the next meeting will entail.
• Thank everyone for their participation.