Video description
This course is one of the most comprehensive and beginner-friendly courses on learning to code with Python—one of the top programming languages in the World—and using it to build algorithms and data structures with projects from scratch.
We will walk you step-by-step through the fascinating world of Python programming using visualizations of programs as they execute, algorithms as they run, and data structures as they are constructed. Nothing is left to the imagination; you'll see it all and then build it all.
Since it caters to a broad spectrum of students, the course is split into two parts: part 1 focusing on the Python programming language and part 2 focusing on Algorithms, data structures, performance analysis, and larger-scale projects.
Part 1: Python and programming fundamentals
• Text - Strings
• Numbers - ints and floats
• Execution flow control - branching with if/elif/else
• Compound data types - lists, dictionaries, tuples, and sets
• Iterables and iteration with generators, for and while loops, and more!
• Functions, execution context and frames, and building custom functions
• List comprehension
• Lambda expressions
• Generators and creating your own generators with yield
• Objects and building classes, methods, and special methods
• Reading from and writing to files using context managers
• Visualization with each topic and more!
Part 2: Algorithms, Data Structures, and Performance Analysis
• Sorting algorithms (basic) - bubble sort, selection sort, and insertion sort
• Sorting algorithms (advanced) - merge sort and quick sort
• Big O notation, complexity analysis, divide and conquer, and math visualizations
• Recursion in-depth with examples
• Searching algorithms - bisection search and hashing
• Data structures with linked lists, stacks, queues, trees, and binary search trees
• Operations with data structures - insert, search, update, and delete
• Multiple projects with increasing levels of complexity to tie concepts together
• Visualizations of all algorithms, data structure, operations, and more!
What You Will Learn
- Learn Python 3 from scratch, in-depth
- Understand the fundamentals of programming languages
- Learn to visualize algorithms, data structures, program executions, and information flows
- Learn to use Python to build projects
Audience
This course is designed for beginners who have never programmed before; programmers switching to Python; intermediate and advanced programmers looking to understand algorithms and data structures; Job interview candidates looking to understand the subject matter behind technical interview questions, and anyone keen to learn how to visualize programs and information flows.
About The Author
Mashrur Hossain: Mashrur is a full-time programming instructor specializing in programming fundamentals, web application development, machine learning, and cybersecurity. He has been a technology professional for over a decade and has degrees in Computer Science and Economics.
His niche is building comprehensive career-focused technology courses for students entering new/complex and challenging fields in today's technology space. This is a nice segway for him since his real passion is building and tinkering with programming languages. He loves everything to do with development and learning about new tools and technologies. His favorite languages are Python and Ruby on Rails, and his favorite tech fields are web app development, machine learning, and data analytics (which is where Ruby on Rails and Python fall into place nicely). He encourages his students to focus on these technologies as well.
In the past, he has worked with Enterprise Software Systems with roles played in analysis, development, management, and training. He led projects using both agile and waterfall methodologies and thus is well versed in the inner workings of the software development and delivery world.
During his time in corporate America, he realized how much he enjoyed training new hires and new team members and helping them succeed. He dedicated a good amount of time over 7 years on-boarding new analysts and developers and then worked with them to build and maintain systems which put him in a unique position to know and understand what new entrants to a field need in order to succeed. He strongly believes in focusing on fundamentals and practice; and not in shortcuts or gimmicks.
Table of contents
- Chapter 1 : Introduction
- Chapter 2 : Development environment setup
-
Chapter 3 : Python in-depth
- Section intro and overview
- Command line/Terminal basics
- Strings, variables, top down execution flow
- Strings: concatenation, indexing, slicing, python console
- String methods, functions and import statements
- Print formatting and special characters
- Numbers, math, type casting and input
- Introduction to branching (if, elif, else) and conditionals
- Building if, elif, else blocks incrementally
- Lists, dicts, sets and tuples - Intro to compound data types in Python
- Lists - an in-depth look 1
- Lists - an in-depth look 2
- Dictionaries, sets and tuples
- Iterators, for loops, generators, list comprehension
- While loops, enumerate, zip
- Functions - an introductory look
- Functions - implementation step by step
- Functions - execution context, frames, mutable vs. immutable arguments in-depth
- Classes and objects - an introductory look
- Building a custom Student class and intro to special methods
- Add some methods to the class
- Special methods and what they are
- Reading from and writing to files
- Add read functionality and utilize special and static methods
- Inheritance, subclasses and complete example class
- Lambda expressions and map function
- Generators - under the hood
- Build your own generators using yield
-
Chapter 4 : Algorithms - Sort, performance, complexity and big O notation
- Introduction to section 4 and overview of the material covered in it
- Bubble sort demonstration and complexity analysis
- Bubble sort implementation
- Selection sort demonstration and complexity analysis
- Selection sort implementation
- Insertion sort demonstration and assignment handoff
- Insertion sort programmatic execution step by step
- Performance measures - deep dive with a programmatic view
- O(nlog(n)) performance and algorithm prerequisites
- Analyze log(n), visualize the math behind it and how it relates to algorithms
- Merge sort visualization and complexity analysis
- Implement merge function - part 1
- Implement merge function - part 2
- Implement merge function - part 3
- A look at the recursive divide function
- In-depth look at execution context of recursive divide function
- Recursion mini-project 1 - Countdown timer
- Recursion mini-project 2 - Factorial
- Recursion mini-project 3 - Fibonacci series
- Complete merge sort algorithm and analyze updated execution context
- Quicksort demo
- Quicksort implementation
- Section final project objective and motivation
- Project specs and runtime execution intro
- Project phase 1: Build random int list generator
- Project phase 2: Get input from user for size and range
- Project phase 3: Add functions, calculate and analyze runtime
- Project phase 4: Extract redundancies, create function and cleanup code
- Project phase 5: Add multiple run functionality and perform additional testing
-
Chapter 5 : Algorithms - Search and abstract data structures
- Introduction to section 5
- Intro to search - Linear, Bisection/Binary search
- Bisection/Binary search - Iterative implementation
- Bisection search - recursive implementation
- Project handoff: Bringing it together
- Project conclusion walkthrough
- Hashmaps and O(1) search complexity
- Hash project 1: Define and set up class blueprint with __init__ and __str__
- Hash project 2: Set up insert and hashing functionality for data structure
- Hash project 3: Add update functionality
- Hash project 4: Build search method
- Project: Use hash structure in a practical exercise - Quote finder
- Project: Complete quote finder using hash table
- Intro to linear data structures - Linked Lists
- Build a custom linked list
- Recursively reverse a linked list
- Visualize Stacks and Queues, and their operations
- Introduction to Trees and Binary Search Trees
- In-order traversal of a Binary Search Tree
- Build a Binary Search Tree from scratch - Insert
- BST from scratch - In-order traversal
- BST from scratch - Search
- BST from scratch - Delete demo
- BST - Deleting leaf nodes
- BST - Deleting nodes with 1 child node
- BST - Deleting nodes with 2 children
- Project: Job Scheduler using Binary Search Trees - Introduction
- Project: Job Scheduler execution flow
- Project: Job Scheduler implementation tips and notes
- Thank you for taking the course and next steps
Product information
- Title: Python 3: Project-based Python, Algorithms, Data Structures
- Author(s):
- Release date: September 2019
- Publisher(s): Packt Publishing
- ISBN: 9781839216510
You might also like
book
Python Data Structures and Algorithms
Implement classic and functional data structures and algorithms using Python About This Book A step by …
book
Data Structures and Algorithms in Python
Based on the authors' market leading data structures books in Java and C++, this textbook offers …
book
Hands-On Data Structures and Algorithms with Python
Learn to implement complex data structures and algorithms using Python Key Features Understand the analysis and …
book
Python Algorithms: Mastering Basic Algorithms in the Python Language, Second Edition
Python Algorithms, Second Edition explains the Python approach to algorithm analysis and design. Written by Magnus …