@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} } @article{akbar_gehringer_hu_2018, title={Poster: Improving Formation of Student Teams: A Clustering Approach}, ISSN={["2574-1926"]}, DOI={10.1145/3183440.3195057}, abstractNote={Today's courses in engineering and other fields frequently involve projects done by teams of students. An important aspect of these team assignments is the formation of the teams. In some courses, teams select different topics to work on. Ideally, team formation would be included with topic selection, so teams could be formed from students interested in the same topics. Intuitive criteria for a team formation algorithm are that students should be assigned to (1) a topic which they have interest and (2) a team of students with similar interests in their topic. We propose an approach to meeting these criteria by mining student preferences for topics with a clustering approach and then matching them in groups to topics that suit their shared interests. Our implementation is based on hierarchical k-means clustering and a weighting formula that favors increasing overall student satisfaction and adding members until the maximum allowable team size is reached.}, journal={PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING - COMPANION (ICSE-COMPANION}, author={Akbar, Shoaib and Gehringer, Edward F. and Hu, Zhewei}, year={2018}, pages={147–148} } @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} }