summer 2021: project descriptions

23
Directed Research (DR) or Internship Opportunity with CSSE Summer 2021: Project Descriptions Table of Contents Research: Analyzing Technical Debt Using NLP......................................................... 2 Research: Extensions for Executable Domain Models .............................................. 3 Research: Meta-data Analysis for A Better Software Quality ................................... 4 Research: Attention Mechanisms for Source-Code Understanding ........................ 5 CSSE: COCOMO II Web App ........................................................................................ 6 CSSE: UCC-Java ............................................................................................................ 7 Machine Analytics: AI-empowered monitoring solutions for discrete manufacturing ............................................................................................................... 8 Project “Minions”......................................................................................................... 10 TikiMan-Go Game ...................................................................................................... 14 Parallel Agile CodeBot UX, Database and API code generation .......................... 17 CarmaCam.................................................................................................................. 20 Edtera student engagement and teacher productivity app .................................. 23

Upload: others

Post on 24-Jun-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Summer 2021: Project Descriptions

Directed Research (DR) or Internship

Opportunity with CSSE

Summer 2021: Project Descriptions

Table of Contents

Research: Analyzing Technical Debt Using NLP......................................................... 2

Research: Extensions for Executable Domain Models .............................................. 3

Research: Meta-data Analysis for A Better Software Quality ................................... 4

Research: Attention Mechanisms for Source-Code Understanding ........................ 5

CSSE: COCOMO II Web App ........................................................................................ 6

CSSE: UCC-Java ............................................................................................................ 7

Machine Analytics: AI-empowered monitoring solutions for discrete

manufacturing ............................................................................................................... 8

Project “Minions” ......................................................................................................... 10

TikiMan-Go Game ...................................................................................................... 14

Parallel Agile CodeBot UX, Database and API code generation .......................... 17

CarmaCam .................................................................................................................. 20

Edtera student engagement and teacher productivity app .................................. 23

Page 2: Summer 2021: Project Descriptions

Research: Analyzing Technical Debt Using NLP

Overview In this project we will analyze a data set using natural language processing

(NLP) techniques to have a better understanding regarding TD topics that

developers discuss. We aim to identify which tools the developers utilize to

manage TD, how they manage TD, challenges, … etc.

Skills Python

Natural language processing (NLP)

Contact Reem Alfayez ([email protected])

Page 3: Summer 2021: Project Descriptions

Research: Extensions for Executable Domain Models

Overview This is a research project. But most design work has been done. Students are

mainly working on the development of desired features and realizing potential

ideas.

We have been developing a toolkit which generates code for a microservices

infrastructure. The input for this code generation is one or multiple domain

models which are created and updated during the development iterations of a

project lifecycle. In this semester, we want to enhance and extend its abilities

from following aspects.

Objectives:

1. Domain Identification: Transform User stories (Natural Language) to UML

class. Specifically, we want to automatically extract domain model

(entities, attributes, behaviors, relationships) from user stories via

preprocessing of the sentences and analysis of Pos-tags and Type

Dependencies. Students will be working on existing code from the

previous semesters and are expected to improve, fix and evaluate the

code. Some NLP experience is preferred.

2. Some work of improvement on the current framework, including but not

limited to web development (we need a good UI), some manual work on

data (test set) preparation and manipulation, etc. Web developer and

Python developer are preferred.

Skills (you may need or learn) • Objective 1: Python, Stanford NLP API, NLP

• Objective 2: HTML/CSS, JavaScript, React, Python

Contact Bo Wang ([email protected])

Page 4: Summer 2021: Project Descriptions

Research: Meta-data Analysis for A Better Software Quality

Overview

Software developers are using Version Control Systems (such as Git) and Online

Platforms (such as GitHub) for a better, more interactive, well-organized

development. With all these provided, we have been able to fetch large

amounts of meta-data of projects for analysis. In this project, we will be using the

data we have collected, for various data analysis techniques, visualizing the

results, and drawing conclusions of how to improve software quality.

Depending on student’s skills, interests, and DR units, one could take part in the

following track:

● Research Track: data analysis and data collection.

● Development Track: data visualization as a web app.

Skills

General (Recommended): Java, Bash, Python3, PostgreSQL

Research Track (not mandatory): Data mining, mathematic, Machine/Deep

Learning experiences.

Development Track (not mandatory): at least one backend scripting language,

at least one front end scripting language, Docker, server deployment.

Roles

Data Analyst.

Web application developer.

Contact Jincheng He ([email protected])

Page 5: Summer 2021: Project Descriptions

Research: Attention Mechanisms for Source-Code

Understanding

Overview

Many approaches are emerging in understanding source code artifacts using

Deep Learning approaches. Most approaches use techniques most suitable for

natural language and are unable to handle the long-range dependencies

found in a software system.

In this project we will:

• Collect large amounts of data from publicly available repositories

• Modify a transformer architecture variant

• Train a variety of models in an unsupervised manner

• Fine-tune and evaluate the models on a downstream task

• Write and publish an academic paper

References:

• A Transformer-based Approach for Source Code Summarization

https://arxiv.org/pdf/2005.00653.pdf

• Unsupervised Translation of Programming Languages

https://arxiv.org/pdf/2006.03511.pdf

Roles • Researcher / Developer

Skills

• Pytorch

• Tensorflow 2

• Tensorflow 1

• XLA

• Academic Writing

Contact Iordanis Fostiropoulos ([email protected])

Page 6: Summer 2021: Project Descriptions

CSSE: COCOMO II Web App

Overview COCOMO II is one of the most prevalent software cost estimation tools that was

developed by Dr. Barry Boehm (the professor for the course). Since the original

implementation of the cost model had become outdated, some students have

built a new implementation in Java. Previous DR students worked on the

development of an API for COCOMO® users that desire to integrate the tool

with other scripts/tools for elaborate processes and built a Web-based

COCOMO® tool based on the API developed.

This semester we will continue to improve the web app to make it available

through CSSE DR server.

Skills ● Java

● Web design

● Web app development

● React

Contact Michael Shoga ([email protected])

Page 7: Summer 2021: Project Descriptions

CSSE: UCC-Java

Overview

Unified Code Count Java Version (UCC-J) is an application developed by DR

students over more than ten years. There are two primary uses of the UCC-J

system – (1) counting source lines of code (SLOC) and (2) differencing baselines.

UCC-J counts SLOC (source lines of code) in accordance with Software

Engineering Institute’s (SEI) code counting standards. UCC-J output metrics

include Physical and Logical SLOC, blank lines, comments, compiler directives,

executable instructions, keywords, differencing, duplicates, and cyclomatic

complexity.

UCC-J is intended so that non-technical as well as technical users can easily

obtain SLOC and metrics results. The US Government is an advocate of UCC-J as

a standard software metrics tool.

This project will provide students with the opportunity to work on a project that is

used by people, use and learn software engineering skills and programming

best practices, and an initial introduction to software maintenance.

Some tasks that will be worked on this project are: code integration, improving

testing capabilities, and developing maintainability index for new languages.

Skills ● Java

● Automated Test Frameworks

● Quality Assurance

● Debugging

● GitLab

Contact Michael Shoga ([email protected])

Page 8: Summer 2021: Project Descriptions

Machine Analytics: AI-empowered monitoring solutions for

discrete manufacturing

Overview

Machine Analytics is a startup founded by USC Computer Science graduate

student developing the next generation monitoring technologies for discrete

manufacturing industry.

There are millions of machines currently in action on manufacturing floors

throughout the world. They are often operated like an “open-loop” or “non-

feedback system”. We are working on creating novel systems that allows

companies to bring their machines online and turn them into “feedback systems”

by acquiring machine data. Then we extract insights from data and make it easier

to access such insights anywhere on connected devices. Such insights will allow

them to identify potential system failures and optimize production as needed.

This project entails building a prototype for “advanced quality monitoring”

solution. The project entails mostly working with software most of the time but

sometime you might interface with hardware ( Cameras, Sensors, Micro-

Controller/Arduino etc. ).

This project is a good fit for those who have background or interest in applying

knowledge from Robotics/AI, Computer Vision, Computer Graphics, Web

Technologies, to Manufacturing Automation.

1) Computer Vision:

• Acquiring RGB -or depth- data from camera using OpenCV/Python.

• Previous experience with -or willing to learn- python

• You will be building on top of an existing code base developed by

students during previous semester(s).

2) Web Technologies / IoT :

• REST APIs, JavaScript, NodeJS, FrontEnd (ReactJS)

• Android OR iOS development skills preferred but not required

• Familiar with AWS operations ( Lambda, API Gateway, etc. ) preferred

but not required

• Has taken and passed CS571-Web Technologies (Highly Preferred)

Page 9: Summer 2021: Project Descriptions

• For backend/API you will be building on top of an existing code

developed by students during previous semester(s). For mobile app

development, you will be starting from scratch.

Contact Pedram Safi ( [email protected] )

Page 10: Summer 2021: Project Descriptions

Project “Minions”

Overview Category: AdTech - Loyalty Gamification Concept: PokemonGo MEETS Loyalty System MEETS Ethereum Project Stage: MVP – functional BETA! Contact: [email protected] CONCEPT: Project Minions is an Loyalty Gamification system that leverages Augmented Reality (AR), “Virtual Pets,” and the collecting of AR objects in the physical World! Players battle their Minions in AR “Pop-up” arenas for prizes and rewards. We have a functional BETA! Our self-service platform utilizes intelligent, and often mischievous, virtual pets with engaging gameplay mechanics to facilitate and strengthen emotional bonds between Consumers and Brands. It’s addicting and an incredibly fun-filled experience!

The technologies and methods YOU will use &/or learn range from RESTful API Development & Integration, Amazon Web Services (AWS Cognito, APIGateway, Lambda,..), NLP w/ ML, Analysis of Social Networks (FB, Twitter, Yelp, etc.), NoSQL, Azure Spatial Anchors, Large-Scale Data Mining and Analysis, & UI/UX. YOU WILL SEFL-SELECT which one of the four (4) teams you will land: UX, Frontend, Backend, or Data Science. Additionally, you will be part of a sub-team responsible for only a specific & focused effort. Hence, you do NOT need

to have all the qualifications in the job descriptions below and you will be part of a team.

We are solving the problem of: “How to get people back into retail and event spaces!”

Join the Team/Network of Alumni (400+ “Project Minions” DR students) & work on a cool app!

YOU WILL HAVE OR WILL GAIN TECHNICAL SKILLSETS IN THESE AREAS DURING OUR

DIRECTED RESEARCH:

1. Backend Development (A couple or a few of these qualities):

• Great fundamentals in designing elegant REST APIs w/ Node.js or Express,

AWS Lambda a plus!

Page 11: Summer 2021: Project Descriptions

• Experience with NPM & PostMan to test endpoints and write Test Scripts for

your APIs

• Database knowledge: NoSQL (DynamoDB) & interacting between app to

backend cloud service

• Experience with Amazon Web Services (AWS); Cognito, APIGateway,

Lambda, Elastic Beanstalk, etc.

• Familiar with C# and Microsoft Azure Spatial Anchors

• Knowledge in using and implementing various 3rd Party APIs & IDEs (Plaid,

GoogleFit, HealthKit, FB, etc.)

• Understand and Experience with Website Scraping technology (examples:

BeautifulSoup, Scrapy, etc.)

2. Frontend Developer (A couple or a few of these qualities):

• Familiar with C# & Unity3D (e.g. scripting, textures, animatin, and GUI)

• Knowledgable of RestAPI function and integration

• Ability to create use cases and flowcharts (e.g. draw.io, etc.)

• Previous experience with iOS/Android development a plus

• Familiar with the Photon Unity Networking (PUN) suite to integrate

Multiplayer functionality

• Knowledge of developing Mobile apps using ARFoundation and Azure

Spatial Anchors is preferred

• Gameplay mechanics (RPG, FPS, etc.) programming a plus.

3. Frontend UI/UX Designer (Should have a few of these qualities):

• Excellent communication, presentation, and interpersonal skills

• Understand human-centric design with the ability to create use cases and

flowcharts (e.g. draw.io, etc.)

• Familiar with UI/UX prototyping & wireframing tools (examples:

Balsamiq/Sketch/Figma/Illustrator/etc.)

• Experience with mobile/Web design

• Self-motivated/Positive attitude with the ability to work in a fast-paced

and often ambiguous environment

• Capable of acting as a product manager when needed, able to think at

a high level re: product strategy

• Game design experience and knowledge of Unity3D with C# is preferred

4. Data Science developer (Should have a couple of these qualities):

• You are passionate in uncovering insights and information in Large User-

Generated data sets and content

• Hands on coding with Python, R, or MATLAB and thorough understanding

of XML, JSON, Web Services tech, NoSQL, and Data Structure

fundamentals

Page 12: Summer 2021: Project Descriptions

• Background in Probability Theory, Graph Theory, Time Series Analysis,

Pattern Recognition, or Large Scale Data Mining

• Experience building and analyzing graphs using frameworks such as

SPARK, GraphFrames, or GraphX

• Experience with Data Visualization and tools (e.g. Gelphi, GraphViz, Plotly,

Bokeh, etc.)

• Natural Language Processing (NLP) and web scraping experience a plus

• “CARC” (Center for Advanced Research Computing) access &/or

experience preferred

• AI/ML techniques (to include both supervised and unsupervised learning)

• Conduct training, testing, and validation of models using large data sets

SCREENSHOTS OF UX & APP:

Page 13: Summer 2021: Project Descriptions

Contact Joey Foldi ([email protected])

Page 14: Summer 2021: Project Descriptions

TikiMan-Go Game

Overview

Tiki-Man-Go is a Hawaiian-themed, Pokemon-Go style game which uses both

virtual reality and augmented reality techniques. Players “throw” lava fireballs

and other weapons at animated Tiki Men to gain territory while conquering the

big island of Hawaii. In VR mode the game is played “inside” a spherical image

of a location on the island, while in AR mode the phone’s camera is used as a

background. Our core technologies include Unity 3D, Mongo DB and Node JS

along with ARCore and ARKit for Augmented Reality.

We published the “Big Island Edition” of TikiMan Go to the App Store and

Google Play in early 2020. Watch our trailer video here. Current work in

progress includes development of the Monstrous Maui Edition, scheduled for

release in August 2021.

Page 15: Summer 2021: Project Descriptions

In addition to Monstrous Maui, we’re continuing to work on adding

Achievements,

and on finishing up Augmented Reality for both iOS and Android.

Page 16: Summer 2021: Project Descriptions

TikiMan Go was recently listed in Top 10 Hidden Gems to try out on iOS.

Please consider joining us on the TikiTeam, especially if you’d like to gain

experience with Unity and Augmented Reality .

Contact Doug Rosenberg ([email protected])

Page 17: Summer 2021: Project Descriptions

Parallel Agile CodeBot UX, Database and API code

generation

Overview Parallel Agile has developed a re-targetable code generator (CodeBot) that

builds complete working applications from a domain model and UX wireframes.

The generated system includes database schema, database access functions,

REST APIs, and front-end applications that we will be extending to a variety of UI

platforms – web frameworks, Android/iOS etc.

CodeBot ( https://parallelagile.net ) is a key enabler of the Parallel Agile

Development process.

CodeBot is a full-stack application generator that generates Mongo DB, Node JS and React JS

applications from a UML model

You can gain experience with:

• UX frameworks and design (React JS, React Native, Vue JS, Angular,

Flutter)

• Code generation approaches and techniques

• API development and microservice architecture

• Database design (including typeORM)

• DevOps (Docker, Kubernetes, Helm, etc.)

• Client side APIs (Java, C#, Swift, etc.)

• Interpreting UML models and wireframes

Page 18: Summer 2021: Project Descriptions

CodeBot UX generates React JS applications from wireframes

We’re extending CodeBot to make the generated apps easier to package and

deploy into a cloud-native or DevOps environment. This involves generating

integration hooks for CI servers such as Jenkins, Gitlab and CircleCI;

automatically pushing generated apps to Github; and generating Docker,

Kubernetes and Helm configurations.

CodeBot uses the latest DevOps technologies including AWS Lambda, Docker, and Kubernetes

Our original targets for CodeBot were MongoDB and Node.js. Over the last 2

semesters we’ve extended CodeBot in a number of areas, including: UX-based

app generation for React Bootstrap; automated testing using code-generated

JUnit and POSTMan test scripts; and additional target platforms for MySQL,

Postgres and Oracle. We’ll soon be moving these new capabilities into our

production CodeBot release. There’ll also be opportunities to add brand-new

features to CodeBot along the way, e.g. additional databases or UI platforms.

CodeBot Test Applications

In addition to working on CodeBot itself, we’re continually building new test

applications to exercise CodeBot features before they’re released to the public.

Our first two test projects, CarmaCam and TikiMan Go are being run as separate

CS590 projects. We’re currently working on customizing a project called

Location Based Advertising for two different business cases – a geofenced

Page 19: Summer 2021: Project Descriptions

coupon app (Free420) for which we’re recruiting React Native developers, and

a coupon delivery app for the Bahamas Visitors Guide. Another test project

under development is Video Fantasy Football.

CodeBot is at the forefront of a new way of developing software, sometimes

known as Low Code or No Code development. If any of this sounds interesting

to you, please apply to join CodeBot team!

Contact Doug Rosenberg ([email protected])

Page 20: Summer 2021: Project Descriptions

CarmaCam

Overview

CarmaCam (www.carma-cam.com) uses crowdsourcing to help eliminate bad

drivers from the road system. It has been developed over multiple semesters of

CS590 following the Parallel Agile process and we have patents pending on the

use of crowdsourcing for traffic incident management.

CarmaCam includes a dashboard camera mobile app (for iOS and Android)

that continuously records video and uploads it to the cloud via a touch-screen

interface.

Once uploaded, the license plate number of the offending vehicle is identified

and a short report filled out.

CarmaCam’s web app allows license plate images to be extracted from video.

After the report is filed, a crowd-sourced review process occurs where randomly

selected reviewers must all agree that the video shows bad driving. Reports that

Page 21: Summer 2021: Project Descriptions

pass this test are added to a database that can be accessed by law

enforcement and insurance companies who subscribe to the service.

We’ve been doing extensive amounts of machine learning work (see video) to

quality control the CarmaCam database. We’re currently integrating our

Machine Learning classifiers into the crowd-sourced review system.

CarmaCam’s machine learning capability differentiates it from other dashboard camera systems

Technologies used include Android, iOS, Angular JS, Mongo DB, and Node JS.

In other words, the Angular JS web app connects to our Mongo database via

Node API – aka MEAN stack. The API connects our dashboard camera apps to

the database as well. Additionally, we’re using TensorFlow and Open CV for

machine learning.

Current research includes moving our Machine Learning capability from the

cloud onto the mobile app, in addition to system-wide upgrades for database

security and data privacy.

Joining the CarmaCam project is a great way to gain experience with some

cutting edge technologies while helping to improve traffic safety and save lives.

Page 22: Summer 2021: Project Descriptions

CarmaCam includes emergency reporting and parking citation generation

Contact Doug Rosenberg ([email protected])

Page 23: Summer 2021: Project Descriptions

Edtera student engagement and teacher productivity app

Overview Edtera is building an app to support student engagement and teacher

productivity through collaboration networks and artificial intelligence. One of

the key objectives of the app is to apply machine learning and artificial

intelligence models to drive personalized learning as well as ensure precision

and convenience in a student’s learning journey. The Edtera app is an end to

end engagement system that is aimed at ensuring student proficiency in the

subject matter rather being conditioned to be test takers. Edtera was borne

out of the idea that large number of students in middle school through

college struggle to receive the assistance they need when they are stuck.

Since different students learn at different pace, personalizing learning

becomes critical. Edtera expands the possible universe of helpers a student

could turn to for assistance much beyond the primary network a student

belongs to in their immediate classroom. In order to optimize collaboration.

Edtera is unlocking the power subject mastery as a means of building

confidence, resilience and self-esteem. By providing a menu of tools to move

the student away from just being a test taker, Edtera is helping to build the

leaders of tomorrow who will become experts in their fields.

List of skills:

• Java

• Javascript

• Springboot

• Data Science

• Python

• R Programming Language

List of roles

• Data Scientists

• Front end application Developers

• Back end application developers

• Project Managers

• Software Testers

• Software Integrators

Additional information

A demo recording of the Edtera prototype is available by request to the 590 TA

Contact Uzo Okolo ([email protected])