在线编程实验与开源项目贡献转化方法和装置制造方法及图纸

技术编号:34018344 阅读:14 留言:0更新日期:2022-07-02 16:19
本发明专利技术涉及软件工程领域,公开了一种在线编程实验与开源项目贡献转化方法和装置,本发明专利技术通过获取目标开源项目并根据所述目标开源项目创建在线编程实验代码仓库;新建开源项目仓库并将所述开源项目仓库与所述在线编程实验代码仓库进行关联;提取所述目标开源项目Issue信息,根据所述Issue信息创建在线编程实验关卡任务;将所述在线编程实验关卡任务推送至所述在线编程实验代码仓库中;在所述在线编程实验代码仓库中获取PR并提交至所述开源项目仓库;在检测到学习者发送的学习完成指令时,推送所述目标开源项目Issue信息,实现了将复杂的开源项目开发任务转换为在线编程实验任务,从而吸引大规模学生参与并提交代码贡献,促进开源项目的发展。促进开源项目的发展。促进开源项目的发展。

【技术实现步骤摘要】
在线编程实验与开源项目贡献转化方法和装置


[0001]本申请涉及软件工程领域,特别是涉及一种在线编程实验与开源项目贡献转化方法和装置。

技术介绍

[0002]自20世纪90年代以来,国际开源运动蓬勃兴起,诞生了一大批如Linux、Git等改变世界的优秀开源项目,为软件产业发展注入了新的活力和带来了巨大的发展机遇。我国的开源运动起源较晚,虽然近年来开源产业发展迅速,涌现出了一批优秀开源项目如Spring Cloud Alibaba,但发展水平和发展规模与国际开源产业还存在一定差距。开源社区作为开源运动赖以生存的土壤,其维持是依靠开源软件开发人员参与并做出贡献。我国虽已成为软件开发人员数量大国,但其中了解开源、具备开源开发技能、熟悉开源开发流程、参与开源项目的人才还相对较少。据2020年GitHub数据统计,GitHub学生用户中有32%为美国学生,而中国学生仅占2%。因此要促进我国开源项目的发展,就需要吸引大规模具备专业技能的开发者参与到开源项目中。
[0003]编程实践项目类课程在计算机相关专业中非常重要。随着计算机科学技术的发展与“硬件软化”技术在计算机领域的应用,基于在线项目的实践学习方式逐渐大众化。目前,诸多实践教学平台都采用了“理论课程—项目实践”一体化教学体系,提供了实践项目环节,例如educoder、牛客网等。这类实践教学平台吸引了大批学生的参与并产生了大量项目成果,然而这些项目通常与实际项目有较大差异,这些课程项目产生的代码难以产生其他实际效益,无法有效利用这些成果;除此之外,学生参与完课程项目实践后缺乏机会进一步学习实践,导致学习难以深入和难以应用于实际开发中,不利于我国培养具备工程能力的科技人才。我国开源项目参与度不高及开源人才不足的问题和实践教学平台实践项目参与度高但项目“不接地气”和难以利用的问题,如何将在线编程实验与开源项目代码贡献衔接和转化,充分利用实践教学平台中学生的能力与技术,吸引大规模学生参与并提交代码贡献,成为了一个亟待解决的技术问题。
[0004]上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

[0005]本专利技术的主要目的在于提供了一种在线编程实验与开源项目贡献转化方法和装置,旨在解决现有技术无法将复杂的开源项目开发任务转换为在线编程实验任务,从而吸引大规模学生参与并提交代码贡献,促进开源项目的发展的技术问题。
[0006]为实现上述目的,本专利技术提供了一种在线编程实验与开源项目贡献转化方法,所述方法包括:
[0007]获取目标开源项目并根据所述目标开源项目创建在线编程实验代码仓库;
[0008]新建开源项目仓库并将所述开源项目仓库与所述在线编程实验代码仓库进行关
联;
[0009]提取所述目标开源项目Issue信息,根据所述Issue信息创建在线编程实验关卡任务;
[0010]将所述在线编程实验关卡任务推送至所述在线编程实验代码仓库中;
[0011]在所述在线编程实验代码仓库中获取PR并提交至所述开源项目仓库;
[0012]在检测到学习者发送的学习完成指令时,推送所述目标开源项目Issue信息。
[0013]可选地,所述获取目标开源项目并根据所述目标开源项目创建在线编程实验代码仓库的步骤,包括:
[0014]获取目标开源项目并根据所述目标开源项目创建在线编程实验,为所述在线编程实验配置对应的指导和说明;
[0015]根据所述在线编程实验创建在线编程实验代码仓库。
[0016]可选地,所述提取所述目标开源项目Issue信息,根据所述Issue信息创建在线编程实验关卡任务的步骤,包括:
[0017]提取所述目标开源项目Issue信息;
[0018]根据所述Issue信息构建训练数据集;
[0019]根据所述训练数据集获取元组数据列表L,并根据所述元组数据列表L结合逻辑回归算法构建预测模型M;
[0020]将所述Issue输入至所述预测模型M中以进行难度预测;
[0021]根据所述难度预测结果创建在线编程实验关卡任务。
[0022]可选地,所述提取所述目标开源项目Issue信息的步骤,包括:
[0023]根据目标开源项目中的主题筛选GitHub中开源项目,并提取star r≥10的项目,通过GitHub REST API获取项目中的Issue;
[0024]使用GitHub API提取并处理Issue信息,其中Issue属性信息包括:Issue所属的项目信息:repository_url,full_name,owner,description,languages,events、Issue元信息:user_id,state,locked,milestone,created_at,update_at,closed_at,reactions_count,reactions_confused,reactions_eyes,reactions_heart以及Issue内容信息包括:title,events,comments,body,title,reactions;
[0025]将每条Issue的信息组织成一个属性元组Ta。
[0026]可选地,所述根据所述Issue信息构建训练数据集的步骤,包括:
[0027]根据所述Issue属性信息以及Issue内容信息判断当前Issue难度;
[0028]若Issue中reactions_confused数量超过预设阈值,则判定难度高并用1表示;
[0029]若否,则判定难度低并用0表示;
[0030]根据判定结果整合元组和标签以获得训练数据集。
[0031]可选地,所述在所述在线编程实验代码仓库中获取PR并提交至所述开源项目仓库的步骤之前,还包括:
[0032]在接收到在线编程实验代码仓库中的PR之后,触发对应的自动测试工作流;
[0033]判断是否通过自动测试;
[0034]若通过,则执行在所述在线编程实验代码仓库中获取PR并提交至所述开源项目仓库的步骤。
[0035]可选地,所述在检测到学习者发送的学习完成指令时,推送所述目标开源项目Issue信息的步骤,包括:
[0036]在检测到学习者发送的学习完成指令时,获取当前学习者的学习结果;
[0037]根据所述学习结果判断所述当前学习者是否合格;
[0038]若否,则推送所述目标开源项目Issue信息并提示是否需要进一步学习。
[0039]此外,为实现上述目的,本专利技术还提出一种在线编程实验与开源项目贡献转化装置,所述装置包括:
[0040]项目获取模块,用于获取目标开源项目并根据所述目标开源项目创建在线编程实验代码仓库;
[0041]项目关联模块,用于新建开源项目仓库并将所述开源项目仓库与所述在线编程实验代码仓库进行关联;
[0042]信息提取模块,用于提取所述目标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在线编程实验与开源项目贡献转化方法,其特征在于,所述方法包括:获取目标开源项目并根据所述目标开源项目创建在线编程实验代码仓库;新建开源项目仓库并将所述开源项目仓库与所述在线编程实验代码仓库进行关联;提取所述目标开源项目Issue信息,根据所述Issue信息创建在线编程实验关卡任务;将所述在线编程实验关卡任务推送至所述在线编程实验代码仓库中;在所述在线编程实验代码仓库中获取PR并提交至所述开源项目仓库;在检测到学习者发送的学习完成指令时,推送所述目标开源项目Issue信息。2.如权利要求1所述的方法,其特征在于,所述获取目标开源项目并根据所述目标开源项目创建在线编程实验代码仓库的步骤,包括:获取目标开源项目并根据所述目标开源项目创建在线编程实验,为所述在线编程实验配置对应的指导和说明;根据所述在线编程实验创建在线编程实验代码仓库。3.如权利要求1所述的方法,其特征在于,所述提取所述目标开源项目Issue信息,根据所述Issue信息创建在线编程实验关卡任务的步骤,包括:提取所述目标开源项目Issue信息;根据所述Issue信息构建训练数据集;根据所述训练数据集获取元组数据列表L,并根据所述元组数据列表L结合逻辑回归算法构建预测模型M;将所述Issue输入至所述预测模型M中以进行难度预测;根据所述难度预测结果创建在线编程实验关卡任务。4.如权利要求3所述的方法,其特征在于,所述提取所述目标开源项目Issue信息的步骤,包括:根据目标开源项目中的主题筛选GitHub中开源项目,并提取star r≥10的项目,通过GitHub REST API获取项目中的Issue;使用GitHub API提取并处理Issue信息,其中Issue属性信息包括:Issue所属的项目信息:repository_url,full_name,owner,description,languages,events、Issue元信息:user_id,state,locked,milestone,created_at,update_at,closed_at,reactions_count,reactions_confused,reactions_eyes,reactions_heart以及Issue内容信息包括:title,events,comments,body,title,reactions;将每条Issue的信息组织成一个属性元组Ta。5...

【专利技术属性】
技术研发人员:尹刚黄井泉王威林露皮佑先喻银凤段甲生
申请(专利权)人:湖南智擎科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1