1. Loops (Algorithmic)
List Comprehension:
- Task: Make a list of house prices using list comprehension.
- Description: Use list comprehension to quickly and easily create a list of prices from a list of house objects.
Processing a List:
- Task: Find the average price of houses.
- Description: Use both a regular for loop and a simpler for-each method (list comprehension) to go through the list of house prices and calculate the average price. Compare which method is easier to understand and use.
2. Sorting / Searching (Algorithmic)
Sorting:
- Task: Organize house listings by price or size.
- Description: Use SQLAlchemy to sort house listings from the database by price or size. Show how to sort from lowest to highest and from highest to lowest.
Searching:
- Task: Find houses based on specific details.
- Description: Use SQLAlchemy to search for houses based on specific details like location or number of bedrooms. Show how to filter the list to find exactly what you need.
3. Big(O) Notation
Space and Time Complexity:
- Task: Explain the efficiency of sorting and searching methods.
- Description: Describe how long it takes to sort and search through the house listings and how much memory these operations use. Use simple terms to explain the concepts of time and space complexity.
4. 2D Iteration
2D Iteration:
- Task: Work with a 2D list of house features.
- Description: Write code to go through a 2D list where each row is a house and each column is a feature (like number of bedrooms, bathrooms, and price). Show how to access and use each piece of information.
5. Deployment (Full Stack)
Deployment Plan:
- Task: Launch the “SoCal Real Estate” website.
- Description: Make a plan to deploy your website so multiple people can use and update it at the same time. This includes:
- Creating an easy-to-use interface for looking at and updating house listings.
- Building backend services with Flask to handle data.
- Adding an AI bot to help users find houses.
- Using a database like SQLAlchemy to store house information.
- Using Docker to package the application.
- Hosting the website on a cloud service like AWS, Azure, or Heroku.
- Setting up a system to make updates easy and allow multiple developers to work together smoothly.