Difference between revisions of "CISC220 F2021 Project"
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
The final project is your opportunity to explore an ''advanced'' data structure topic that was NOT covered in class this semester. | The final project is your opportunity to explore an ''advanced'' data structure topic that was NOT covered in class this semester. | ||
− | The main focus here is to write C++ code which implements and/or applies a data structure and/or algorithm of your choosing. You may use STL or other APIs/libraries, but only in a supporting role. If you use *any* code written by someone else (looking at you, Github), then you must cite it and be completely clear about what you added or changed. I am primarily interested in the code that you write and what your whole program does. Potential topics: | + | The main focus here is to write C++ code which implements and/or applies a data structure and/or algorithm of your choosing. You may use STL or other APIs/libraries, but only in a supporting role. If you use *any* code written by someone else (looking at you, Github), then you must cite it and be completely clear about what you added or changed. I am primarily interested in the code that you write and what your whole program does. Potential topics (first come, first served!): |
− | * [https://en.wikipedia.org/wiki/Red%E2%80%93black_tree Red-black] balanced binary trees | + | * (Robby and Ocean) [https://en.wikipedia.org/wiki/Red%E2%80%93black_tree Red-black] balanced binary trees |
− | * [https://en.wikipedia.org/wiki/Treap Treaps] | + | * (Sarah and Sydney) [https://en.wikipedia.org/wiki/Treap Treaps] |
− | * [https://en.wikipedia.org/wiki/Knight%27s_tour Knight's tour] | + | * (Jason and John) [https://en.wikipedia.org/wiki/Knight%27s_tour Knight's tour] or other kinds of searches with backtracking |
− | * [https://courses.grainger.illinois.edu/cs225/fa2021/resources/kd-tree/ k-d trees], [https://en.wikipedia.org/wiki/Nearest_neighbor_search nearest neighbor search] | + | * (Matt and Tommy) [https://en.wikipedia.org/wiki/Rabin%E2%80%93Karp_algorithm Rabin-Karp string matching] |
− | * Compression (text at the word/sentence level, image/video/audio) | + | * (Zach, Allie) [https://courses.grainger.illinois.edu/cs225/fa2021/resources/kd-tree/ k-d trees], [https://en.wikipedia.org/wiki/Nearest_neighbor_search nearest neighbor search] |
− | * Cryptography (encoding/decoding, "breaking" codes, [https://en.wikipedia.org/wiki/Rainbow_table rainbow tables]) | + | * (Aidan) Compression (text at the word/sentence level, image/video/audio) |
+ | * (Josh) Cryptography (encoding/decoding, "breaking" codes, [https://en.wikipedia.org/wiki/Rainbow_table rainbow tables]) | ||
* Cryptocurrency, blockchain (e.g., hash chains, hash trees) | * Cryptocurrency, blockchain (e.g., hash chains, hash trees) | ||
+ | * Your own scintillating idea | ||
You may work alone or as part of a pair. | You may work alone or as part of a pair. | ||
− | Send me an e-mail with your proposal and partner name, if applicable, as soon as possible so that I can give some feedback. As soon as I approve your proposal, you can pick a time | + | Send me an e-mail with your proposal and partner name, if applicable, as soon as possible so that I can give some feedback. I don't just want a single word from the list above but also at least a sentence or two on what existing code/libraries you might use and a link to data that you intend to apply your program to. As soon as I approve your proposal, you can pick a time slot for a 20-minute in-person demo (not in front of the class) on Friday, December 10. Your code must also be submitted on the day of your demo. |
− | slot for |
Latest revision as of 09:31, 6 December 2021
The final project is your opportunity to explore an advanced data structure topic that was NOT covered in class this semester.
The main focus here is to write C++ code which implements and/or applies a data structure and/or algorithm of your choosing. You may use STL or other APIs/libraries, but only in a supporting role. If you use *any* code written by someone else (looking at you, Github), then you must cite it and be completely clear about what you added or changed. I am primarily interested in the code that you write and what your whole program does. Potential topics (first come, first served!):
- (Robby and Ocean) Red-black balanced binary trees
- (Sarah and Sydney) Treaps
- (Jason and John) Knight's tour or other kinds of searches with backtracking
- (Matt and Tommy) Rabin-Karp string matching
- (Zach, Allie) k-d trees, nearest neighbor search
- (Aidan) Compression (text at the word/sentence level, image/video/audio)
- (Josh) Cryptography (encoding/decoding, "breaking" codes, rainbow tables)
- Cryptocurrency, blockchain (e.g., hash chains, hash trees)
- Your own scintillating idea
You may work alone or as part of a pair.
Send me an e-mail with your proposal and partner name, if applicable, as soon as possible so that I can give some feedback. I don't just want a single word from the list above but also at least a sentence or two on what existing code/libraries you might use and a link to data that you intend to apply your program to. As soon as I approve your proposal, you can pick a time slot for a 20-minute in-person demo (not in front of the class) on Friday, December 10. Your code must also be submitted on the day of your demo.