For building robust software applications, it is important for the software engineer to make efficient use of the available building blocks. Learning the basic language constructs is only the first step in this process. It is becoming increasingly important for software engineers, especially students, to get acquainted with the available...
With the overwhelming number of open-source resources available online, the developer community is always looking to expand their knowledge. Collaborative development has been recognized as an efficient method of learning by several students and industry professionals. Hence, developers seek to obtain more hands-on experience while collaborating with people of similar...
People find it difficult to do tasks which are related to maintaining correct posture. For activities related to performing a posture routine correctly by oneself, unfortunately there aren’t many systems out there which help people to do so and provide feedback on what went wrong and how they could improve...
Safety at home and other indoor venues is one of the most important aspects of everyday life. Yet according to the National Fire Protection Association (NFPA), in 2018, approximately 3000 people died in home fires, while 11.7 thousand people were injured. Most household fires start as cooking accidents, which can...
More than 50% of American families have at least one pet nowadays, and the number is still rising. Pet caring needs are also growing with it. When people need to leave home for work or vacation, leaving pets home alone might bother some pet owners. Unfortunately, existing approaches all have...
Collaboration with people in a team environment to build software is common. In the beginning stage of a team project, it is required that a team decides what tools and services to utilize to control the source code for the project, communicate with the members, and manage the tasks. In...
Significant increases in the amount of data being streamed, collected, and processed have resulted in widespread adoption of the use of microservices to build scalable software applications. Unfortunately, current tools and frameworks are often insufficient at providing a simple, unified experience for the design, development, and deployment of microservices. They...
The design of programming tools is slow and costly. To ease this process, we have developed a design pattern catalog aimed at providing guidance about how to design tools for developers. This guidance is grounded in Information Foraging Theory (IFT), which empirical studies have shown to be useful for understanding...
End-user programmers often struggle to create programs that run quickly and effectively, which can be a major deterrent in completing their tasks as desired. Current research has primarily focused on catching user mistakes, such as errors or misused formulas. However, end users deal with issues other than just correctness. In...
Software engineers often need help with discovering and learning how to use APIs. For example, software engineers who are starting to learn Java, and they want to implement a certain feature in a program, they might want to reuse existing APIs in order to save time versus rewriting it themselves...