- Prof. Dancy's Site - Course Site -
Phase 2 Page, Final Phase Page
Objectivs & Overview
Project Deliverables
Project Point Breakdown
Teams of three students
Teams will be assigned by Prof. Dancy
Due-Dates:
- (Team info on Moodle): 30-Oct
- Phase 1: 09-Nov (10:00pm)
- Phase 1 presentations on 09-Nov (in class)
- Phase 2: 16-Nov (10:00pm)
- Phase 2 presentations on 16-Nov (in class)
- Final Phase: 06-Dec (10:00pm)
- Final presentations on 04-Dec (in Final Exam slot)
You're group is an elite group of developers that have been contracted by the Chicago Information Sciences Department. You've been asked by the Police Chief to develop a new police patroll dispatch system that his officers can use to fight crime in the most efficient way possible.
The Chief made this back of the napkin drawing to help you think about what he envisions as the final system (the Decision Engine)
To help with this, he's given you a dataset of previous crimes so that you can decide how you'll handle those new data that you'll be reading in.
Get to know your team. Teams will consist of three (or four) people & I will require that everyone speaks equally during the presentations and can explain any part of the work (within reason).
The team will work together to decide on a particular way to approach the above problem. It's up to you to communicate effectively so that you can work well as a team
I will work with teams to check on the status and get estimates of time for the completion of the project. While I will be available to try to make sure you don’t go off into a barren desert, and can help point you to resources if you wish to use a method that we have not gone over, the point of this Final project is to give you a bit of freedom to explore things, while still using some of the things we've learned in 204.
class ChicagoCrimeFun:
def init(self):
"""
Constructor that could do several things, including read in your training data
"""
pass
def build_loc_priority(self):
"""
Should be used to build your location-priority AVL tree
"""
pass
def build_crime_priority(self):
"""
Should be used to build your location-priority AVL tree
"""
pass
def decide_next_patrol(self, new_request=None):
"""
You will need this later, but I'm just giving this here for you to keep it as a placeholder
"""
pass
The first step is to explore the dataset a bit. Your dataset is contained in the file called Chicago_Crimes_2018-2019_Train.csv
.
As indicated by the name, the values in this file are comma-separated.
You will need to create an AVL tree class that you can use to store data so that you can make decisions on how to prioritize any crime coming in.
For your decision-making, you should store at least 2 AVL Trees:
key
of the payload and some priority ranking as the value
payload
key
and matches those keys to some priority ranking (value
) to provide alternative priorities (e.g., if you want to use several factors to combine priorities to make a decision)This is part of the challenge! How should you determine priority? There might be many ways, but I'll leave it up to you to think about that.
This part of Phase 1 is meant to give you an opportunity to find a visualization package you like and get familiar with it.
How do I draw this thing
Great question! There are several options out there for your AVL tree:
If you're going to have to determine position anyway, you could also use something like turtle graphics. This might also be useful in the future as you have more visualizations to carry out.
You could use the Bridges API
You also could use toytree
You could use Python version of Processing P5Py
You could use a combination of Matplotlib
and Networkx
. This looks like it might be one of the more straight-forward examples of how to use these two to create a top-down tree visualization.
If you're talking about general drawing (e.g., drawing other aspects of those data you have):
Matplotlib
works well enoughR
statistical package/language, the python version might be interesting to you as well, though the others might be a bit more updated & thus feature-richHow should I design my viz? What should my visualization convey?
Each team will be required to give a ~6
minute presentation on their implementations and the visualizations that they've created for Phase 1. You should be sure your presentation works on the classroom computer sometime before your presentation date or you must bring your own laptop, and make sure you know how to project your display on your external monitor port.
These presentations should give a good background on your design choices and the reasons for those choices. It will also be your chance to quickly discuss issues you have had or did have w/ the project.
More specifically, your presentation must provide answers to the following:
In your submission, include a readme.md file named README.md
that provides a brief statement of your project. Include any important details needed to run your program. Use the markdown format as an opportunity to pretty things up in your readme
Each person in your team will be required to give an end-of-phase (Final) reflection.
You should think of this like an additional journal, but specifically for the project.
This will be the time to reflect on:
Have one group member submit to the assignment on Moodle:
ChicagoCrimeFun
class file, which should be named ChicagoCrime.py
In your submission, include a readme.md file named readme.md
that provides a brief statement of your project.
This is your opportunity to complete specific tasks, but (largely) using your own design decisions and implementation decisions.
The visualizations are your opportunity to think creatively and to think about ways to visualize data structures so that they are useful (and hopefully cool!)
By using those data, you also get a first chance at making something else that kind of looks like the start of an AI system
Graded item | Number of points |
---|---|
Initial group information submitted on time | 5 pts |
Location Tree works as it should (including being an AVL) | 12 pts |
Crime Tree works as it should (including being an AVL) | 12 pts |
Visualizations | 6 pts |
README.md | 5 pts |
Presentation | 5 pts |
Reflection (individual) | 5 pts |
Graded item | Number of points |
---|---|
Your solution to the problem posed during this phase | 1 pts |
Display of Visualizations created for this phase and raionale | 1 pts |
Discussion of current issues in project | 1 pts |
Discussion of things learned by each group member up to that point | 1 pts |
Group presentation time roughly evenly distributed | 1 pts |
Date | Milestone |
---|---|
28-Oct | Project assigned |
30-Oct, 10:00pm | Group Info Sheet due |
09-Nov (in-class) | Phase 1 Presentations, Phase 2 assigned |
09-Nov 10:00pm | Phase 1 Deliverables Due |
16-Nov (in-class) | Phase 2 Presentations |
16-Nov 10:00pm | Phase 2 Deliverables Due |
04-Dec | Final Phase Presentation |
06-Dec 10:00pm | Final Phase Deliverables Due |