Lecture 1: Goals of the course; what is computation; introduction to data types, operators, and variables
//youtu.be/k6U-i4gXkLM
Lecture 2: Core Elements of a Program
//youtu.be/SLvTCHhu5SE
Recitation 1: Introduction to Coding Concepts
//youtu.be/88fqFjfxgwI
Lecture 3: Problem Solving
//youtu.be/ggxY20cXql8
Lecture 4: Machine Interpretation of a Program
//youtu.be/Mx0uXIBD-yA
Recitation 2: Loops, Tuples, Strings, and Functions
//youtu.be/nx6NnzIGrKE
Lecture 5: Objects in Python
//youtu.be/B8is52oxHBw
Lecture 6: Recursion
//youtu.be/WbWb0u8bJrU
Recitation 3: Lists and their Elements, Sorting, and Recursion
//youtu.be/Fixc8hVo_cY
Recitation 4: Recursion, Pseudo code, and Debugging
//youtu.be/7BpomdjZ_Os
Lecture 8: Efficiency and Order of Growth
//youtu.be/GmkRmETGghw
Lecture 9: Memory and Search Methods
//youtu.be/6wTuOMgTrU4
Lecture 10: Hashing and Classes
//youtu.be/pjLbxB9TXJs
Lecture 11: Object Oriented Programming (OOP) and Inheritance
//youtu.be/FBpe3xFvPrQ
Recitation 5: Quiz 1 Answers and Object-Oriented Programming
//youtu.be/ZFc_utdoexI
Lecture 12: Introduction to Simulation and Random Walks
//youtu.be/C2BBAW78fYg
Optional Recitation: Algorithm Complexity and Class Review
//youtu.be/8I0BmT1ccuw
Lecture 13: Some Basic Probability and Plotting Data
//youtu.be/hGQw3KJ7i6Q
Lecture 14: Sampling and Monte Carlo Simulation
//youtu.be/ddtobc-AOK4
Lecture 15: Statistical Thinking
//youtu.be/VqZBqoZgL7k
Recitation 6: Probability and Statistics
//youtu.be/yVkt3Px4KHA
Lecture 16: Using Randomness to Solve Non-random Problems
//youtu.be/Q148jV9ljPM
Lecture 17: Curve Fitting
//youtu.be/TIQTYgmavC4
Recitation 7: Distributions, Monte Carlo, and Regressions
//youtu.be/FBKxrPEeCSU
Lecture 18: Optimization Problems and Algorithms
//youtu.be/BRjwkgQct28