summer 2021: project descriptions
TRANSCRIPT
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
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])
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])
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])
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])
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])
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])
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)
• 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] )
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!
• 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
• 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:
Contact Joey Foldi ([email protected])
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.
In addition to Monstrous Maui, we’re continuing to work on adding
Achievements,
and on finishing up Augmented Reality for both iOS and Android.
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])
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
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
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])
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
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.
CarmaCam includes emergency reporting and parking citation generation
Contact Doug Rosenberg ([email protected])
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])