**Ursinus IDS 301: Problem Solving And Analysis with Python, Spring 2020**

# Schedule

Outlined below is the schedule for the course, including lecture topics and assignment due dates. **All assignments are due at 11:59PM on the date specified**. The specific dates of different topics are subject to change based on the pace at which we go through the course.

Since Python is so popular, there has been a ton of community work across many projects. Therefore, a big part of this course will be learning how to leverage work that others have already done, instead of re-inventing the wheel ourselves, by using ``software libraries'' for different tasks. I have indicated the software libraries we will be using in the course at the beginning of each section.

Lecture | Lectures (click for notes) | Readings/Links | Assignments/Deliverables | |

| ||||

1 | Wed 1/22/2020 | Course Sneak Preview | Homework 0: Warmup Out | |

Sun 1/26/2020 | Homework 0 Due | |||

2 | Mon 1/27/2020 | Software Environment, Arithmetic Operations, Variable Naming, Begin Lists | *CS For All*2.2- Code for class week 1
| |

3 | Wed 1/29/2020 | List slicing, Numpy Arrays / Plotting | *CS For All*2.3, 2.4- Reference on array slicing
| Homework 1a: linspace and sinusoids out |

Sun 2/2/2020 | Homework 1a Due | |||

4 | Mon 2/3/2020 | Audio Processing: Sinusoids | Homework 1: Audio Processing Out | |

5 | Wed 2/5/2020 | Functions, Echoes/Convolution, Noise, Comb Filters | *CS For All*2.5
| |

6 | Mon 2/10/2020 | The Discrete Fourier Transform, Begin Image Processing | ||

7 | Wed 2/12/2020 | Image Processing: 2D Arrays / Grids, MoirĂ© Patterns, Quantization/Dithering | Homework 1 Due
Homework 2: Steganography Out | |

| ||||

8 | Mon 2/17/2020 | Spyder, If Statements | *CS For All*2.6- Code for this week
| |

Tue 2/18/2020 | HW3a: Gregorian Leap Years Out | |||

9 | Wed 2/19/2020 | Boolean Statements, Begin Loops | *CS For All*5.3
| Homework 2 Due
HW3b: The Chaos Game Out |

10 | Mon 2/24/2020 | While Loops: Epoch Time, The 10 Heads Problem | Homework 3a Due | |

11 | Wed 2/26/2020 | VPython Animations, Euler Steps for Vector Simulations of Gravitation | ||

Fri 2/28/2020 | Homework 3b Due | |||

Sat 2/29/2020 | Homework 4: N-Body Problem Out | |||

12 | Mon 3/2/2020 | Continue Gravitational Simulations / VPython, Begin Binary Star Simulation | ||

13 | Wed 3/4/2020 | Finish Binary Star Simulation, Chaos, The Logistic Map | ||

Fri 3/6/2020 | Homework 4 Due | |||

Fri 3/6/2020 | Final Project Initial Proposal Due | |||

-- | Mon 3/9/2020 | Spring Break | Enjoy! | |

-- | Wed 3/11/2020 | Spring Break | Enjoy! | |

14 | Mon 3/16/2020 | More spring break, courtesy of COVID-19 | ||

Tue 3/17/2020 | Homework 4b: Epidemic Spreading Out | |||

15 | Wed 3/18/2020 | More spring break, courtesy of COVID-19 | ||

| ||||

16 | Mon 3/23/2020 | Python Dictionaries, Pickling, Wrangling Twitter Data | ||

Tue 3/24/2020 | Homework 4b Due | |||

17 | Wed 3/25/2020 | Python Dictionaries, Pickling, Wrangling Twitter Data | ||

Fri 3/27/2020 | Homework 5: Tweet Wrangling Out | |||

18 | Mon 3/30/2020 | High Dimensional Data: Pixel Image Embeddings, Audio Features, Dimension Reduction, Multidimensional Scaling | - Code for this week
- Lecture Recording from Today
- Graph Ditty Dimension Reduced Music Visualizer
- MNIST Image Dataset
| |

19 | Wed 4/1/2020 | Finish multidimensional scaling, argsort/argmin, dictionaries practice | ||

Sun 4/5/2020 | Homework 5 Due | |||

20 | Mon 4/6/2020 | Nearest Neighbors, Digit Classification, Audio Genre Classification | ||

21 | Wed 4/8/2020 | Ridge Regression, Text Vectorization, Sparse Matrices | Homework 6: Movie Reviews Out | |

| ||||

22 | Mon 4/13/2020 | Recursion, The Dynamic Programming Concept | ||

23 | Wed 4/15/2020 | Edit Distance | - CS For All 2.11
- Lecture video from today
| |

24 | Mon 4/20/2020 | Dynamic Programming Solutions To Edit Distance, Needleman-Wunsch | Homework 6 Due | |

25 | Wed 4/22/2020 | Backtracing Alignment Tables, Dynamic Time Warping for Audio Alignment | ||

Fri 4/24/2020 | Homework 7: Needleman-Wunsch Out | |||

Fri 4/24/2020 | Final Project Milestone | |||

26 | Mon 4/27/2020 | Classes and Objects | ||

27 | Wed 4/29/2020 | Markov Chains on Letters | ||

28 | Mon 5/4/2020 | Markov Chains And N-Grams | Homework 7 Due Homework 8: Markov Hybrids Out | |

29 | Wed 5/6/2020 | Course Wrapup / Raffle | ||

Fri 5/8/2020 | Homework 8 Due | |||

30 | Mon 5/11/2020 | No class | ||

Tue 5/12/2020 | Final Project Video / Slide Due | |||

31 | Wed 5/13/2020 | No class | Final Project Feedback Due | |

Thu 5/14/2020 | Final Project Due |