Four-Project Series

Algorithms and Data Structures in Python you own this product

prerequisites
intermediate Python • object-oriented programming (i.e., the creation of objects, class and method definitions, and inheritance)
skills learned
develop a basic text-based spreadsheet program • define and design an abstract data type (ADT) • implement sorting algorithms • implement a basic hash map from scratch and use it to eliminate duplicate entries
Kyle Dewey
4 weeks · 7-9 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


In this series of liveProjects, you’ll use algorithms and data structures to solve the types of common problems that have made them ubiquitous in programming. Playing the role of a programmer who’s been hired by a real estate developer to analyze a prohibitively large housing dataset, you’ll read this data with nested lists and the csv library, represent the data with a custom linked list, sort the data with selection sort and mergesort, search through the data using binary search and binary search trees, and de-duplicate entries with hash tables. You’ll implement all the data structures and algorithms needed to perform the tasks in the series, and when you’re done, you’ll know firsthand how to apply them, how quickly (or slowly) they perform, and the impact they have on solving common problems.

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

liveProject mentor Patrick Regan shares what he likes about the liveProject platform.

here's what's included

Project 1 Nested Lists

In this liveProject, you’ll play the role of a programmer who has been hired by a real estate developer to help determine what a fair market price for rent should be across a number of owned properties. The good news is that the real estate developer has gathered data into a spreadsheet (in a CSV file). The bad news is that the spreadsheet is so large that they can’t even open it in a typical spreadsheet program, let alone do any sort of analysis with it. They’ve asked you to develop an interactive program that will perform some basic exploration of the data. You’ll use highly popular Python to tackle this challenge, and gain valuable experience processing CSV files and sorting lists as well as working with files, strings, and command-line arguments.

Project 2 Sorting Algorithms

The real estate developer you’re working with wants a program that can non-interactively read, sort, and write out the sorted data to a new file. In this liveProject, you’ll create this new program using the csv, abc, and time libraries. But instead of relying on Python’s built-in lists, you’ll implement the program with your own custom lists and sorting routines—gaining hands-on experience working with commonly used data structures and algorithms, demystifying all the work Python does for us and impressing your client, all at once!

Project 3 Search Algorithms

The real estate developer you’ve worked with previously is so pleased with your work that they’ve asked you to write a new program that allows them to zero in on specific data in sorted reports. Their ultimate goal is to determine what kinds of homes fall into different ranges of interest. Using Python, the csv library, and a custom ADT (that you’ll design), you’ll implement multiple distinct search algorithms as you create a program that allows your client to run many queries— and be fast and efficient, despite the large size of the dataset.

Project 4 Hash Tables and Unit Tests

Your real estate developer client has a large sorted dataset and the ability to zoom in on select parts of the data, thanks to the programs you’ve written for them previously. Now they’ve noticed duplicate entries in the dataset, and they’ve asked you to solve this problem. In this liveProject, you’ll create a program that will read in the large CSV data file, leveraging a hash map (which you’ll test and implement) in order to discard duplicate entries as quickly as possible. Though you’ll use the csv and unittest libraries in Python, you’ll write your own unit tests—a fundamental software engineering skill and a practical requirement on most real-world projects. Finally you’ll test your tests against Python’s existing dictionaries.

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
  • Algorithms and Data Structures in Python project for free

project author

Kyle Dewey
Kyle Dewey received his Ph.D. in computer science from UC Santa Barbara and has been an assistant professor in Cal State Northridge's computer science department since 2017. He has a dozen scientific publications spanning programming language design, compilers, automated software testing, and computer science education, and has presented his work at top conferences in the field. Kyle has formally taught courses covering programming skills at all levels, including courses specifically related to the algorithms and data structures seen in this liveProject.

Prerequisites

These liveProjects are for people with intermediate Python and programming knowledge, including object-oriented programming. To begin these liveProjects you will need to be familiar with the following:

TOOLS
  • Intermediate Python

you will learn

In this liveProject series, you’ll learn to:

  • Develop a basic text-based spreadsheet program
  • Read command-line arguments and perform file I/O
  • Perform common string operations in Python
  • Append items to Python lists
  • Sort lists in Python using built-in routines
  • Define an abstract data type (ADT)
  • Define a linked list
  • Implement sorting algorithms
  • Perform algorithmic time complexity analysis
  • Design an ADT that abstracts over a dataset
  • Implement this ADT for sorted and unsorted Python lists, as well as balanced and unbalanced binary search trees
  • Implement a routine to search through the data
  • Use provided unit tests throughout the project to check the correctness of your code
  • Write code manipulating Python dictionaries
  • Write unit tests involving dictionaries, covering a variety of testing scenarios
  • Implement a basic hashmap from scratch
  • Use your hashmap to eliminate rows in a dataset that have duplicate description fields with other rows

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.