@article{guo_song_gehringer_2018, title={Early Detection on Students' Failing Open-Source based Course Projects using Machine Learning Approaches}, DOI={10.1145/3159450.3162312}, abstractNote={Open-source course projects offer students a glimpse of real-world projects and opportunities to learn about architectural design and coding style. While students often have more difficulties with these projects than with traditional "toy" projects, instructors are also spending excessive time on grading miscellaneous projects. There is an improvising need for means to help students and instructors with their difficulties. This poster presents our work on predicting which course projects are likely to fail at an early stage with machine learning approaches. We collected metadata from 247 course projects in a graduate-level Object-Oriented Design and Development course over the past 5 years, built models to fit the course projects and use the classifier to help instructors to identify potential failing projects, thus to help students to salvage their works. By assuming that the project acceptances are related to the working patterns of project teams, we made innovations of adding temporal-based patterns into the training data, and achieved 86.36% classification accuracy with the addition of those features. We also proved several observations, such as most of the rejected projects are those begun relatively late during the project period, and the projects which modified more files/code does not result in better possibility of being accepted. By contrast, accepted projects tend to deliver a volume of code that is neither very small nor very large, compared to rejected ones. Our results also suggest that setting milestone checkpoints at roughly a week before the submission deadlines would enable more students to succeed in their OSS projects.}, journal={SIGCSE'18: PROCEEDINGS OF THE 49TH ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION}, author={Guo, Yifan and Song, Yang and Gehringer, Edward F.}, year={2018}, pages={1088–1088} } @article{hu_song_gehringer_2018, title={Open-Source Software in Class: Students' Common Mistakes}, ISSN={["0270-5257"]}, DOI={10.1145/3183377.3183394}, abstractNote={Introducing Open Source Software (OSS) projects into a software-engineering course has many advantages, for instance, allowing students to learn good coding practices from real-world projects, and giving students a glimpse of a real project. However, it is not easy for instructors to induce one or more OSS core teams to lend support for course projects. The alternative is to have students work on "toy features"—features for these projects not specified by OSS core teams, but by teaching staff. However, the project may be unimportant to the OSS project or may disrupt its design, making those code contributions unlikely to be integrated into the OSS code repository. In this paper, we, as both teaching staff and the core team for one OSS project called Expertiza, discuss our experience in supporting 700 students on 313 OSS-based course projects in the past five years. We manually checked these course projects, and summarize 13 common mistakes that frequently occur in students' contributions, such as not following the existing design or messy pull requests. We propose five suggestions to help students reduce the frequency of common mistakes and improve the quality of their OSS pull requests.}, journal={2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: SOFTWARE ENGINEERING EDUCATION AND TRAINING (ICSE-SEET)}, author={Hu, Zhewei and Song, Yang and Gehringer, Edward F.}, year={2018}, pages={40–48} } @inproceedings{song_pramudianto_gehringer_2016, place={Erie, PA}, title={A markup language for building a data warehouse for educational peer-assessment research}, DOI={10.1109/fie.2016.7757600}, abstractNote={Peer assessment has proved to be a useful technique in all levels of education. The process of giving and receiving comments can encourage critical thinking and help students learn both from reviewing and being reviewed. Peer assessment generates a large volume of data, especially if done online. Online peer-assessment systems are designed differently and use different schema for their data, which complicates the work of comparing different designs. For example, some systems are based on ranking - reviewers rank the artifacts they are asked to assess, while other systems use rating - reviewers assess a single artifact at a time and score it on various criteria. Comparing these two types of systems, e.g. on rating accuracy, or usefulness of formative feedback, can be challenging because researchers need to learn the design and terminology of each system before analyzing the data. We introduce a Peer-Review Markup Language to provide a common definition of terminology across multiple systems. We are using this markup language to build a data warehouse for data from different systems. We discuss issues raised during this process and our approach to solving them.}, booktitle={2016 IEEE Frontiers in Education Conference (FIE)}, author={Song, Yang and Pramudianto, Ferry and Gehringer, Ed}, year={2016}, month={Oct} } @article{rahman_williams_2016, title={Security Practices in DevOps}, DOI={10.1145/2898375.2898383}, abstractNote={DevOps focuses on collaboration between different teams in an organization to achieve rapid deployment of software and services to end-users by automating the software delivery infrastructure. According to Dyck et al. [1] DevOps is a software process that emphasizes collaboration within and between different teams involved in software development. According to a study from CA Technologies [5], 88% of 1425 organization executives stated that they have adopted DevOps, or are planning to adopt DevOps in the next five years. According to Puppet Labs' 2015 State of DevOps Report [2], organizations that have adopted DevOps experienced 60 times fewer failures and deploy 30 times more frequently than organizations that have not adopted DevOps. Despite the popularity, security aspects of DevOps remain a concern for organizations that want to adopt DevOps [5]. In organizations that use DevOps practices, developers can commit and deploy their software changes at a rapid rate using an automated pipeline. At such a rapid rate, if the security team operates in isolation without close collaboration with the development and operations teams, then the rapidly deployed software changes might not undergo the adequate security reviews, potentially leading to vulnerable software. Bringing security principles within the DevOps process can help the organization in achieving better quality of software by integrating security checks into the phases of development, testing, and deployment.}, journal={SYMPOSIUM AND BOOTCAMP ON THE SCIENCE OF SECURITY}, author={Rahman, Akond Ashfaque Ur and Williams, Laurie}, year={2016}, pages={109–111} } @inproceedings{song_hu_gehringer_2015, title={Pluggable reputation systems for peer review: A web-service approach}, DOI={10.1109/fie.2015.7344292}, abstractNote={Peer review has long been used in education to provide students more timely feedback and allow them to learn from each other's work. In large courses and MOOCs, there is also interest in having students determine, or help determine, their classmates' grades. This requires a way to tell which peer reviewers' scores are credible. This can be done by comparing scores assigned by different reviewers with each other, and with scores that the instructor would have assigned. For this reason, several reputation systems have been designed; but until now, they have not been compared with each other, so we have no information about which performs best. To make the reputation algorithms pluggable for different peer-review system, we are carrying out a project to develop a reputation web service. This paper compares two reputation algorithms, each of which has two versions, and reports on our efforts to make them “pluggable,” so they can easily be adopted by different peer-review systems. Toward this end, we have defined a Peer-Review Markup Language (PRML), which is a generic schema for data sharing among different peer-review systems.}, booktitle={Frontiers in education conference (fie), 2015}, author={Song, Y. and Hu, Z. W. and Gehringer, Edward}, year={2015}, pages={1636–1640} }