Six-Project Series

Six Small Algorithm Projects with Python you own this product

prerequisites
basic Python, Jupyter Notebook, and tkinter
skills learned
understanding recursion • using the tkinter Canvas widget to draw networks • finding shortest paths in a network
Rod Stephens
6 weeks · 6-8 hours per week average · BEGINNER

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


Algorithms are the foundations of computer science. In this series of liveProjects, you’ll learn how to use specific algorithms to solve some important programming problems. You’ll learn how to use recursion to draw complex shapes, search linked data structures, and layout and draw trees. You’ll learn how to use network algorithms to find shortest paths and assign employees to jobs. Tackle all the projects in this series, and you’ll get useful hands-on experience with a variety of algorithmic topics, data structures, and general programming techniques.

These projects are designed for learning purposes and are not complete, production-ready applications or solutions.

Manning author Rod Stephens shares what he likes about the Manning liveProject platform.

here's what's included

Project 1 Trees

In this liveProject, you’ll use Python and algorithms that work on binary and N-ary trees to sort data and draw organizational charts. You’ll store, find, and remove data in sorted trees, and you’ll experiment with different layout approaches for organizational charts.

Project 2 Shortest Paths

In this liveProject, you’ll use Python algorithms to help find the shortest path between stops for a fleet management company. With trucks driving over 10 million miles per year, even slight time saving can be a huge cost reduction. You’ll build network classes, save, restore, and draw networks, use network algorithms to find shortest paths between locations, and lay the groundwork for future network applications.

Project 3 Scheduling

In this liveProject, you’ll take on the role of a project manager for a construction company and utilize Python to help schedule your construction’s tasks. You’ll utilize tried and tested methods like topological sorting, PERT charts, and Gantt charts to create a task scheduling tool that can both track deadlines and automatically update delivery dates for when deadlines are missed.

Project 4 Image Processing

In this liveProject, you’ll use the Python Imaging Library (PIL) to tackle common image processing tasks. You’ll learn about some of the algorithms that let you apply filters to images, and you’ll use PIL to adjust image brightness, contrast, and color tone. You’ll crop, rotate, reflect, and perform other geometric operations on images.

Project 5 Work Assignment

In this liveProject, you’ll utilize Python and maximal flow algorithms to create an application that can match jobs with the correct workers. Running all the possible combinations of jobs and workers with the correct skills would be impossible to scale manually, but is easy to do with Python. You’ll start by finding the maximal flows in your network, then quickly move on to creating a program that assigns jobs based on your algorithm.

Project 6 Fractals

In this liveProject, you’ll use recursive and non-recursive algorithms to generate fractals for graphic design. Fractals are shapes that have fractional dimensions and can produce very beautiful and interesting visualizations. You’ll start by exploring recursive line-drawing fractals, move on to strange attractors, and finish up with escape-time fractals.

book resources

When you start each of the projects in this series, you'll get full access to the following book for 90 days.

choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Six Small Algorithm Projects with Python project for free

project author

Rod Stephens

Rod Stephens started out as a mathematician but discovered the fun of algorithms and has been programming ever since. Rod was a Microsoft Visual Basic Most Valuable Professional (MVP) for 15 years, has spoken to user groups and conferences, and has taught introductory programming courses. He has written more than 35 books including Essential Algorithms: A Practical Approach to Computer Algorithms Using Python and C# and Beginning Software Engineering, both of which include material related to this series of liveProjects.

Prerequisites

The liveProject series is for intermediate Python programmers who know Python and the tkinter package. To begin this liveProject series, you will need to be familiar with the following:


TOOLS
  • Basic Jupyter Notebook
  • Basic Python: creating classes, defining methods, working with lists
  • Basic tkinter

you will learn

In this liveProject series, you’ll learn how to use some useful algorithms and the tkinter GUI to develop useful and interesting applications to help solve common problems and develop beautiful art. Skills you’ll learn include the following:
  • Building classes that you can use to build linked data structures such as trees and networks
  • Using recursion to solve naturally recursive problems
  • Searching and traversing trees
  • Adding and removing values from sorted binary trees
  • Defining classes that represent network nodes and links
  • Saving and restoring networks
  • Automatically building test networks
  • Using the tkinter Canvas widget to draw networks
  • Changing the appearance of drawn objects
  • Allowing the user to click on drawn objects
  • Finding shortest paths in a network
  • Making classes that can build linked data structures
  • Using Python to parse data in files
  • Finding critical paths
  • Drawing with tkinter
  • Loading an image file into a PIL image
  • Displaying a tkinter PhotoImage
  • Making tkinter dialogs
  • Using mouse events to let the user select part of an image
  • Applying various PIL image transformations to enhance and modify images
  • Using lists, loops, methods, and other basic techniques
  • Using tkinter to make user interfaces including menus
  • Using mouse events to let the user select objects
  • Drawing in the Canvas widget

features

Self-paced
You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.