Shaokang's Blog

Note: This is a group project, and I am only responsible for a portion of the work. Citations have been removed to adjust for website rendering. The original PDF is at the end of this page.

ChatGPT’s potential for human-like communication is noteworthy, but the mental health implications of integrating a real human identity remain understudied. This research focuses on introducing an AvatarGPT, a human-like avatar, to the ChatGPT interface to delve into these effects. A between-subject study (N=10) was conducted to investigate users’ responses, evaluate, and compare the effectiveness of AvatarGPT and ChatGPT before and after a conversation using the UCLA Loneliness Scale. Results show that neither using an avatar (p≈0.39) nor conversing without the avatar (p≈0.11) significantly improved loneliness scores. Additionally, using the avatar did not enhance willingness to speak, as measured by increased word counts, or significantly reducing loneliness score in percentage (p≈0.59). We believe that with a larger participant pool and a longer experimental period, we would be able to observe a more significant increase in emotional change.

The original paper is under review, citation format:

Shaokang Jiang and Michael Coblenz. An Analysis of the Costs and Benefits of Autocomplete in IDEs. In review, ACM International Symposium on Foundations of Software Engineering (FSE 2024)

Key points:

  • Worked with Michael Coblenz on the usability analysis of autocomplete.
  • Designed and executed an experiment with 32 participants using an eye tracker to evaluate the costs and benefits of IDE-based autocomplete features to programmers who use an unfamiliar API; analyzed data using JMP; and wrote a paper for the study.
  • Found that participants who used autocomplete learned more about the API while spending less time reading the documentation; found autocomplete did not significantly reduce the number of keystrokes required to finish tasks.

Note: This is a group project for a course. I am responsible for coding the actual model and optimizing its structure to make the model run much faster (over 200 times). I am also responsible for scraping data from the official site and setting up github action to regularly update the data source using puppeteer, which could simulate real user behavior and can never been blocked. You can find the relevant repository at ShaokangJiang/CSE-203B-crapping (github.com). My code can be seen at the end of this post.

Nowadays, new computer components are introduced into the retail market annually. Customers may find that the abundant component choices make it difficult to choose the optimum combination of hardware components while building a new computer. This project aims to take in the main components of a computer hardware build and provide several of the highest-performing options that can meet a consumer’s budget.

Are Python Type Hints helpful in competitive programming?

Abstract

Type hinting, which is a way to statically indicate the type of a value in the code, was introduced in Python 3.5. Before Python 3.5, python was a dynamic language in which variable type can only be inferred during runtime. Competitive programmers(CP) are a neglected group of people who need to solve algorithm challenges as fast as possible. In this project, we are trying to assess if using Type Hints is helpful for competitive programmers. We conducted a pilot study with 5 programmers from different backgrounds, 1 of them only provided interview data. We found that type hints may not be useful for CP in Python, and autocomplete suggestions are often not good enough to be accepted. The survey indicates that People also dislike type hints in Python for CP tasks. Keywords: Type hint. Competitive programmer. Python. Autocomplete.

This is a tool built to automatically scrape information from government websites using Puppeteer and provide updates to the WeChat platform using wxpusher. The source code is available at ShaokangJiang/daily-report (github.com). Additionally, it contains several wrapped functions, including translation, nature language understanding, and interaction with Cloudflare Worker to save and interpret daily case data. Puppeteer is capable of simulating real user behavior and avoiding being blocked by too frequent requests. This project has been run for over 6 months.

This post contains course related projects, forked projects with added functionality, modified projects. Some of them are big, some of them are small. All other projects in project tab are designed, coded, solved on my own and most of them are not required by a course. Click read more to read my course related projects, added function, modified projects.

In addition to Stage 1 of this app, Stage 2 is a voice interaction app based on locally trained natural language processing model by using Nlp.js, which detects and analyze phrases based on machine learning, and voice recognition by using ibm waston cloud. Due to compatibility, limitation in testing, privacy issue, the published version only contain chat feature using which user is able to add items to their lists. Chat robot will communicate with user in multiple rounds and extract related information to add to the existed lists. This app is built on Expo managed workflow and thus has cross-platform support. The future published version will integrate Tensorflow and using float32array to run locally train and run voice recognition. Dark and light theme is following user’s system default. This app is done solely on me. More details come below:

This is an robot chat app based on locally trained natural language processing model by using Nlp.js. It could answer questions in different situations and is able to run and answer questions based on context totally locally. Due to the limitation of the local dataset, it can only understand a limited number of phrase. It is still a good app to chat with. In each run, you can also choose to save history chat or not and choose to extract entity information or not. So, it is also a good app to see what a phrase will happen in react native version of Nlp.js in expo. Dark and light theme is following user’s system default. This app is done solely by me.

This is a serverless web application. By utilizing Cloudflare worker, similar to edge computing, and personal effort, a constraint distributed structure with fast response time and availability is produced. The making of Financial website is actually led by me. The core part, including design, connection between different components, Devop structures, lots of coding, ARIA, are done by me. Other people’s attribution, including contribution on knowledge passage content, useful tools, quiz generation and verification, are also important. We follow up the Business Agility and use JIRA to do weekly jobs and finish this product in 8 weeks. This is the product being produced based on Design specification by me, most parts stay the same as design. This website designed by me contains knowledge from cross area and utilize knowledge including data representation, prediction, interactive design, interacting with phone app and much more. More details regarding to benefits and incomparable feature could be saw below:

Cloudflare worker is a serverless application based on v9 engine. The structure is a little bit different than the Node.js. Endpoints is familiar to most people in developing. But this seems to be different on worker. And it is useful especially when different services is running in the same worker. This one will show how to integrate traditional endpoint feature on cloudflare worker to likely have a fake endpoint handler. This is a sub-project of Financial website.

This is an app provide a easy to use interface to help user organize their spendings/earning and see a summary and guidance by visiting yearly budgeting tool on capitaltwo’s tools page, which will generate those results based on user’s history spending and provide user guidance about their future spending. User is able to provide an importance level to each future spending to guide system which item should be fulfilled at first. System will also intelligently detect user’s past earning and spending and ensure user’s future spending/earning include those fixed monthly/bi-monthly income/expense. Everything is done locally without risk of leaking privacy information. The stage 1 of the app provide a wonderful, easy to use interface and basic functionality, together with cross platform support, including android, ios. More details is in below. Dark and light theme is following user’s system default. This app is done solely by me.

This is a project done for capital one to teach college students about financial stuff. Below is the design specification and schedule done by me that the entire group follows at last, including tools in using, website structure. Refer to the Publication of Financial website to know the final product of this website. This design specification is done solely by me with improvement advice from group members. This design contains my experience from multiple sources in the past few years, the final product is intended to be a well-performances, useful, containing academic value product.

In a system where multiple types of energy source exist, running all components at all available times could be a waste by considering multiple different factors, including the device depreciation, normal energy in maintaining the entire system running. This waste is a significant factor when lower wind for wind producer happen, or lower light for light producer happen, or other stuff.

This is a javafx based energy running simulation simulator with choco-solver to find optimal threshold, which will be used to determine the time to turn on the device and time to turn off. It contains methods to analyze history data to predict a threshold to make the entire system running as efficient as it could. After proper data is provided, system will run based on a threshold setting from user or automatically analyzed based on history data so that no energy will be wasted. This app is done solely by me.

In a system where multiple types of energy source exist, running all components at all available times could be a waste by considering multiple different factors, including the device depreciation, normal energy in maintaining the entire system running. This waste is a significant factor when lower wind for wind producer happen, or lower light for light producer happen, or other stuff.

This is a web based energy running simulation simulator with jsLpsolver to find optimal threshold, which will be used to determine the time to turn on the device and time to turn off. It contains methods to analyze history data to predict a threshold to make the entire system running as efficient as it could. After proper data is provided, system will run based on a threshold setting from user or automatically analyzed based on history data so that no energy will be wasted. This app is done solely by me. More details is as below:

In the final project of this course, I tried to focus on finding the correct product rating without golden set and read different papers. At last, I focused on Avoiding Imposters and Delinquents: Adversarial Crowdsourcing and Peer Prediction and write a reading report about it. The original file is in Latex, the following is the generated file. Click read more to see the detail.

Automatically add comments to Java source code

This program can not understand your code. What it is doing is to add some comments based on specific rule and make your program full of comments to meet the requirement of dummy comments required in some courses.

And actually, this program can only add comments to some specific area. For some other areas, it could detect it and send a window to ask you for comments and provide some suggestion. This app is done solely by me.

A simple method to write words

I like to use voice input to write words. But I didn’t find an easy to use voice dedication program with dynamic correction. So I made this one. A java voice input interface using iflytek voice dictation with dynamic correction. This app is done solely by me.

This project is a group work designed and solve by Shaokang Jiang & Katherine Fu for course CS524 project.

Optimization is a powerful way to solve real problem in a short amount of time. It needs us to use more math when we design solutions instead of using computing resources when the problem runs. GAMS is a powerful optimization software. GAMS could do calculation and generate equations in seconds. By using CPLEX, we are able to reach solutions in seconds. In this project, we utilize GAMS feature (dynamic sets, mip, etc) and nearly solved a real problem.

Problem

College library optimization problem

We consider a simplified example of arranging the number of students who use the college library for studying.

Hatefate website application deployed

The website made by me for my CS100 project has been deployed and works normally at This Website. In webpage browser is at bottom.

Source code is at This Github Page

This is a website made by using SQL as database and Material Theme as layout.

Function included: login via email, login via account name, register, reset password via email, set your favorites, and find people who has the same favorites as you.

Due to the reason that the domain(huangsk100.me) was expired. This website is for demo only right now. For testing, test account information is as follows: