Teaching Philosophy

Fostering creativity in the minds of students is one of the most rewarding experiences in academia. Towards this end my, aim is to facilitate students by: (1) providing them the basic foundations of concepts, methods, and techniques; (2) encouraging them to be creative in the application of the basic foundations to unique problems; and (3) motivating them to challenge the foundations to develop novel approaches for new problems. I believe such a model will enable our future graduates to tackle a variety of scientific, social, and environmental challenges.

Present Teaching

  • Fall2017

    CSC 495/693 - Data Science

    The course is highly interactive, and will explore the theories, techniques, and the tools necessary to gain insights from such datasets. Using a problem-based learning philosophy, students are expected to make use of such technologies to design data solutions that can process and analyze real-world datasets for a variety of scientific, social, and environmental challenges. Syllabus

    Department of Computer Science, University of North Carolina – Greensboro

  • Spring2017

    CSC 490 - Senior Capstone

    Application of fundamental knowledge and skills in computer science to develop software applications/projects capable of solving real-world problems. Syllabus

    Department of Computer Science, University of North Carolina – Greensboro.

  • Spring2017

    CSC 495/663 - Network Security

    The course explores the topics of securing computer networks with the utilization of cryptographic authentication, communication, and transmission protocols. Syllabus

    Department of Computer Science, University of North Carolina – Greensboro.

  • Fall2016

    CSC 390 - Programming Languages

    The course teaches students concepts of block-structured, object-oriented, functional, logic, and concurrent programming languages. Comparative study of syntactic and semantic features of these languages and writing programs using them. Syllabus

    Department of Computer Science, University of North Carolina – Greensboro

Past Teaching

  • Fall2015

    CSE 4990/6990: Big Data and Data Science

    Department of Computer Science and Engineering, Mississippi State University

  • Spring2012

    CSE 1384 - Intermediate Computer Programming - Python and C++

    Lab Instructor, Department of Computer Science and Engineering, Mississippi State University.

  • Fall2011

    CSE 1284 - Introduction to Programming Languages - Python

    Lab Instructor, Department of Computer Science and Engineering, Mississippi State University.

Student Projects

CSC 490 - Senior Capstone

  • NostraDomicile

    Preditive model for home sale

    The goal of the NostraDomicile Project is to create a web application whose two main functions are to predict whether a house will sell in a specific area based on the home’s attributes, and given a zip code, what are the most important factors leading to a sale in that area.

    NostraDomicile will accomplish this goal by retrieving and storing housing market information using a Zillow API and MySQL database, using machine learning to evaluate housing data and determine factors influencing home sales in a particular area, and creating a user-friendly interface for users to view data about factors influencing home sales and create data visualizations about houses on the market based on user preferences

    Team:

    • Richard Andrews
    • Ochaun Marshall
    • Christian Simaan
    • Jeremy Hutton

    Link: https://github.com/nreader72/NostraDomicile

  • Prioritize

    Priority-based personal assistant application

    Prioritize is a priority-based personal assistant application created to help keep track and organize daily, weekly, and monthly tasks. It has been designed specifically with ease of use in mind, to simplify and streamline daily tasks. Prioritize differentiates itself from other calendar based applications with it’s signature priority system, which will determine when Prioritize will notify the users of their events.

    Prioritize will utilize the Google Drive API, which will allow syncing of files between systems, as well as both online and offline functionality. Reminders will be stored in a SQLlite database locally, as well as in a JSON format for sharing between devices. Lookups into the database won’t need to happen often, it is simply to store a list of reminder objects. Google Drive will handle the syncing aspect for us. If the user deletes the application, their data will remain linked to their Google Drive account unless deleted from there as well. This is beneficial, if a catastrophe occurs, their data will remain safe, provided they have synced with the Drive. In addition to data storage, Google Drive is beneficial in the security aspect as well, as it handles security and ecruption of data when being synced.

    Team:

    • Joel Wilhelm
    • Shahrukh
    • Wajahat
    • Cody Jones

    Link: https://github.com/cejones9/Prioritize

  • Ketch

    Facilitate transactions between two local parties for trading goods and services

    Ketch is an iOS mobile app designed to facilitate transactions between two local parties for trading goods and services. It will utilize geolocation to create a local market derived from nearby users and allow them to buy and sell goods in a local marketplace. The program will emphasize security foremost, forcing the users to validate their identity, provide a secure transaction system, user reviews, and a safe meeting space for the actual transaction. The end result will be a more secure, safer way to buy and sell goods with far less fraudulent transactions occurring to the users.

    Team:

    • Sawyer Beaton
    • Connor Butler
    • Patrick Carder
    • Keaton Greason

    Link: https://github.com/connorbutler44/Ketch

  • Citizen

    To inform and educate users about new bills, bills that have been made into law, and the legislative branch of government.

    To reach the most users possible, this project aims to be platform agnostic and consists of both a website and mobile application. The mobile application and website will mirror each other very closely – each providing the same functionality and information. Users will be able to view information about bills, laws, legislators, filter information based on their location, and log in via Facebook. Providing service, a “backend”, will manage data acquisition from API endpoints and data queries from mobile application/website. This backend will also manage user interactivity to include user preferences, accounts, and an internal “voting” system which allows users to express support for various legislature.

    Team:

    • Charles Mayse
    • Matthew Marley
    • Matthew Rubacky
    • Muhammed Akbay

    Link: https://github.com/cnmayse/citizenapp

  • Dungeon of the Mighty Titan - Vanquish (DMT-V)

    A multiplayer video game built using Unreal Engine 4 that allows for 3 to 5 players to fight AI controlled monsters in a dungeon-like setting.

    Over the years, there has been a surge in popularity of massively multiplayer online games. One prominent feature of these games is the dungeon raiding mechanics they employ. Players form groups to fight hordes of enemies and powerful bosses as they travel through dungeons in order to obtain rare items. However, players will usually have to play for many hours before they can experience these adventures, as they require high-leveled and well-equipped characters to survive. With our game, players will be able to form a group and raid dungeons right from the beginning.

    Team:

    • David Bond
    • Matthew Yengle
    • Timothy Canipe
    • Vishal Bhatt

    Link: https://github.com/myengle/DMT-V

  • StudyBuddy

    The Study Buddy application will allow students in a particular class to communicate with other students in the same class.

    When it comes to classes and absences, some people would rather be without the day’s information than to find someone willing to share their notes. This application aims to aide in that process by eliminating the face to face interaction, while making it easier to find those who were in class and are willing to share notes. Users will be able to go to the website and download the software. Once the software has been installed, the user will then be able to log into the server and enter codes corresponding to classes in which they are enrolled. The user will have the option to join a specific class chatroom and see all of the other students in the class. They will have the ability to speak to everyone publicly or be able to send private messages. The user will have the ability to view pictures provided by other students containing notes from the day’s lecture or personal notes designed for the aiding of remote study sessions.

    Team:

    • Jaee Carr
    • Tony Ratliff
    • Trayvon McKnight

    Link: https://github.com/Metalaxe1/StudyBuddy

CSE 4490/6990: Big Data and Data Science

  • Film Analytics

    Predicting Movies Rating Using IMDb Data

    Film Analytics is a project aimed at predicting iMDB movie ratings using covariates like genre(s), actor(s), director(s), and plot keyword(s). The implemented predictor system uses and compares two regression algorithms—linear regression and ordered logistic regression (also known as ordinal logit)—for predicting the outcome rating and the predictive improvements, bringing insights about the data. We have also analyzed the trends occuring in the iMDB movie data (obtained from OMDb web API) as well as the web-scraped box office data from iMDB itself. Incorporating naive Bayes classification method, the maching learning model also has the ability to include certain plot keywords as features for predictive analysis.

    Team:

    Link: https://github.com/somyamohanty/Data_Dawgs

  • Pixel Dawgs

    Image Classifier

    The main idea behind this study is to create an image classification algorithm that will read the image and produce several tags. These tags will be generated using image-processing tools like SLIC (Simple Linear Iterative Clustering), SOBEL filtering, and DBSCAN (Density Based Spatial Clustering of Applications with Noise). Initially ~2000 images will be used to train the code using machine learning algorithm. Later the classifier will predict tags on the test data. Each tag will then represent a certain layer of the image. Out of all the tags created top 5 tags will be used to define the image with % accuracy.

    Team:

    • Manish Borse
    • Nick Rosetti
    • Veera Karri
    • Shreya Gupta

    Link: https://github.com/somyamohanty/Pixel_Dawgs

  • Clouded Minds

    Twitter Event Detector

    Due to the nature of Twitter, tweets are able to provide real-time data for various world occurrences. We decided to focus on sports, since we believed that the tweets posted by the users watching sporting events can provide valuable insight to key events. Due to the wide range of sports that exist in modern world, we decided to limit our research to the most commonly followed game, soccer. In order to accomplish this, tweets were collected from Twitter’s streaming API and placed into a MongoDB in which tweets were filtered by official game hashtags and team names. By performing a post-hoc analysis of spikes in the volume of tweets, we were able to detect match events such as goal scored, the scorer’s name, the scorer’s team, and penalties throughout the game. Likewise, we tested the use of sentiment analysis to further correlate the relationship of the tweets and overall match progress.

    Team:

    • Deepak Gautam
    • Sandra Lee Gibson
    • Michael S Nichols
    • William Wheeler Carter

    Link: https://github.com/somyamohanty/Clouded_Minds

  • Predicting PlayStore Rating for Apps

    Machine learning for understanding appstore utilization

    Google Play Store is the most popular hub for android applications. With the increasing number of applications being uploaded in the store everyday, users prefer to download apps based upon their previous ‘Ratings’. The higher the ratings, it could be assumed that the application is more reliable and popular. Being in a competitive world of building android applications, it is the goal of all developers to maximize or increase the ratings of their applications. We have developed a system which would help developers to predict the rating of their newly uploaded applications based on their ‘Attributes’. We have retrieved a public data set of existing play store applications till August 2015. Several attributes of these applications like applications size, name, category, description, price etc have been used to build a training model that will be able to predict ratings for new applications. To build this training model we have used standard machine learning regression and classification methods. The learning performance of the model has been tested on the existing applications that already have their ratings. This model will be useful towards making continuous improvements of the new applications to boost their popularity.

    Team:

    • Naresh Adhikari
    • Lucas Andrade Ribeiro
    • Ayush Raj Aryal
    • Daniel John Sween
    • Naila Bushra

    Link: https://github.com/somyamohanty/5DBMinds