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.
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.
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!
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.
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.
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:
In this liveProject series, you’ll learn to