Skip to content
Snippets Groups Projects
Commit ac43df27 authored by Kevin Lin's avatar Kevin Lin
Browse files

research-project: Video trailer, clearer requirements

parent 83282f0b
No related branches found
No related tags found
No related merge requests found
Pipeline #400891 passed with stages
in 47 seconds
......@@ -20,7 +20,7 @@ description: Exploring possibilities and limits of data structures and algorithm
---
Throughout the course, we've learned how to design, analyze, and critique data structures and algorithms (and applications thereof). The research project is an opportunity to extend course concepts, examine the possibilities and limits of computing, and communicate your findings through writing and video presentation.
Throughout the course, we've learned how to design, analyze, and critique data structures and algorithms (and applications thereof). The research project is an opportunity to extend course concepts, examine the possibilities and limits of computing, and communicate your findings through writing and video.
Done well and with the right mindset, the topic you learn about in your project might be the topic you remember the most from the course. The project is also a product that you can use to show potential employers, graduate schools, etc. to demonstrate your skill at learning technical subjects independently and communicating complex ideas in a way that people can understand.
......@@ -38,7 +38,9 @@ Not yet (N)
Unassessable (U)
: Minimal or no submission.
There are two phases for the research project: [Design and analysis](#design-and-analysis) and [Critique](#critique). For each phase, create a **blog post** (an informal write-up, e.g. [How gzip uses Huffman coding](https://jvns.ca/blog/2015/02/22/how-gzip-uses-huffman-coding/)) and a **video presentation**. The video presentation should be no longer than 10 minutes and is not just a read-through or summary of your blog post but rather an engaging remix that brings your research project to life. The requirements are bolded in each phase of the problem.
The requirements are bolded below.
There are two phases for the research project: [Design and analysis](#design-and-analysis) and [Critique](#critique). For each phase, create a **blog post** (an informal write-up, e.g. [How gzip uses Huffman coding](https://jvns.ca/blog/2015/02/22/how-gzip-uses-huffman-coding/)) including a **video trailer**. The video trailer should be no longer than 2 minutes and brings to life a couple of the most interesting ideas from your research project to life. Think of it as an advertisement for your project to get people interested in learning about it. The video trailer should be embedded directly in your blog post.
## Design and analysis
......@@ -48,7 +50,7 @@ Then, describe the **design** of each data structure and algorithm in enough det
Finally, give an **asymptotic analysis** for each implementation and describe your assumptions to provide the best understanding to the reader. If the application for the data structure cannot be described as a type of set, map, or priority queue, give an **affordance analysis** toward a real-world problem.
Select one of the following design and analysis themes. Each design and analysis theme introduces 3 algorithms: discuss all 3 of them.
Select one of the following design and analysis themes. Each design and analysis theme introduces 3 algorithms: **discuss all 3 implementations**.
### Space partitioning algorithms
......@@ -60,7 +62,7 @@ Space partitioning often assumes multi-dimensional data: our input data is not j
1. [K-d trees](https://www.algorist.com/problems/Kd-Trees.html) ([2-d tree demo](https://www.cs.princeton.edu/courses/archive/fall20/cos226/demos/99DemoKdTree/index.html))
1. [Uniform partitioning](https://en.wikipedia.org/wiki/Bin_(computational_geometry))
For asymptotic analysis of k-d trees, include an analysis of [balanced k-d tree construction](https://en.wikipedia.org/wiki/K-d_tree#Construction). First, show that using merge sort as the median-finding algorithm results in an overall construction runtime in *Θ*(*N*log<sup>2</sup>*N*) where *N* is the size of the tree. Then, describe a more efficient approach that can construct a balanced k-d tree in *Θ*(*N*log *N*) time.
For asymptotic analysis of k-d trees, **include an analysis of [balanced k-d tree construction](https://en.wikipedia.org/wiki/K-d_tree#Construction)**. First, show that using merge sort as the median-finding algorithm results in an overall construction runtime in *Θ*(*N*log<sup>2</sup>*N*) where *N* is the size of the tree. Then, describe a more efficient approach that can construct a balanced k-d tree in *Θ*(*N*log *N*) time.
### Isometry and randomization algorithms
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment