Learn to Code in Python, with Hany Farid

Part 1: Introduction to Programming and Computation
This set of videos introduces the basics of computer programming that are essential for those interested in computer science, data science, and information management. You will learn to write interactive programs (in Python) to analyze data, process text, draw graphics, and manipulate images.

Part 2: Introduction to Data Structures and Analytics
The ability to represent, manipulate, and analyze structured data sets is foundational to the modern practice of data science. This set of videos introduces the fundamentals of data structures and data analysis (in Python).
I encourage you to install Python 3 and Jupyter Notebook on your computer so that you can follow along with the in-lecture examples and exercises. You will also want to install the following Python libraries: drawSvg, matplotlib, and numpy.
See also Learn Computer Vision
Introduction to Programming and Computation
  • Coding basics
    • algorithms [video]
    • hello world [video] [code] [simplefunctions.py]
    • draw something [video] [code]

  • Variables, data types, expressions, operators
    • variables [video]
    • expressions [video] [code]
    • assignment [video]
    • strings & booleans [video]
    • practice [video]
    • while loops [video] [code]

  • Flow of control
    • practice [video]
    • while loops [video]
    • logical operators [video] [code]
    • conditionals [video]
    • drills [video] [code]

  • For-loops and lists
    • lists [video]
    • lists & loops [video]
    • list reversal [video]
    • more lists [video]
    • nested loops [video] [code]
    • modifying lists [video] [code]

  • Functions, file I/O, basic data visualization
    • returning parameters [video]
    • passing and returning parameters [video]
    • local & global variables [video]
    • file I/O [video] [code] [states.txt] [us-500.csv]
    • data visualization [video] [code] [temperatures.csv]

  • Recursion
    • factorial [video]
    • list reversal [video]
    • list sum [video] [code]
    • towers of Hanoi [video]

  • Object-oriented programming (1/3)
    • class constructors [video]
    • ball class [video] [code]
    • list of objects [video] [code]
    • drills [video] [code]

  • Object-oriented programming (2/3)
    • eye & face class [video] [code]
    • crowd class (drill) [video] [code]
    • student class [video]

  • Object-oriented programming (3/3)
    • course class (drill) [video] [code]
    • tree & forest class [video] [code]
    • game of life [video] [code]

  • Binary numbers and Boolean logic
    • binary numbers [video]
    • two's complement [video]
    • decoding [video]
    • Boolean logic [video]
    • transistors and gates [video]

  • Transistors, gates, and circuits
    • circuits [video]
    • designing circuits [video]
    • 1-bit compare for equality [video]
    • 4-bit comapre for equality [video]
    • 1-bit addition [video]
    • 4-bit addition [video]
    • 8-bit equality to zero [video]
    • Karnaugh maps [video]

Introduction to Data Structures and Analytics
  • Data analysis: searching
    • linear and binary search [video]
    • run-time analysis [video]
    • big-O notation [video]

  • Data analysis: sorting
    • selection sort [video]
    • selection sort, run-time analysis [video]
    • insertion sort [video]
    • insertion sort, run-time analysis [video]
    • merge sort [video]
    • merge sort, run-time analysis [video]
    • quick sort [video]

  • Data structures: lists
    • list operations, run-time analysis [video]
    • singly linked lists [video]
    • drill [video] [code]

  • Data structures: doubly linked lists (DLL)
    • DLL [video]
    • DLL insert [video]
    • DLL delete [video]
    • DLL find [video]
    • DLL, run-time analysis [video]

  • Data structures: dictionaries (hash tables)
    • dictionaries [video]
    • hashing [video]
    • dictionaries, run-time analysis [video]
    • drill [video] [code] [DOI.txt]

  • Data structures: graphs
    • graphs [video]
    • representing graphs [video]
    • breadth-first search (BFS) [video]
    • queues and stacks [video]
    • BFS implemented [video]
    • binary search trees [video]

  • Data visualization
    • file I/O [video] [code] [states.txt] [us-500.csv]
    • matplotlib [video] [code]
    • numpy [video] [code]
    • drill [video] [code] [temperatures.csv]
    • images [video] [code] [mandrill.jpg]

  • Data fitting: linear systems
    • linear equations [video]
    • linear equations (geometric picture) [video]
    • vectors [video]
    • linear equations (vector picture) [video]
    • matrices [video]

  • Data fitting: linear systems
    • linear equations (matrix picture) [video]
    • linear equations (degenerate solutions) [video]
    • summary [video]
    • ballistic motion forensics [video]
    • lighting forensics [video (1/2)] [video (2/2)]

  • Data fitting: least-squares
    • y=ax+b (n constraints, n unknowns) [video]
    • y=ax+b (n constraints, m unknowns, n > m) [video]
    • y=ax (n constraints, m unknowns, n > m) [video]
    • drill [video]

  • Data fitting: least-squares
    • y=ax+b (n constraints, m unknowns, n > m) [video]
    • drill [video]
    • y=ax+b (n constraints, m unknowns, n > m) [video]
    • y=ax+b (solve for b) [video]
    • y=ax+b (solve for a) [video]
    • drill [video]

  • Data fitting: least-squares
    • y=ax+b (matrix picture, part 1) [video]
    • y=ax+b (matrix picture, part 2) [video]
    • drill [video] [code]
    • regression [video]
    • weighted least-squares (part 1) [video]
    • weighted least-squares (part 2) [video]
    • drill [video] [code]

python logo



lecture screengrab

lecture screengrab

lecture screengrab

lecture screengrab

lecture screengrab

lecture screengrab

lecture screengrab

lecture screengrab

lecture screengrab

lecture screengrab

lecture screengrab

lecture screengrab