
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Welcome to the course!
This text lecture includes information on live help, office hours and an e-book based on the content from the introductory "Python in-depth" section (Section 3) of this course. I will post updated versions of the book here if/when they become available.
An in-depth look at the structure of the course and an overview of the content of every section
An introductory message to complete beginners to programming
A look at development environments, some options and what we'll use in the course
Some basic commands you can use to navigate through the command line/terminal
Explore various options available and download Python 3
Download and customize the Atom text editor. This is the editor used in this course throughout
A detailed look at using Jupyter Notebooks for developing Python code
Introduction to material covered in the section and who it's intended for
A quick look at using the command line/terminal window to navigate file directories
Working with strings and variables to handle text
Some helpful tips on quizzes and assessment tests
Detailed look at string concatenation, indexing and slicing
Wrap up our look at strings with some functions and methods available to string objects. Also investigate import statements and how they work
A look at how to format print statements and use special characters within strings
Working with numbers and computation along with type casting and getting input from user
This is an assessment test for Python basics we have covered so far including working with text, numbers and print formatting
An introductory look at branching and how it works including real code examples from projects built in the course in later sections
An in-depth look at building if elif and else blocks using conditional tests and boolean values
An introductory look at collections in Python
Working with lists and exploring functions and methods
Working with sublists, slicing, indexing and basic iteration
Working with dictionaries, sets and tuples
An in-depth look at using for loops in combination with iterables and generators along with list comprehension
This is an assessment test for compound data structure fundamentals.
Conclude our look at iterators, generators and popular functions associated with them with while loops and enumerate and zip functions
A look at functions, their structure, properties and examples
Take a program and build a function step by step
An in-depth look at the execution context (with global and function frames) of python programs, along with the differences between mutable and immutable data types passed in as parameters
This is the final assessment test for Python fundamentals and will test knowledge of lists, tuples, dictionaries, iterators and functions
An introductory look at objects with example classes built in the course
Learning the basics of building a class from scratch and special __init__ method
Add the add and remove_course methods to the class
Explore some special methods like __init__ and __repr__
Working with files and performing read and write operations using context managers and permissions
Add previously built read functionality to the student class using static and regular methods, along with another special method __eq__ to test for equality based on custom definition
Complete Student class and look at inheritance and subclasses
Description lecture for bonus content I will post in the rest of the section
In this optional last part of the section, we will look at some Python specifics, starting with Lambda expressions, also known as anonymous functions.
Explore lambda expressions and use them in conjunction with other functions like map
You have already seen generator objects in use, let's take a deeper look at what they are and how they work.
Create custom generators using yield
Intro to part 2 of this course with section 4 and sorting algorithms, performance analysis and recursion
Visual presentation and complexity analysis of the bubble sort algorithm
Implement the bubble sort algorithm step by step
Visual presentation and complexity analysis of the selection sort algorithm
Implement the selection sort algorithm step by step
Complete visualization of the insertion sort algorithm and assignment handoff for implementation
Programmatic visual of execution steps performed by the insertion sort algorithm as it sorts a list of 5 elements
Take a look at best, worst and average cases for complexity in more detail
Discuss algorithms that achieve O(nlog(n)) performance and prerequisites for next one
An in-depth look at log(n) and what it represents
Take a look at the merge sort algorithm and its big O analysis
Start building the merge function - comparison
Continue building merge function - iteration through lists
Complete merge function - add remaining items
A look at the divide/split function which introduces recursion
Analyze execution context and frames created by recursive divide function in-depth
Build a countdown timer using recursion
Build a recursive factorial function step by step
Understand, break down and implement a recursive fibonacci function
Complete implementation of the merge sort algorithm and visualize execution context
A visual look at the Quicksort algorithm
Implement Quicksort algorithm step by step
Final project kickoff and look at objective and motivation for building the project
Take a look at specs for the project along with actual completed program execution
Build a function that generates lists of integers of various sizes and ranges
Get the list size and range of ints for each list element from the user during program execution
Add functions to analyze and implement time analysis functionality
Add additional functionality to the program by extracting redundant code into a function and beautifying output
Add ability to perform several runs of the functions under analysis and perform testing using additional functions and test cases
Intro to section 5 and a brief overview of the material covered in this section
A look at basic searching techniques and the bisection search algorithm
Build the binary search function using iteratively
Replace the while loop built in the iterative solution in the prior video with recursive function calls to achieve the same goal
Design and build a project that utilizes the algorithms and tools that have been developed so far
Go through implementation steps from concluded project
Visualization of how a hashmap works to achieve O(1) complexity/performance
Define the structure requirement for a hash table and setup the class definition
Start building the set_val method and introduce python's hash function
Modify set_val method to include update functionality
Implement the get_val method and add search functionality for the class
Start a project using the hash table structure/class that was built called quote finder
Project execution and completion for quote finder using the implemented hash table class
Introduction to idea and operations of linked lists.
Build methods in the custom linked list class and homework assignment
Reverse a linked list using recursion
Visualize and analyze operations associated with Stacks and Queues
An in-depth look at trees, rules surrounding them and a particular type of tree known as Binary Search Tree
In-depth look at in-order traversal and how it results in a sorted representation of the nodes of a BST
Inserting nodes into a BST in-depth with test cases
Build the in-order traversal method so nodes can be displayed in order based on the values of their keys
Add a search method to the BST class
Visualize and understand the process of the delete functionality from a BST
Delete scenario one - deleting nodes with no children (leaf nodes)
Delete scenario 2 - deleting nodes with 1 child node
Delete scenario 3 - deleting nodes with both left and right child nodes
Introduction to the job scheduler project - to be implemented by students, including motivation and requirements
Step by step display of the functionality of the completed job scheduler project
Go through my implementation of the project and discuss code, tips and pointers
A heart-felt thank you from me to you for taking the course and suggestions for possible next steps
Join the most comprehensive and beginner friendly course 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 utilizing them from scratch.
You will get:
1) 14+ hours of animation heavy instructional video
2) 14 coding exercises using Udemy's internal python coding environment
3) Quizzes to test your understanding at every step
4) 80+ Python scripts with practice exercises and lecture notes
5) Live help channel and designated office hours with the instructor
6) Multiple assessment tests to test your progress
7) A free Python e-book
and much, much more!
This course is truly one of a kind and focused solely on your learning.
Check out some of the amazing reviews it's receiving:
From Ryan - "I've only had it for one day and it's been absolutely incredible. Wonderful instructor that does a terrific job of explaining complex topics. I'm not even a quarter of the way in and I already feel that I've gotten exponentially more than what I paid."
From Jason - "Great course, the instructor is clearly well-versed with Python programming and gives very clear instruction. I particularly found the algorithms and data structures section to be valuable. Strongly recommend this course, the best Python programming course I've taken by a significant margin."
From Rob - "As a software engineer that needs to get up to speed on some Python for a data-science project, this was perfect. It's in-depth where it needs to be, clear, and very well put together."
I 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, we'll see it all and then build it all.
Since it caters to a broad spectrum of students, the course is split in two parts, part 1 focusing on the Python programming language and part 2 focusing on Algorithms, Data Structures, Performance Analysis and larger scale projects. Details below:
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, Sets
Iterables and Iteration with generators, for and while loops and more!
Functions, execution context and frames, building custom functions
List comprehension
Lambda expressions
Generators and creating your own generators with yield
Objects and building classes, methods, special methods
Reading from and writing to files using context managers
Projects
Visualization with each topic and more!
Part 2: Algorithms, Data Structures and Performance Analysis
Sorting algorithms (basic) - Bubble sort, Selection sort, Insertion sort
Sorting algorithms (advanced) - Merge sort, Quick sort
Big O notation, complexity analysis, divide and conquer, math visualizations
Recursion in-depth with examples
Searching algorithms - Bisection search, hashing
Data Structures with Linked lists, Stacks, Queues, Trees, Binary Search Trees
Operations with Data structures - insert, search, update, delete
Multiple projects with increasing level of complexity that tie the concepts together
Visualizations of every algorithm, data structure and operations and more!
So whether you are interested in learning the top programming language in the world in-depth
OR interested in learning the fundamental Algorithms, Data Structures and performance analysis that make up the core foundational skillset of every accomplished programmer/designer or software architect
OR you are looking to ace your next technical interview
OR all 3 above - This is the course for you!
And on top of that, it comes with a 30 day money back guarantee. If you are not satisfied in any way, you will not only get your money back but you also get to keep the free e-book and tons of downloadable practice exercises and code just for trying it out!
So what are you waiting for? Learn to code with Python while building projects and implementing algorithms and data structures, and gain a core competency in Computer Science that will advance your career and increase your knowledge in the most effective way!