| Name | Role |
|---|---|
| Ruslan Radetskiy | Scala |
| Daniel Au | Git, test-check |
| Joseph Yang | Scala |
| Steven Woo | Gradle, test-check |
Maxim Titley
Phone number: 347-927-6045
Email: silversurferonline@gmail.com
Office: 232NE
Maxim Titley is currently our professor for the class Object-Oriented Programming in which three of us are enrolled in. He has also taught some of us for the Design and Implementation I class for the Spring 2017 semester. Other than that, we have no affiliations.
The use of data structures when implementing ideas by writing code is a huge benefit to programmers. All programmers import different libraries to use various data structures to avoid writing their own implementations. Professor Titley has proposed the idea of implementing skip lists and skip graphs and claims he has not seen an implementation of skip graphs in any language which means there are few to no implementations. Skip graphs are a tree structure based on skip lists, which have better insertion and deletion times than linked lists. Skip graphs are useful for searching in P2P networks which are highly useful as users can share files without the use of a server.
We propose to implement skip lists in Scala. This will be done by first implementing the Node class. After we are finished with the Node class, we will implement the skip lists themselves. If time permits and we believe we have a better understanding of skip lists and the Scala programming language, then we will attempt skip graphs.
To implement skip lists in Scala, we will read about skip lists by those who created it. There are scholarly papers by the creators which discusses the benefits of skip lists and skip graphs including the running time and break down the importance of it. Then we will read about skip lists in our data structures textbook which implements skip lists in another language. In addition, since we want the implementation to be done in Scala, we will learn the programming language. This will require us to understand the functionality of a functional programming language. After being proficient with Scala, we will implement easy data structures using Scala to get practice. While we are programming, we will also implement tests for our code to fix errors as we program.