Spring 2024 EL/R Project Offerings

New Projects

pgAQP Plugin - Zhuoyue Zhao

Openings (6)

Description

The overall goal of the project is to create an open-source experimental PostgreSQL plugin called pgAQP for approximate query processing in hybrid transactional/analytical processing systems. Approximate query processing is a new database query processing technology that allows one to query a large database with significantly lower latency with a small trade-off in query answer accuracy. The plugin will be used for research, evaluation and education purposes, and will enable any existing PostgreSQL database to add approximate query processing support.

The immediate goal of Spring 2023 is to migrate a special database index module, which is currently a research prototype built inside PostgreSQL 13.1, into a standalone library, so that this index can be used in newer versions of PostgreSQL system in the future. The code migration effort has been partially completed by a departing student in our lab. The EL/R students will learn the necessary background knowledge, read the code base, write API wrappers, and write test cases.

Skills

SQL GoogleTest framework

Autolab - Jesse Hartloff

Openings (10)

Description

Students can join the ongoing DevU project which has the goal of replacing AutoLab. DevU will be built from the ground up here at UB with extensibility as a core design philosophy. The app will also have a full featured API allowing instructors and student to write their own software that will interact with DevU whenever they want a feature that has not been implemented in the project itself.

Short-term (1-semester) goals include building the autograding pipeline, maintaining the gradebook for each course, and building out the front end.

Systems Research Validation - Haonan Lu

Openings (6)

Description

For the first semester, the students are expected to understand the evaluation process of systems research, be able to re-create the evaluation experiments of one simple system prototype, and reproduce its evaluation results. To understand the process of systems evaluation, the students will read multiple research papers while focusing on their evaluation sections and read articles on a variety of issues (open questions) related to systems evaluation. To re-create simple experiments (and reproduce their results), the students will receive training on using cloud testbeds such as CloudLab and ChameleonCloud and gain experience in designing, setting up, and running systems experiments on real, physical machines on these testbeds.

The long-term goal of this project is to re-create evaluation experiments of a variety of classic and well-known systems using the general automated evaluation framework we will be designing (a project on which I advise two PhDs and a MS student). This project is to improve the fairness and completeness of systems evaluation which is a critical component of systems research, making it easier to cross compare systems work and improving reproducibility and replicability. Proposals that improve reproducibility and replicability of systems research are a rising trend in the systems community. This framework can also be used as part of the course projects for CSE486/586 Distributed Systems, allowing students to better understand different systems designs and gain handson experience with systems implementations. The part of the work assigned to the EL/R project is suitable in terms of the scope and feasibility. The undergrads can possibly (if they want) receive help/guidance from the Ph.D. and MS students in the evaluation framework project, and participate in designing the framework if they are interested and when they are ready.

Skills

C++, Java, or Go

VR Ampitheater - Karthik Dantu

Openings (6)

Description

We want to build a visualization of the amphitheater from Rome on the MagicLeap 2 platform. This will be used in an Introduction to Archeology class taught by Prof. Alessandro Sebastiani from the Dept of Classics in CAS. The project will be in collaboration with him.

Skills

3D design; Gaming engine design; 3D Simulation; AR/VR programming

Indoor Wireless Localization - Roshan Ayyalasomayajula

Openings (6)

Description

Indoor Wireless Localization (specifically Wi-Fi) has become quite widespread, there is an active Task Group 802.11bf as well to bring this into standards and there are many learning based solutions to bring localization accuracy to sub-meter level. While, this is great news for indoor automation, there are deployability concerns in terms of generalizability and privacy concerns surrounding it. While, the most popular approach is to use data based ML-models to provide sub-meter accurate localization algorithms, there are still requirements for generalization to different environments and better accuracy.

During the first semester, the students will develop a web-app to get data from Wi-Fi routers for a given smartphone. The data is then to be processed online to pass through an ML-model. While, there is a baseline ML-model, they should develop and improve the generalizability and accuracy of the localization algorithm (which would be almost similar to object detection problems). The next stage of the project would be to develop quantifiable differential privacy for these learning models, by adding quantifiable noise to the input images.

Skills

Web App Development Online Data streaming Cloud Data Storage Online Processing Machine Learning Differential Privacy (in the long run) Signal Processing Android/iOS App Development

Choreographic Programming - Luke Ziarek and Andrew Hirsch

Openings (4)

Description

Choreographic programming aims to simplify distributed systems / concurrent systems programming by allowing a programmer to specify the system in its entirety - participants, their computations, and communication patterns. From this high level choreographic program, we can synthesize concrete implementations for each node in the distributed system or each thread in the concurrent system.

The team will be responsible for expanding the capabilities of our compiler for a choreographic language. Students will start by learning choreographic programming and write test cases and sample programs in the language. Students will then build in syntax highlighting for both emacs and visual studio. Students will also have the ability to work on the back end, creating compilation support targeting LLVM, C, and/or native code.

Existing/Continuing Projects

Teamwork Tool Development - Matthew Hertz

Openings (4)

Description

Enhance the current UI/UX of the teamwork tool (https://cse.buffalo.edu/teamwork) which allows instructors to create and administer peer and team feedback for a variety of course needs. This will also include several feature enhancements to allow the tool to be used across more courses. Skills Web Development

Android and Java Malware Detection - Luke Ziarek

Openings (2)

Description (from current student team)

The project will be mostly based around a compiler known as SootUp (successor of Soot) which is a tool used to aid in classifying Android and Java malware. Students will be modifying our current version of SootUp to help enhance the capability of analyzing malware. Ultimately, the project will be involved in writing static and dynamic analysis to identify features that can be used by a classifier to help make a determination about whether a specific program is malicious or not.

Necessary Skills

Strong Background knowledge of Java Strong background in OO-design Background knowledge of git and command line Background knowledge of Maven/Gradle Basic knowledge of writing/navigating documentation (Optional) Knowledge of Android systems (Optional) knowledge of Android API Responsibilities Be familiar agile/scrum methodologies Ability to perform timely completion of weekly tasks: theory, implementation, documentation, or research. Working with malware and/or compiler. Current Team Nawar (Senior) Ria (Junior) Vrushaali (Junior)

CTF Platform Development - Ziming Zhao

Openings (4)

Description (from current student team)

If you choose to join this project, you will be able to help develop a web platform to enhance cybersecurity education. Dr. Zimeng Zhao has plans to publicly release his pwnIoT platform for anyone in the world who is interested in cybersecurity or in CTF (capture the flag) challenges. The platform will both be a place for users to learn about CTF, keep track of CTF challenges they have completed, and submit their own CTF challenges. This project is best suited for students who are able to work on it for multiple semesters due to the fact that there is a large codebase that we are pulling from.

Skills

  1. Docker
  2. Web Development(HTML and CSS)
  3. Git
  4. Cloud Setup
  5. Database Management

Preferred Skills

  1. Familiar with docker developing environment
  2. Familiar with Linux terminal environment
  3. Familiar with Web Developing
  4. Knowledge of databases as well as SQL

Vizier UI/UX Development - Oliver Kennedy

Openings (1)

Description

The Vizier team is rebuilding their computational notebook Vizier, and wants to take this opportunity to develop a simpler, but more powerful data visualization component. At a really high level, this component takes in a dataset and spits out a chart based on a set of user-provided instructions. Unsurprisingly, this is easy for the common case, but data vis is a minefield of corner cases and exceptions.

At the low end of the objective spectrum is simply creating a shiny, cleaner UI for the existing interface, adding a few new plot types. Going beyond that, additional objectives include:

  • Adding standard analytical data visualizations that require data munging (e.g., histograms or CDFs)
  • Annotation (e.g., labels, notes, etc)
  • Coming up with a cleaner way to let users distinguish between data on a common x-axis (each row defines one point for each line) and multiplexed data (an attribute in the dataset determines which line the point belongs to)
  • Formatting (e.g., x/y-axis labels, etc)
  • Adding support for Vizier's built-in semantics for communicating uncertainty
  • Multiple-dataset support
  • Trendlines
  • One really really nifty feature would be to leverage the fact that Vizier uses VegaLite for data vis. Specifically, VegaLite has an editor where you can manually "tweak" a visualization. It would be nice to see if there's some way to pull those tweaks back into Vizier to allow users to re-apply them.

Skills

Data Vis experience (matplotlib, d3, gnuplot, excel), Apache Spark, SQL.