American University of Beirut

Introduction to Computation and Programming Using Python

​​​​​​​​​​​​​​Here you can access the non-interactive content! 

​​قم بمراجعة المعلومات الآتية  قبل البدء بهذه المرحلة الأكاديمية​

Recommendations for successful completion:

> Stop the video after each question and take time to think before continuing:

​​​Module I: Foundations
WeekTopicNon-interactive lesson videos
Week 1Topic 1: Getting Started Lecture: Lesson 1 - Algorithms and computational problem solving
Lecture: Lesson 2 - Stored Program Computers
Lecture: Lesson 3 - Binary representation
Lecture: Lesson 4 - Programming languages
Lecture: Lesson 5 - Sample Python code
Week 1Topic 2: Introduction to Python Lecture: Lesson 1 - Data Types in Python
Lecture: Lesson 2 - Operators
Lecture: Lesson 3 - Expressions
Lecture: Lesson 4 - Variables and the assignment operator
Lecture: Lesson 5 - Miscellaneous
Week 2Topic 3: Selection and Repetition Lecture: Lesson 1 - Motivation
Lecture: Lesson 2 - Selection if, if-else
Lecture: Lesson 3 - Multi-way selection and nested structures
Lecture: Lesson 4 - Repetition: while loops and counters
Lecture: Lesson 5 - Examples
Lecture: Lesson 6 - For loops
Lecture: Lesson 7 - Nested loops
Lecture: Lesson 8 - Boolean variables in loops
Lecture: Lesson 9 - Bisection method
Week 3Topic 4: Lists, tuples, and strings Lecture: Lesson 1 - List type
Lecture: Lesson 2 - Manipulating lists
Lecture: Lesson 3 - Element distinctness problem
Lecture: Lesson 4 - List copy: alias versus Clone
Lecture: Lesson 5 - Lists and Tuples with Mutable Objects
Lecture: Lesson 6 - For loops
Lecture: Lesson 7 - Nested loops
Lecture: Lesson 8 - Boolean variables in loops
Lecture: Lesson 9 - Bisection method
Week 4Topic 5: Functions: Lecture: Lesson 1 - Introduction
Lecture: Lesson 2 - Scope of variables and execution stack
Lecture: Lesson 3 - Functions handling lists, tuples, and strings
Lecture: Lesson 4 - Miscellaneous
Lecture: Lesson 5 - Higher-order functions
Lecture: Lesson 6 - Some methods associated with list and str types
Week 5 Topic 6: Files and exceptions Topic 7: Miscellaneous: plotting, randomness, and Monte Carlo simulation Lecture: Lesson 1 - Files
Lecture: Lesson 2 - Exceptions and Assertions
Lecture: Lesson 1 - Plotting
Lecture: Lesson 2 - Generating random numbers
Lecture: Lesson 3 - Monte Carlo Simulation: approximating 𝜋
Reading: Spyder Debugger - Spyder Debugger
Week 6 Topic 8: Program Efficiency, Binary Search, and Insertion Sort Lecture: Lesson 1 - Asymptotic Analysis: Theta notation
Lecture: Lesson 2 - Working with Theta
Lecture: Lesson 3 - Time analysis of the element distinctness problem
Lecture: Lesson 4 - Other asymptotic notations
Lecture: Lesson 5 - Time analysis of programs from previous assignments
Lecture: Lesson 6 - Binary search
Lecture: Lesson 7 - Insertion Sort
Lecture: Lesson 8 - Time analysis of some list operations and methods
Module II: Recursion and Elementary Data Structures
Week 7 Topic 9: Recursion I: Foundations Lecture: Lesson 1 - Introduction: recursive factorial and recursion stack
Lecture: Lesson 2 - Tracking recursion, indirect recursion, infinite
Lecture: Lesson 3 - Two-way recursion: Fibonacci numbers
Lecture: Lesson 4 - Two-way recursion: tower of Hanoi
Lecture: Lesson 5 - Recursive binary search
Week 8 Topic 10: Recursion II: Merge Sort, Divide-And-Conquer, And Solving Recurrences Lecture: Lesson 1 - Merge Sort
Lecture: Lesson 2 - Merge Sort time: recurrence and recursion tree
Lecture: Lesson 3 - Comparison of Merge Sort with Insertion Sort and
Lecture: Lesson 4 - Additional recursion tree examples
Lecture: Lesson 5 - Master Theorem
Lecture: Lesson 6 - Ternary Search
Week 9 Topic 11: Data structures digression: Lists Of Lists, 2-Dimensional Lists, Dictionaries, And Stacks Lecture: Lesson 1 - Lists of lists
Lecture: Lesson 2 - 2-dimensional lists
Lecture: Lesson 3 - Dictionaries
Lecture: Lesson 4 - Applications of dictionaries
Lecture: Lesson 5 - Stacks
Week 10 Topic 12: Recursion III: Applications: Enumeration, Randomized Quick Sort, Maze DFS Traversal Lecture: Lesson 1 - Application of recursion: enumeration: generate all
Lecture: Lesson 2 - Another enumeration problem: generate all
Lecture: Lesson 3 - Quick Sort
Lecture: Lesson 4 - Randomized Quick Sort
Lecture: Lesson 5 - Maze DFS traversal
Module III: Object Oriented Programming and Applications
Weeks 11-12 Topic 13: Classes and Object Oriented Programming Lecture: Lesson 1 - Object oriented programming
Lecture: Lesson 2 - User defined classes
Lecture: Lesson 3 - OOP machinery
Lecture: Lesson 4 - OOP concepts
Lecture: Lesson 5 - Inheritance
Lecture: Lesson 6 - Miscellaneous
Week 12 Topic 14: Stacks and Queues Lecture: Lesson 1 - Stack class derived from list
Lecture: Lesson 2 - Queue class: circular implementation
Week 13 Topic 15: Graphs Lecture: Lesson 1 - Classes for dynamic directed and undirected graphs
Lecture: Lesson 2 - Graph Depth First Search (DFS)
Lecture: Lesson 3 - Graph Breadth First Search (BFS)
Lecture: Lesson 4 - Other graph problems

Contact Us

For various questions, please try contacting us via social media first!
read more

Privacy Statement

We take data privacy seriously and adhere to all applicable data privacy laws and regulations.
read more

Copyright and Disclaimer

Written permission is needed to copy or disseminate all or part of the materials on the AUB website.
read more

Title IX, Non-Discrimination, and Anti-Discriminatory Harassment

AUB is committed to providing a safe and respectful environment to all members of its community.
read more