Difference between revisions of "CISC220 F2021 Project"

From class_wiki
Jump to: navigation, search
 
(16 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!):
  
* Compression (text at the word/sentence level, image/video/audio)
+
* (Robby and Ocean) [https://en.wikipedia.org/wiki/Red%E2%80%93black_tree Red-black] balanced binary trees
* [https://courses.grainger.illinois.edu/cs225/fa2021/resources/kd-tree/ k-d trees], [https://en.wikipedia.org/wiki/Nearest_neighbor_search nearest neighbor search]
+
* (Sarah and Sydney) [https://en.wikipedia.org/wiki/Treap Treaps]
* Cryptography (encoding/decoding, "breaking" codes, [https://en.wikipedia.org/wiki/Rainbow_table rainbow tables])
+
* (Jason and John) [https://en.wikipedia.org/wiki/Knight%27s_tour Knight's tour] or other kinds of searches with backtracking
 +
* (Matt and Tommy) [https://en.wikipedia.org/wiki/Rabin%E2%80%93Karp_algorithm Rabin-Karp string matching]
 +
* (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]
 +
* (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 an in-person demo (not in front of the class) on Friday, December 10.  Your code must also be submitted on this day.
 

Latest revision as of 10: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!):

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.