Cademy logoCademy Marketplace

Course Images

Python 3: Project-based Python, Algorithms, Data Structures

Python 3: Project-based Python, Algorithms, Data Structures

🔥 Limited Time Offer 🔥

Get a 10% discount on your first order when you use this promo code at checkout: MAY24BAN3X

  • 30 Day Money Back Guarantee
  • Completion Certificate
  • 24/7 Technical Support

Highlights

  • On-Demand course

  • 14 hours 29 minutes

  • All levels

Description

Learn to program with Python 3, visualize algorithms and data structures, and implement them in Python projects

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! All the codes and supporting files for this course are available at - https://github.com/PacktPublishing/Python-3-Project-based-Python-Algorithms-Data-Structures

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.

Approach

This course 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.

Key Features

Learn to code with Python while building projects and implementing algorithms and data structures * Understand the fundamentals of programming languages

Github Repo

https://github.com/packtpublishing/python-3-project-based-python-algorithms-data-structures

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.

Course Outline

1. Introduction

1. Introduction

This video introduces the course.

2. Course structure and content overview

An in-depth look at the structure of the course and an overview of the content of every section


2. Development environment setup

1. Section intro and overview

A look at development environments, some options and what we'll use in the course

2. Download and install Python

Explore various options available and download Python 3

3. Setup Atom as text editor (setup used in this course)

Download and customize the Atom text editor. This is the editor used in this course throughout

4. Exploring Jupyter Notebooks interface (optional)

A detailed look at using Jupyter Notebooks for developing Python code


3. Python in-depth

1. Section intro and overview

Introduction to material covered in the section and the who it's intended for

2. Command line/Terminal basics

A quick look at using the command line/terminal window to navigate file directories

3. Strings, variables, top down execution flow

Working with strings and variables to handle text

4. Strings: concatenation, indexing, slicing, python console

Detailed look at string concatenation, indexing and slicing

5. String methods, functions and import statements

Wrap up our look at strings with some functions and methods available to string objects. Also investigate import statements and how they work

6. Print formatting and special characters

A look at how to format print statements and use special characters within strings

7. Numbers, math, type casting and input

Working with numbers and computation along with type casting and getting input from user

8. Introduction to branching (if, elif, else) and conditionals

An introductory look at branching and how it works including real code examples from projects built in the course in later sections

9. Building if, elif, else blocks incrementally

An in-depth look at building if elif and else blocks using conditional tests and boolean values

10. Lists, dicts, sets and tuples - Intro to compound data types in Python

An introductory look at collections in Python

11. Lists - an in-depth look 1

Working with lists and exploring functions and methods

12. Lists - an in-depth look 2

Working with sublists, slicing, indexing and basic iteration

13. Dictionaries, sets and tuples

Working with dictionaries, sets and tuples

14. Iterators, for loops, generators, list comprehension

An in-depth look at using for loops in combination with iterables and generators along with list comprehension

15. While loops, enumerate, zip

Conclude our look at iterators, generators and popular functions associated with them with while loops and enumerate and zip functions

16. Functions - an introductory look

A look at functions, their structure, properties and examples

17. Functions - implementation step by step

Take a program and build a function step by step

18. Functions - execution context, frames, mutable vs. immutable arguments in-depth

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

19. Classes and objects - an introductory look

An introductory look at objects with example classes built in the course

20. Building a custom Student class and intro to special methods

Learning the basics of building a class from scratch and special __init__ method

21. Add some methods to the class

Add the add and remove_course methods to the class

22. Special methods and what they are

Explore some special methods like __init__ and __repr__

23. Reading from and writing to files

Working with files and performing read and write operations using context managers and permissions

24. Add read functionality and utilize special and static methods

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

25. Inheritance, subclasses and complete example class

Complete Student class and look at inheritance and subclasses

26. Lambda expressions and map function

Explore lambda expressions and use them in conjunction with other functions like map

27. Generators - under the hood

You have already seen generator objects in use, let's take a deeper look at what they are and how they work.

28. Build your own generators using yield

Create custom generators using yield


4. Algorithms - Sort, performance, complexity and big O notation

1. Introduction to section 4 and overview of the material covered in it

Intro to part 2 of this course with section 4 and sorting algorithms, performance analysis and recursion

2. Bubble sort demonstration and complexity analysis

Visual presentation and complexity analysis of the bubble sort algorithm

3. Bubble sort implementation

Implement the bubble sort algorithm step by step

4. Selection sort demonstration and complexity analysis

Visual presentation and complexity analysis of the selection sort algorithm

5. Selection sort implementation

Implement the selection sort algorithm step by step

6. Insertion sort demonstration and assignment handoff

Complete visualization of the insertion sort algorithm and assignment handoff for implementation

7. Insertion sort programmatic execution step by step

Programmatic visual of execution steps performed by the insertion sort algorithm as it sorts a list of 5 elements

8. Performance measures - deep dive with a programmatic view

Look at best, worst and average cases for complexity in more detail

9. O(nlog(n)) performance and algorithm prerequisites

Discuss algorithms that achieve O(nlog(n)) performance and prerequisites for next one

10. Analyze log(n), visualize the math behind it and how it relates to algorithms

An in-depth look at log(n) and what it represents

11. Merge sort visualization and complexity analysis

Look at the merge sort algorithm and its big O analysis

12. Implement merge function - part 1

Start building the merge function - comparison

13. Implement merge function - part 2

Continue building merge function - iteration through lists

14. Implement merge function - part 3

Complete merge function - add remaining items

15. A look at the recursive divide function

A look at the divide/split function which introduces recursion

16. In-depth look at execution context of recursive divide function

Analyze execution context and frames created by recursive divide function in-depth

17. Recursion mini-project 1 - Countdown timer

Build a countdown timer using recursion

18. Recursion mini-project 2 - Factorial

Build a recursive factorial function step by step

19. Recursion mini-project 3 - Fibonacci series

Understand, break down and implement a recursive fibonacci function

20. Complete merge sort algorithm and analyze updated execution context

Complete implementation of the merge sort algorithm and visualize execution context

21. Quicksort demo

A visual look at the Quicksort algorithm

22. Quicksort implementation

Implement Quicksort algorithm step by step

23. Section final project objective and motivation

Final project kickoff and look at objective and motivation for building the project

24. Project specs and runtime execution intro

Look at specs for the project along with actual completed program execution

25. Project phase 1: Build random int list generator

Build a function that generates lists of integers of various sizes and ranges

26. Project phase 2: Get input from user for size and range

Get the list size and range of ints for each list element from the user during program execution

27. Project phase 3: Add functions, calculate and analyze runtime

Add functions to analyze and implement time analysis functionality

28. Project phase 4: Extract redundancies, create function and cleanup code

Add additional functionality to the program by extracting redundant code into a function and beautifying output

29. Project phase 5: Add multiple run functionality and perform additional testing

Add ability to perform several runs of the functions under analysis and perform testing using additional functions and test cases


5. Algorithms - Search and abstract data structures

1. Introduction to section 5

Intro to section 5 and a brief overview of the material covered in this section

2. Intro to search - Linear, Bisection/Binary search

A look at basic searching techniques and the bisection search algorithm

3. Bisection/Binary search - Iterative implementation

Build the binary search function using iteratively

4. Bisection search - recursive implementation

Replace the while loop built in the iterative solution in the prior video with recursive function calls to achieve the same goal

5. Project handoff: Bringing it together

Design and build a project that utilizes the algorithms and tools that have been developed so far

6. Project conclusion walkthrough

Go through implementation steps from concluded project

7. Hashmaps and O(1) search complexity

Visualization of how a hashmap works to achieve O(1) complexity/performance

8. Hash project 1: Define and set up class blueprint with __init__ and __str__

Define the structure requirement for a hash table and setup the class definition

9. Hash project 2: Set up insert and hashing functionality for data structure

Start building the set_val method and introduce python's hash function

10. Hash project 3: Add update functionality

Modify set_val method to include update functionality

11. Hash project 4: Build search method

Implement the get_val method and add search functionality for the class

12. Project: Use hash structure in a practical exercise - Quote finder

Start a project using the hash table structure/class that was built called quote finder

13. Project: Complete quote finder using hash table

Project execution and completion for quote finder using the implemented hash table class

14. Intro to linear data structures - Linked Lists

Introduction to idea and operations of linked lists.

15. Build a custom linked list

Build methods in the custom linked list class and homework assignment

16. Recursively reverse a linked list

Reverse a linked list using recursion

17. Visualize Stacks and Queues, and their operations

Visualize and analyze operations associated with Stacks and Queues

18. Introduction to Trees and Binary Search Trees

An in-depth look at trees, rules surrounding them and a tree known as Binary Search Tree

19. In-order traversal of a Binary Search Tree

In-depth look at in-order traversal and how it results in a sorted representation of the nodes of a BST

20. Build a Binary Search Tree from scratch - Insert

Inserting nodes into a BST in-depth with test cases

21. BST from scratch - In-order traversal

Build the in-order traversal method so nodes can be displayed in order based on the values of their keys

22. BST from scratch - Search

Add a search method to the BST class

23. BST from scratch - Delete demo

Visualize and understand the process of the delete functionality from a BST

24. BST - Deleting leaf nodes

Delete scenario one - deleting nodes with no children (leaf nodes)

25. BST - Deleting nodes with 1 child node

Delete scenario 2 - deleting nodes with 1 child node

26. BST - Deleting nodes with 2 children

Delete scenario 3 - deleting nodes with both left and right child nodes

27. Project: Job Scheduler using Binary Search Trees - Introduction

Introduction to the job scheduler project - to be implemented by students, including motivation and requirements

28. Project: Job Scheduler execution flow

Step by step display of the functionality of the completed job scheduler project

29. Project: Job Scheduler implementation tips and notes

Go through my implementation of the project and discuss code, tips and pointers

30. Thank you for taking the course and next steps

Here, the author thanks everyone for taking the course and suggestions for possible next steps

Course Content

  1. Python 3: Project-based Python, Algorithms, Data Structures

About The Provider

Packt
Packt
Birmingham
Founded in 2004 in Birmingham, UK, Packt’s mission is to help the world put software to work in new ways, through the delivery of effective learning and i...
Read more about Packt

Tags

Reviews