CN113094613B - 在线编程系统、在线编程方法及相关产品 - Google Patents

在线编程系统、在线编程方法及相关产品 Download PDF

Info

Publication number
CN113094613B
CN113094613B CN202110470796.7A CN202110470796A CN113094613B CN 113094613 B CN113094613 B CN 113094613B CN 202110470796 A CN202110470796 A CN 202110470796A CN 113094613 B CN113094613 B CN 113094613B
Authority
CN
China
Prior art keywords
project
client
online programming
project code
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110470796.7A
Other languages
English (en)
Other versions
CN113094613A (zh
Inventor
邹雨竹
耿胜红
卞荣辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Sensetime Intelligent Technology Co Ltd
Original Assignee
Shanghai Sensetime Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Sensetime Intelligent Technology Co Ltd filed Critical Shanghai Sensetime Intelligent Technology Co Ltd
Priority to CN202110470796.7A priority Critical patent/CN113094613B/zh
Publication of CN113094613A publication Critical patent/CN113094613A/zh
Application granted granted Critical
Publication of CN113094613B publication Critical patent/CN113094613B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种在线编程系统、在线编程方法及相关产品。该在线编程系统包括:客户端、在线编程平台以及智能硬件;所述客户端,用于接收编程人员输入的采用标准计算机程序设计语言编写的项目代码,并向所述在线编程平台发送所述项目代码;所述在线编程平台,用于确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境,并指示所述运行设备基于所述项目代码所需的标准化程序运行环境运行所述项目代码,其中,所述运行设备包括所述在线编程平台或者所述智能硬件;所述运行设备,用于基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端。

Description

在线编程系统、在线编程方法及相关产品
技术领域
本申请涉及人工智能技术领域,具体涉及一种在线编程系统、在线编程方法及相关产品。
背景技术
随着人工智能的普及,人工智能编程教育也逐渐成为幼稚园至第十二年级(kindergarten through twelfth grade,K12)教育、高等教育和职业教育中的一个重要组成部分。目前,人工智能编程教育对学生和教师来并不又好,在双方层次上都存在难以克服的问题。
对于学生来说,存在以下几个困难点:
1、准备开发环境:Python运行环境、Python第三方开发库、深度学习框架、各种开源AI开发库的安装、配置和使用非常繁琐和复杂,导致学生准备开发环境的过程复杂,消耗大量的时间和精力;
2、准备数据集:虽然互联网上有很多公开数据集,但是质量参差不齐,数据集大小也差异很大,学生对数据集的选择和使用很难把握;
3、算法案例学习:尽管互联网上算法案例不少,但大部分算法案例需要按照用户自己的准备的开发环境进行很多调试才能真正运行起来,整个调试过程比较复杂;
4、硬件开发调试:大部分硬件开发板和单片机都需要掌握Linux命令、硬件驱动、接口通信、刷固件等各种基本操作,学生的前置学习成本非常高。
对于教师来说,通常的做法是老师将自己准备好的教学案例压缩成ZIP包,再用优盘、网络等方式分发给学生,以便学生根据这些材料进行实验。由于整个实验场景是离线的,老师无法检验到学生的真实实验情况,更加无法避免学生间线下相互抄实验作业程序的情况。所以,对于教师来说,准备教学案例、下发案例、检验学生上机操作效果、管理教学等都是人工智能编程教育中的痛点。
现有的人工智能编程教育来说,整个流程比较繁琐,如何简化人工智能编程教育的流程是目前亟待解决的问题。
发明内容
本申请实施例提供了一种在线编程系统、在线编程方法及相关产品,通过涉及在线编程系统,简化人工智能编程教育的流程。
第一方面,本申请实施例提供一种在线编程系统,包括:客户端、在线编程平台以及智能硬件,其中,所述客户端、所述在线编程平台以及所述智能硬件之间保持通信连接,所述在线编程平台和所述智能硬件均预置有标准化程序运行环境,所述标准化程序运行环境支持标准计算机程序设计语言的代码运行;
所述客户端,用于接收编程人员输入的采用标准计算机程序设计语言编写的项目代码,并向所述在线编程平台发送所述项目代码;
所述在线编程平台,用于确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境,并指示所述运行设备基于所述项目代码所需的标准化程序运行环境运行所述项目代码,其中,所述运行设备包括所述在线编程平台或者所述智能硬件;
所述运行设备,用于基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供项目管理功能;
在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码,并向所述在线编程平台发送所述项目代码方面,所述客户端,具体用于:
接收所述编程人员输入的项目创建需求;
根据所述项目创建需求以及所述在线编程平台提供的项目管理功能,生成项目文件,并为所述项目文件提供代码编写环境;
接收所述编程人员基于所述代码编写环境在所述项目文件中编写的所述项目代码;
向所述在线编程平台发送所述项目文件。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供运行设备选择功能;
在所述在线编程平台确定所述项目代码的运行设备之前,所述客户端,接收所述编程人员通过所述运行设备选择功能选择的运行设备,并向所述在线编程平台发送所述编程人员选择的运行设备;
所述在线编程平台,具体用于:根据所述编程人员选择的运行设备,确定所述项目代码的运行设备。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供运行环境选择功能;
在所述在线编程平台确定所述项目代码所需的标准化程序运行环境之前,所述客户端,还用于接收所述编程人员通过所述运行环境选择功能选择的运行环境,并向所述在线编程平台发送所述编程人员选择的运行环境;
所述在线编程平台,具体用于:根据所述编程人员选择的运行环境,确定所述项目代码所需的标准化程序运行环境。
在一些可能的实施方式中,所述必要资源包括必要数据以及运行资源,所述必要数据包括数据集、模型文件和编程库中的至少一个;所述运行资源包括硬件资源和软件资源;
在基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端方面,所述运行设备,具体用于:
基于所述项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端。
在一些可能的实施方式中,在所述运行设备为所述在线编程平台的情况下,在基于所述项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端方面,所述在线编程平台,具体用于:
准备所述项目代码所需的标准化程序运行环境,
从所述在线编程平台中获取所述项目代码所需的必要数据,以及从所述在线编程平台中调用所述项目代码所需的运行资源;
基于所述项目代码所需的标准化程序运行环境、必要数据以及所述运行资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端。
在一些可能的实施方式中,在所述运行设备为所述智能硬件的情况下,在基于所述项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端方面,所述智能硬件,具体用于:
获取所述必要数据的存储地址,根据所述存储地址从所述在线编程平台中获取所述必要数据;
从所述智能硬件中调用所述项目代码所需的标准化程序运行环境以及所述运行资源;
基于所述项目代码所需的标准化程序运行环境、必要数据以及运行资源运行所述项目代码,并将所述项目代码的运行结果返回至所述在线编程平台,以通过所述在线编程平台将所述项目代码的运行结果返回至所述客户端。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供数据集管理功能;
在基于所述项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码之前,所述客户端,还用于接收所述编程人员通过所述数据集管理功能上传的所述项目代码所需的数据集,并向所述在线编程平台发送所述项目代码所需的数据集。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供第三方开源库安装功能;
在基于所述项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码之前,所述客户端,还用于接收所述编程人员通过所述第三方开源库安装功能上传的所述项目代码所需的模型文件,并向所述在线编程平台发送所述项目代码所需的模型文件。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供硬件管理功能;
所述在线编程平台,还用于通过所述硬件管理功能对所述智能硬件进行网络配置,将所述智能硬件和所述客户端接入同一局域网;
所述客户端,还用于通过所述硬件管理功能显示所述智能硬件的监控信息,所述监控信息包括所述智能硬件与所述客户端的当前所述连接状态以及所述智能硬件的中央处理器的占用信息和内存的占用信息。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供项目管理功能;
所述客户端,还用于通过所述项目管理功能接收在所述在线编程系统所注册的用户上传的项目案例,并向所述在线编程平台发送所述项目案例;
所述在线编程平台,还用于共享所述项目案例。
第二方面,本申请实施例提供一种在线编程方法,应用于在线编程系统中的客户端,所述在线编程系统还包括在线编程平台以及智能硬件,其中,所述客户端、所述在线编程平台以及所述智能硬件之间保持通信连接,所述方法包括:
接收编程人员输入的采用标准计算机程序设计语言编写的项目代码;
向所述在线编程平台发送所述项目代码;
从所述在线编程平台接收所述项目代码的运行结果,其中,所述运行结果为运行设备基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码得到的,所述运行设备以及所述项目代码所需的标准化程序运行环境是由所述在线编程平台确定的,所述运行设备包括所述在线编程平台或者所述智能硬件。
在一些可能的实施方式中,所述在线编程平台为所述客户端包括项目管理功能;
所述接收编程人员输入的采用标准计算机程序设计语言编写的项目代码;向所述在线编程平台发送所述项目代码,包括:
接收所述编程人员输入的项目创建需求;
根据所述项目创建需求以及所述在线编程平台提供的项目管理功能,生成项目文件,并为所述项目文件提供代码编写环境;
接收所述编程人员基于所述代码编写环境在所述项目文件中编写的所述项目代码;
向所述在线编程平台发送所述项目文件。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供运行设备选择功能;
在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之后,所述方法还包括:
接收所述编程人员通过所述运行设备选择功能选择的运行设备;
向所述在线编程平台发送所述编程人员选择的运行设备。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供运行环境选择功能;
在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之后,所述方法还包括:
接收所述编程人员通过所述运行环境选择功能选择的运行环境;
向所述在线编程平台发送所述编程人员选择的运行环境。
在一些可能的实施方式中,所述必要资源包括必要数据以及运行资源,所述必要数据包括数据集、模型文件和编程库中的至少一个;所述运行资源包括硬件资源和软件资源。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供数据集管理功能;
在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之前,所述方法还包括:
接收所述编程人员通过所述数据集管理功能上传的所述项目代码所需的数据集,并向所述在线编程平台发送所述项目代码所需的数据集。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供第三方开源库安装功能;
在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之前,所述方法还包括:
接收所述编程人员通过所述第三方开源库安装功能上传的所述项目代码所需的模型文件,并向所述在线编程平台发送所述项目代码所需的模型文件。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供硬件管理功能;所述方法还包括:
通过所述硬件管理功能显示所述智能硬件的监控信息,所述监控信息包括所述智能硬件与所述客户端的当前所述连接状态以及所述智能硬件的中央处理器的占用信息和内存的占用信息。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供项目管理功能;所述方法还包括:
通过所述项目管理功能接收在所述在线编程系统所注册的用户上传的项目案例,并向所述在线编程平台发送所述项目案例。
第三方面,本申请实施例提供一种在线编程方法,应用于在线编程系统中的在线编程平台,所述在线编程系统还包括客户端以及智能硬件,其中,所述客户端、所述在线编程平台以及所述智能硬件之间保持通信连接,所述在线编程平台预置有标准化程序运行环境,所述标准化程序运行环境支持标准计算机程序设计语言的代码运行,所述方法包括:
从所述客户端接收项目代码;
确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境,并指示所述运行设备基于所述项目代码所需的标准化程序运行环境运行所述项目代码,其中,所述运行设备包括所述在线编程平台或者所述智能硬件;
向所述客户端发送所述项目代码的运行结果,所述项目代码的运行结果是由所述运行设备发送给所述在线编程平台的,所述项目代码的运行结果是由所述运行设备基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码得到的。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供项目管理功能;
所述从所述客户端接收项目代码,包括:
从所述客户端接收项目文件,所述项目文件是所述客户端基于编程人员输入的项目创建需求以及所述在线编程平台提供的项目管理功能生成的,所述项目文件中包含所述编程人员基于所述客户端为所述项目文件提供代码编写环境在所述项目文件中编写的所述项目代码。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供运行设备选择功能;
从所述客户端接收所述编程人员选择的运行设备,所述编程人员选择的运行设备是所述编程人员通过所述运行设备选择功能选择上传给所述客户端的;
所述确定所述项目代码的运行设备,包括:
根据所述编程人员选择的运行设备,确定所述项目代码的运行设备。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供运行环境选择功能;
从所述客户端接收所述编程人员选择的运行环境,所述编程人员选择的运行环境是所述编程人员通过所述运行环境选择功能上传给所述客户端的;
所述确定所述项目代码所需的标准化程序运行环境,包括:
根据所述编程人员选择的运行环境,确定所述项目代码所需的标准化程序运行环境。
在一些可能的实施方式中,所述必要资源包括必要数据以及运行资源,所述必要数据包括数据集、模型文件和编程库中的至少一个;所述运行资源包括硬件资源和软件资源。
在一些可能的实施方式中,在所述运行设备为所述在线编程平台的情况下,在指示所述运行设备基于所述项目代码所需的标准化程序运行环境运行所述项目代码之后,所述方法还包括:
准备所述项目代码所需的标准化程序运行环境,
从所述在线编程平台中获取所述项目代码所需的必要数据,以及从所述在线编程平台中调用所述项目代码所需的运行资源;
基于所述项目代码所需的标准化程序运行环境、必要数据以及所述运行资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端。
在一些可能的实施方式中,在所述运行设备为所述智能硬件的情况下,在向所述客户端发送所述项目代码的运行结果之前,所述方法还包括:
从所述智能硬件接收所述项目代码的运行结果。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供数据集管理功能;
在确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境之前,所述方法还包括:
从所述客户端接收所述项目代码所需的数据集,所述项目代码所需的数据集是所述编程人员通过所述数据集管理功能上传给所述客户端的。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供第三方开源库安装功能;
在确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境之前,所述方法还包括:
从所述客户端接收所述项目代码所需的模型文件,所述项目代码所需的模型文件是所述编程人员通过所述第三方开源库安装功能上传给所述客户端的。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供硬件管理功能;所述方法还包括:
通过所述硬件管理功能对所述智能硬件进行网络配置,将所述智能硬件和所述客户端接入同一局域网。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供项目管理功能;所述方法还包括:
从所述客户端接收项目案例,所述项目案例是所述在线编程系统所注册的用户通过所述项目管理功能上传给所述客户端;
共享所述项目案例。
第四方面,本申请实施例提供一种在线编程方法,应用于在线编程系统中的智能硬件,所述在线编程系统还包括客户端以及在线编程平台,其中,所述客户端、所述在线编程平台以及所述智能硬件之间保持通信连接,所述智能硬件预置有标准化程序运行环境,所述标准化程序运行环境支持标准计算机程序设计语言的代码运行,所述方法包括:
接收所述在线编程平台所指示的基于项目代码所需的标准化程序运行环境运行的所述项目代码,所述项目代码是由所述客户端发送给所述在线编程平台的,所述项目代码是由所述编程人员输入的采用标准计算机程序设计语言在所述客户端中编写的;所述项目代码所需的标准化程序运行环境是由所述在线编程平台确定的;
基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码;
向所述在线编程平台发送所述项目代码的运行结果。
在一些可能的实施方式中,所述必要资源包括必要数据以及运行资源,所述必要数据包括数据集、模型文件和编程库中的至少一个;所述运行资源包括硬件资源和软件资源;
所述基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码,包括:
基于所述项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码。
在一些可能的实施方式中,所述基于所述项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码,包括:
获取所述必要数据的存储地址,根据所述存储地址从所述在线编程平台中获取所述必要数据;
从所述智能硬件中调用所述项目代码所需的标准化程序运行环境以及所述运行资源;
基于所述项目代码所需的标准化程序运行环境、必要数据以及运行资源运行所述项目代码。
第五方面,本申请实施例提供一种客户端,包括:
处理单元,用于接收编程人员输入的采用标准计算机程序设计语言编写的项目代码;
发送单元,用于向所述在线编程平台发送所述项目代码;
接收单元,还用于从所述在线编程平台接收所述项目代码的运行结果,其中,所述运行结果为运行设备基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码得到的,所述运行设备以及所述项目代码所需的标准化程序运行环境是由所述在线编程平台确定的,所述运行设备包括所述在线编程平台或者所述智能硬件。
在一些可能的实施方式中,所述在线编程平台为所述客户端包括项目管理功能;在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码;向所述在线编程平台发送所述项目代码方面,所述处理单元,具体用于:
接收所述编程人员输入的项目创建需求;
根据所述项目创建需求以及所述在线编程平台提供的项目管理功能,生成项目文件,并为所述项目文件提供代码编写环境;
接收所述编程人员基于所述代码编写环境在所述项目文件中编写的所述项目代码;
所述发送单元,具体用于:向所述在线编程平台发送所述项目文件。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供运行设备选择功能;在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之后,所述处理单元,还用于接收所述编程人员通过所述运行设备选择功能选择的运行设备;所述发送单元,还用于向所述在线编程平台发送所述编程人员选择的运行设备。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供运行环境选择功能;在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之后,所述处理单元,还用于接收所述编程人员通过所述运行环境选择功能选择的运行环境;所述发送单元,还用于向所述在线编程平台发送所述编程人员选择的运行环境。
在一些可能的实施方式中,所述必要资源包括必要数据以及运行资源,所述必要数据包括数据集、模型文件和编程库中的至少一个;所述运行资源包括硬件资源和软件资源。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供数据集管理功能;
在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之前,所述处理单元,还用于接收所述编程人员通过所述数据集管理功能上传的所述项目代码所需的数据集,并向所述在线编程平台发送所述项目代码所需的数据集。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供第三方开源库安装功能;在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之前,所述处理单元,还用于接收所述编程人员通过所述第三方开源库安装功能上传的所述项目代码所需的模型文件;所述发送单元,还用于向所述在线编程平台发送所述项目代码所需的模型文件。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供硬件管理功能;所述客户端还包括显示单元,所述显示单元,用于通过所述硬件管理功能显示所述智能硬件的监控信息,所述监控信息包括所述智能硬件与所述客户端的当前所述连接状态以及所述智能硬件的中央处理器的占用信息和内存的占用信息。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供项目管理功能;所述处理单元,还用于通过所述项目管理功能接收在所述在线编程系统所注册的用户上传的项目案例;所述发送单元,还用于向所述在线编程平台发送所述项目案例。
第六方面,本申请实施例提供一种在线编程平台,包括:
接收单元,用于从所述客户端接收项目代码;
处理单元,用于确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境,并指示所述运行设备基于所述项目代码所需的标准化程序运行环境运行所述项目代码,其中,所述运行设备包括所述在线编程平台或者所述智能硬件;
发送单元,用于向所述客户端发送所述项目代码的运行结果,所述项目代码的运行结果是由所述运行设备发送给所述在线编程平台的,所述项目代码的运行结果是由所述运行设备基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码得到的。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供项目管理功能;
在从所述客户端接收项目代码方面,所述接收单元,具体用于:
从所述客户端接收项目文件,所述项目文件是所述客户端基于编程人员输入的项目创建需求以及所述在线编程平台提供的项目管理功能生成的,所述项目文件中包含所述编程人员基于所述客户端为所述项目文件提供代码编写环境在所述项目文件中编写的所述项目代码。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供运行设备选择功能;
在确定所述项目代码的运行设备之前,所述接收单元,还用于从所述客户端接收所述编程人员选择的运行设备,所述编程人员选择的运行设备是所述编程人员通过所述运行设备选择功能选择上传给所述客户端的;
在确定所述项目代码的运行设备方面,所述处理单元,具体用于:
根据所述编程人员选择的运行设备,确定所述项目代码的运行设备。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供运行环境选择功能;
在确定所述项目代码所需的标准化程序运行环境之前,所述接收单元,还用于:从所述客户端接收所述编程人员选择的运行环境,所述编程人员选择的运行环境是所述编程人员通过所述运行环境选择功能上传给所述客户端的;
在确定所述项目代码所需的标准化程序运行环境方面,处理单元,具体用于:根据所述编程人员选择的运行环境,确定所述项目代码所需的标准化程序运行环境。
在一些可能的实施方式中,所述必要资源包括必要数据以及运行资源,所述必要数据包括数据集、模型文件和编程库中的至少一个;所述运行资源包括硬件资源和软件资源。
在一些可能的实施方式中,在所述运行设备为所述在线编程平台的情况下,在指示所述运行设备基于所述项目代码所需的标准化程序运行环境运行所述项目代码之后,处理单元还用于:
准备所述项目代码所需的标准化程序运行环境,
从所述在线编程平台中获取所述项目代码所需的必要数据,以及从所述在线编程平台中调用所述项目代码所需的运行资源;
基于所述项目代码所需的标准化程序运行环境、必要数据以及所述运行资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端。
在一些可能的实施方式中,在所述运行设备为所述智能硬件的情况下,在向所述客户端发送所述项目代码的运行结果之前,所述接收单元,还用于:
从所述智能硬件接收所述项目代码的运行结果。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供数据集管理功能;
在确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境之前,所述接收单元,还用于:
从所述客户端接收所述项目代码所需的数据集,所述项目代码所需的数据集是所述编程人员通过所述数据集管理功能上传给所述客户端的。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供第三方开源库安装功能;
在确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境之前,所述接收单元,还用于:
从所述客户端接收所述项目代码所需的模型文件,所述项目代码所需的模型文件是所述编程人员通过所述第三方开源库安装功能上传给所述客户端的。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供硬件管理功能;所述处理单元,还用于:
通过所述硬件管理功能对所述智能硬件进行网络配置,将所述智能硬件和所述客户端接入同一局域网。
在一些可能的实施方式中,所述在线编程平台为所述客户端提供项目管理功能;所述接收单元,还用于:从所述客户端接收项目案例,所述项目案例是所述在线编程系统所注册的用户通过所述项目管理功能上传给所述客户端;
所述处理单元,还用于共享所述项目案例。
第七方面,本申请实施例提供一种智能硬件,包括:
接收单元,用于接收所述在线编程平台所指示的基于项目代码所需的标准化程序运行环境运行所述项目代码,所述项目代码是由所述客户端发送给所述在线编程平台的,所述项目代码是由所述编程人员输入的采用标准计算机程序设计语言在所述客户端中编写的;所述项目代码所需的标准化程序运行环境是由所述在线编程平台确定的;
处理单元,用于基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码;
发送单元,用于向所述在线编程平台发送所述项目代码的运行结果。
在一些可能的实施方式中,所述必要资源包括必要数据以及运行资源,所述必要数据包括数据集、模型文件和编程库中的至少一个;所述运行资源包括硬件资源和软件资源;
在基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码方面,处理单元,具体用于:
基于所述项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码。
在一些可能的实施方式中,在基于所述项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码方面,所述处理单元,具体用于:
获取所述必要数据的存储地址,根据所述存储地址从所述在线编程平台中获取所述必要数据;
从所述智能硬件中调用所述项目代码所需的标准化程序运行环境以及所述运行资源;
基于所述项目代码所需的标准化程序运行环境、必要数据以及运行资源运行所述项目代码。
第八方面,本申请实施例提供一种客户端,包括:处理器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如第二方面所述的方法。
第九方面,本申请实施例提供一种在线编程平台,包括:处理器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如第三方面所述的方法。
第十方面,本申请实施例提供一种智能硬件,包括:处理器,所述处理器与存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述电子设备执行如第四方面所述的方法。
第十一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得计算机执行如第二方面、第三方面或第四方面所述的方法。
第十二方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机可操作来使计算机执行如第二方面、第三方面或第四方面所述的方法。
实施本申请实施例,具有如下有益效果:
可以看出,编程人员可以在客户端上编写项目代码,并将项目代码发送给在线编程平台,由在线编程平台选择相应的运行设备运行该项目代码,并将代码运行结果返回至客户端。因此,在本申请所提供的在线编程系统下,编程人员只需要在客户端上完成项目代码的编写,即可成功完成项目代码的运行,不需要做太多的前置工作,可以将更多的精力投放于编程上,降低了编程人员的编程难度,简化了人工智能编程教育的流程,提高编程人员的编程体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种在线编程系统的结构示意图;
图2为本申请实施例提供的另一种在线编程系统的结构示意图;
图3为本申请实施例提供的一种在线编程方法的流程示意图;
图4为本申请实施例提供的一种在线编程的示意图;
图5为本申请实施例提供的另一种在线编程方法的流程示意图;
图6为本申请实施例提供的又一种在线编程方法的流程示意图;
图7为本申请实施例提供的又一种在线编程方法的流程示意图;
图8为本申请实施例提供的一种客户端的结构示意图;
图9为本申请实施例提供的另一种客户端的结构示意图;
图10为本申请实施例提供的一种在线编程平台的结构示意图;
图11为本申请实施例提供的另一种在线编程平台的结构示意图;
图12为本申请实施例提供的一种智能硬件的结构示意图;
图13为本申请实施例提供的另一种智能硬件的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的客户端可以包括各种具有软件代码输入能力、运算能力和通信能力的设备,比如,个人电脑,笔记本电脑,移动互联网设备MID(Mobile InternetDevices,简称:MID),等等。
本申请实施例所涉及到的智能硬件可以包括能够运行软件代码的智能手机、智能电视、智能家居设备、智能汽车、智能玩具、智能机器人、开发板等。为方便描述,上面提到的设备统称为智能硬件。例如,智能硬件可以包括树莓派、Jetson、Arduino、Micro:bit等微型电脑,可以支持Java、python等标准计算机程序设计语言的运行。
本申请所涉及到的在线编程平台可以是独立的物理服务器,也可以是服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器等。
参阅图1,图1为本申请实施例提供的一种在线编程系统的架构图示意图。在线编程系统10包括客户端101、在线编程平台102和至少一个智能硬件103。其中,客户端101、在线编程平台102和至少一个智能硬件103三者之间建立通信连接。
可选的,客户端101与在线编程平台102之间可以通过网络建立连接;客户端101可以直接与智能硬件103建立通信连接,比如,客户端101可以通过USB连接或者串口连接或者蓝牙连接,也可以通过其他设备与智能硬件103建立通信连接,比如,通过WiFi连接;智能硬件103与在线编程平台102之间通过网络连接。
图1所示的架构可以用于在线编程教育。比如,可以用于人工智能编程教育。基于图1所示的架构,可用于为K12和高职学校进行人工智能和智能硬件相关的项目制教学,实训课程教学等,还可以用于为学生提供课外探索拓展学习,基于智能硬件进行编程创作,还可以用于为用户提供简洁的配网、扫描、连接、监控硬件的流程,还可以用于为用户提供硬件文件管理、模型部署、代码运行、运行控制、运行设备、运行容器、版本管理等工具。
图1所示的架构,客户端101运行在在线编程平台102提供的编程环境下,例如,在线编程平台102使用浏览器/服务器(browser/server,B/S)架构,客户端101用于在B/S架构下实现在线编程。B/S架构也可以称为BS架构。BS架构下,在在线编程102平台上,用户可以实现代码的输入,代码的管理、代码的运行、代码运行结果的展示等操作,即将在线编程功能实现的核心部分集中到在线编程平台102上,简化了在线编程功能的开发、维护和使用;对于用户来说可以基于客户端上安装的浏览器实现在线编程。
比如,B/S架构下的在线编程可以包括如下流程:编程人员或者编程学习人员可以在客户端101上输入采用标准计算机程序设计语言编写的项目代码,然后,通过浏览器(browser)向在线编程平台(server)发送统一资源定位符(uniform resource locator,URL),在线编程平台根据该URL找到对应的超文本标记语言(hyper text markuplanguage,HTML)页面,并从该HTML页面中解析出编程人员编写的项目代码,基于在线编程平台配置的运行环境运行该项目代码,将代码运行结果返回给浏览器。
又比如,BS架构下的在线编程可以包括如下流程:在客户端101的浏览器上打开一个文本编辑器,编程人员编写完项目代码后提交给在线编程平台102进行动态编译运行,在线编程平台102向浏览器返回代码运行结果。
此外,在线编程平台102提供了相应的软件开发工具包(software developmentkit,SDK)和应用程序编程接口(application programming interface,API)。在线编程平台可以为智能硬件103提供标准的平台SDK,用于简化编程难度,以及实现智能硬件103和在线编程环境的平台交互,如图片输出、视频输出、错误输出、标准输入输出、键盘输入等。在线编程平台可以提供开放平台API(比如,基于开源或非开源SDK的开放平台API),以便智能硬件103快速接入并使用人工智能API,以及使用在线编程环境进行模型训练等。
在本申请的一个实施方式中,编程人员可以通过客户端101的输入装置(比如,键盘、鼠标、触控显示屏)输入采用标准计算机程序设计语言在浏览器中编写项目代码;客户端101接收编程人员在浏览器中编写的项目代码,并基于BS架构将项目代码发送给在线编程平台。相应的,在线编程平台102从客户端101接收项目代码并存储。然后,在线编程平台102确定项目代码的运行设备以及项目代码所需的标准化程序运行环境,并指示运行设备基于项目代码所需的标准化程序运行环境运行项目代码,其中,运行设备包括在线编程平台102或者智能硬件103。当运行设备为在线编程平台102时,即当项目代码由在线编程平台102运行时,则在线编程平台准备项目代码所需的必要资源以及标准化程序运行环境;然后,从存储空间中读取该项目代码,基于项目代码所需的必要资源以及标准化程序运行环境,并基于BS架构将项目代码的运行结果返回给客户端;当运行设备为智能硬件103时,即项目代码由智能硬件103执行时,在线编程平台102指示该智能硬件运行该项目代码,智能硬件在接收到指示后,获取该项目代码在在线编程平台102中的存储地址,根据该存储地址从在线编程平台102的存储空间中获取该项目代码;然后,准备该项目代码所需的必要资源以及标准化程序运行环境;然后,并基于项目代码所需的必要资源以及标准化程序运行环境运行该项目代码,将运行结果返回给在线编程平台102;最后,由在线编程平台102基于BS架构将运行结果返回给客户端101。
其中,运行结果包括文字、数字、图片、视频以及项目代码运行中产生的文件中的至少一种。
可以看出,客户端101可以通过浏览器登录在线编程平台102,该在线编程平台102提供标准计算机程序设计语言(比如,Java、python等)的在线编程环境,包括代码运行环境、开发库、深度学习框架等开发环境在线编程平台102均已预先准备好。编程人员在客户端101上打开浏览器,利用浏览器提供的在线编程环境即可以实现标准计算机程序设计语言的在线编程,不需要编程人员进行编程开发环境配置,降低编程人员的编程难度,简化了人工智能编程教育的流程。
在本申请的一个实施方式中,如图2所示,在线编程平台102给客户端101提供项目管理功能。基于该项目管理功能,编程人员可以在客户端上安装的浏览器输入项目创建需求,生成自己的项目文件;然后基于浏览器提供的编程环境(比如,在线集成开发环境(webintegrity develop environment,简称:web IDE))在该项目文件中编写项目代码,并在项目代码编写完成之后,基于BS架构向在线编程平台102提交项目文件。相应的,在线编程平台102从客户端101接收项目文件,然后从项目文件中解析出项目代码并存储。
将项目代码存储于在线编程平台,由在线编程平台托管代码,将所有编程人员的原生代码共享,降低了代码的管理成本,有利于提高工程项目在团队协作开发中的一致性,提高在各种使用场景下分发项目代码的效率。
可选的,在线编程平台102还可以提供运行设备选择功能,其中,该运行设备包括在线编程平台或智能硬件。因此,编程人员可以通过所述运行设备选择功能选择的运行设备,客户端向所述在线编程平台发送所述编程人员选择的运行设备,则在编程平台102根据编程人员选择的运行设备,确定出该项目代码的运行设备。
示例性的,该运行设备选择功能可以包含于项目管理功能中。因此在编程人员创建项目文件之后,该项目文件中会显示运行设备的勾选选项,编程人员可以根据实际需求勾选相应的运行设备,在编程人员勾选了运行设备之后,该项目文件中便会携带运行设备的指示信息。当然,客户端也可以基于BS架构将编程人员选择的运行设备单独发送给在线编程平台。
相应的,在线编程平台102接收到项目文件之后,可以从该项目文件中解析出该指示信息,根据该指示信息确定该项目代码的运行设备;然后,在线编程平台102根据该指示信息指示该运行设备来运行该项目代码。本申请对发送编程人员所选择的运行设备的方式不进行限定。
应理解,若编程人员没有勾选运行设备,则按照默认分配方式分配运行设备,比如,默认的运行设备为在线编程平台。
可选的,在线编程平台还为客户端101还提供运行环境选择功能。因此,编程人员可以运行环境选择功能在浏览器中选择项目代码的运行环境。客户端将编程人员选择的运行环境发送给所述在线编程平台。因此,在线编程平台可以根据编程人员选择的运行环境,确定所述项目代码所需的标准化程序运行环境。
示例性的,同样编程人员所选择的运行环境可以包含于项目文件中一起打包发送给在线编程平台,即在项目文件中设置运行环境的勾选项,编程人员可以在项目文件中勾选所要选择的运行环境,也可以基于BS架构单独发送给在线编程平台。本申请对发送编程人员所选择的运行设备的方式不进行限定。
应理解,若编程人员没有勾选运行环境,则按照默认分配方式分配运行环境,比如,默认的运行环境为在Python环境。
可选的,该必要资源包括必要数据和运行资源,其中,必要数据是运行该项目代码所必须使用的数据,该必要数据包括数据集(dataset)、模型文件和编程库中的至少一个。数据集为项目代码所用的至少一个数据集中的任一个,模型文件为项目代码所用的至少一个模型文件中的任一个,编程库为项目代码所用的至少一个编程库中的任一个。运行资源包括硬件资源和软件资源。该硬件资源包括存储资源和计算资源,软件资源包括运行环境。
因此,运行设备可以基于项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端。
示例性的,当该运行设备为在线编程平台102时,则在线编程平台102可以直接调用运行该项目代码的必要资源以及运行环境,并基于该必要资源运行该项目代码以及运行环境,得到该项目代码的运行结果;当该运行设备为智能硬件103时,在线编程平台102需要指示智能硬件运行该项目代码。
示例性的,在线编程平台可以仅通知智能硬件运行项目代码,智能硬件可以通过与客户端的通信连接从客户端中获取项目代码的存储位置,根据该存储位置从在线编程平台中拉取该项目代码,并调用运行该项目代码的必要资源以及运行环境,并基于该必要资源以及运行环境运行该项目代码,得到该项目代码的运行结果。其中,该项目代码的存储位置可以是由编程人员在提交项目代码时主动选择的,即编程人员将项目代码存储到指定位置,因此客户端记录有项目代码的存储位置;或者,该项目代码的存储位置是由在线编程平台自主分配的,并将分配好的存储位置返回给了客户端,同样客户端中也记录有项目代码的存储位置。当然,当在线编程平台在指示智能硬件运行该项目代码时,也可以向智能硬件指示该项目代码的存储位置,这样智能硬件可以根据在线编程平台所指示的存储位置,从在线编程平台中拉取该项目代码。
本申请实施例中,在人工智能(artificial intelligence,AI)编程过程中一般都会有数据集的概念,数据集一般比较大(比如,几百兆甚至几个G),一般存储在在线编程平台,如图2所示,在线编程平台分配一些存储资源用于存储数据集;当运行项目代码时,则会从这些存储资源中拉取数据集。举例来说,数据集可以包括人脸识别数据集、物体检测数据集、手势识别数据集、目标检测数据集等。数据集可以用于AI模型的训练和测试。
应理解,在线编程平台一般预先存储有一些数据集,比如,与人脸训练相关的人脸图像集,但是这些数据集一般都是公共的开源数据集,并不能完全适应编程人员当前次的编程需求,比如,当前做医学领域的目标检测,开源的数据集可能是道路图像下的目标检测,因此为了数据的匹配,编程人员需要上传相应的医学图像。因此,为了支持使编程人员每次编写项目代码的能够正常运行,该在线编程平台可以在浏览器中提供数据集管理功能。这样编程人员可以通过客户端登录浏览器,基于在线编程平台提供的数据集管理功能,上传与该项目代码适配的数据。相应的,在线编程平台接收客户端上传的数据并分配相应的存储资源存储该编程人员上传的数据;这样在线编程平台中就会存储有运行该项目代码所需的数据集,该数据集包括编程人员上传的数据和预先存储的公共数据集;最后,当运行项目代码时,运行设备可以从该在线编程平台的存储资源中拉取运行该项目代码所需的数据集,以运行项目代码。
由于数据集占用的存储空间往往较大,如果一些共享的数据集跟随项目代码从客户端传输至在线编程平台,则会导致项目代码传输时间过长,影响编程人员的编程体验。可以看出,在线编程平台预先会存储有一些共享的数据集,编程人员需要使用这些数据集时,可以直接从在线编程平台中拉取,无需编程人员上传,提高了项目代码的传输效率,进而提高编程人员的编程体验。此外,还在客户端这一侧提供了数据集上传功能,编程人员可以根据自己的实际编程需求上传自己所需的数据集,从而无论编程人员编写什么样的代码都能获取到的该代码所需的数据集,成功运行自己编写的代码,提高编程人员的编程体验。而且,所有的数据集都存储于在线编程平台,节省了客户端或智能硬件的存储资源,可以让客户端或者智能硬件可以有更多的存储资源存储其他文件。
应理解,在线编程平台中会预配置有各种类型的模型文件,比如,预置有目前已有的各种深度学习框架和基础的模型文件,比如,Tensorflow框架、caffe框架,等等;然而,随着人工智能的发展和进步,可能会出现一些新的模型和框架。因此,在线编程平台还提供了第三方开源库安装功能,编程人员可以通过项目requirements文件自定义安装的自己所需的模型和深度学习框架。所以,当在线编程平台当前没有该项目代码运行所需的模型文件时,编程人员可以自定义安装该项目代码运行所需的模型文件。最终在线编程平台中就会集成有该项目代码所需的模型文件,同样这些模型文件也占用在线编程平台一定的存储资源。当运行设备运行该项目文件时,可以从该在线编程平台的存储资源中读取运行该项目代码所需要的模型文件,以运行项目代码。
其中,模型文件可以包括.h5文件、.keras文件等。模型文件可以包括模型的结构、模型的权重、训练配置、优化器的状态等。可以通过模型文件对AI模型进行训练。
可选的,编程库可以包括采用标准计算机程序设计语言编写的人工智能库。举例来说,编程库可以包括Python编程库、java编程库等。编程库可以实现环境管理、包管理、文件分发、文本处理等操作。
可以理解,编程库是项目代码运行所需的基础资源,因此在线编程平台和智能硬件中都会预先配置有各种类型的编程库,以支持各种类型的项目代码的运行。
应理解,对于数据集和模型文件来说,一般都需要占据较多的存储资源,因此,数据集和模型文件一般都会存储在在线编程平台。因此,当项目代码由智能硬件执行时,则智能硬件要去在线编程平台中拉取相应的数据集和模型文件。
具体的,智能硬件获取数据集和模型文件的存储地址,然后基于存储地址、与在线编程平台交互的协议以及与在线编程平台交互的交互方式通知给智能硬件从在线编程平台中获取该数据集和模型文件,其中,该存储地址、与在线编程平台交互的协议以及与在线编程平台交互的交互方式可以是从在线编程平台中获取的,比如,客户端将该存储地址、与在线编程平台交互的协议以及与在线编程平台交互的交互方式包含于项目文件中,在线编程平台解析项目文件即可获取到该存储地址;或者,是客户端通过BS架构中的浏览器上传给在线编程平台的。从而在线编程平台就可以将存储地址、与在线编程平台交互的协议以及与在线编程平台交互的交互方式下发给智能硬件。此外,也可以是智能硬件基于与客户端的连接,从客户端这一侧读取到的。例如,客户端可以通过浏览器将存储地址、与在线编程平台交互的协议、与在线编程平台交互的交互方式通知给智能硬件,比如,客户端与智能硬件通过局域网络连接,则可以通过局域网从客户端获取到存储地址、与在线编程平台交互的协议、与在线编程平台交互的交互方式发送给智能硬件,又如,客户端与智能硬件通过USB连接,则客户端可以通过USB连接的方式,将存储地址、与在线编程平台交互的协议、与在线编程平台交互的交互方式告诉给智能硬件。
可选的,项目代码的运行还需要计算资源的支持。因此,运行设备在运行项目代码之前,需要调用相应的计算资源,以支持该项目代码的运行,其中,该计算资源可以为CPU资源和/或GPU资源,等等。当项目代码由在线编程平台运行时,则该在线编程平台根据当前计算资源的占用情况,为该项目代码的运行调用相应的计算资源,基于该计算资源运行该项目代码;当项目代码由在智能硬件运行时,则该智能硬件根据当前计算资源的占用情况,为该项目代码的运行调用相应的计算资源,基于该计算资源运行该项目代码。
在本申请的一个实施方式中,在线编程平台还给客户端提供了容器管理功能,与运行设备选择功能以及运行环境选择功能类似,编程人员可以在客户端上通过容器管理功能选择项目代码所需的运行容器(如CPU/GPU),并将编程人员选择的运行容器信息发送给在线编程平台,从而在线编程平台可以基于编程人员选择的运行容器作为项目代码所需的计算资源运行项目代码。可以看出,为客户端提供容器管理功能,则可由编程人员自主选择自己所需的运行容器,满足编程人员的编程需求,提高编程的灵活性。此外,在线编程平台还提供运行容器开启/关闭功能,编程人员可以在客户端上通过容器管理功能选择项目代码所需的运行容器,并在需要运行项目代码时才开启运行容器,也可以在必要时关闭运行容器,从而可以实现按需启停云端运行容器,实现计算资源分时共享和弹性伸缩功能。
在本申请的一个实施方式中,在线编程平台还给客户端提供了硬件管理功能。可选的,客户端可以安装助手客户端应用,提供智能硬件的访问功能。编程人员利用在线编程平台提供的硬件管理功能对智能硬件进行网络配置,将智能硬件和客户端接入同一个局域网中;然后,当客户端与智能硬件接入同一个局域网后,客户端可以扫描局域网内的智能硬件,与智能硬件通过局域网连接,客户端与智能硬件可以是通过无线方式连接,扫描智能硬件可以通过编程人员数据包协议(user datagram protocol,UDP)去广播来实现。当客户端与智能硬件连接成功后,客户端基于在线编程平台提供的硬件管理功能可以通过显示屏显示智能硬件的监控信息,该监控信息可以包括智能硬件与客户端的当前连接状态、以及智能硬件的CPU占用信息和内存占用信息等。
可以看出,编程人员可以借助在线编程平台提供的在线编程环境进行标准计算机程序设计语言的项目代码编写,而智能硬件中预置有支持标准计算机程序设计语言的代码运行的标准化程序运行环境。因此,编程人员只需在客户端采用标准计算机程序设计语言完成项目代码的编写,就可以由智能硬件成功运行该项目代码,无需编程人员对智能硬件进行硬件驱动、刷固件等其他前置操作,降低了编程人员在智能硬件维度下的前置学习成本。
在本申请的一个实施方式中,在线编程平台还提供有运行控制功能。编程人员可以根据自己的需求控制项目代码的运行。比如,浏览器上提供一个代码运行控制按钮,编程人员可以通过点击该运行控制按钮启动项目代码的运行或暂停项目代码的运行。示例性的,当编程人员暂停该项目代码的运行时,则客户端会通过该浏览器,基于BS架构向在线编程平台发送暂停运行请求,在线编程平台接收到该暂停请求后,若项目代码是在在线编程平台上运行,则直接暂停该项目代码的运行;若该项目代码是在智能硬件上运行,则在线编程平台指示该智能硬件暂停该项目代码的运行,智能硬件接收到在线编程平台的指示之后,暂停对该项目代码的运行。
在本申请的一个实施方式中,在线编程平台提供项目案例管理功能。这样学生和老师都可以通过该项目管理功能分享案例,比如,在线编程平台预留一部分软硬件资源用于管理案例的分享。则对于学生可以搜索在线编程平台上提供的公开案例,并通过项目克隆的方式将在线编程平台提供的共享项目变为自有项目,并在该项目上进行编程开发和实践;教师可以创建教学用的项目案例,并通过该项目管理功能对项目案例进行分享,最终以课程包的方式提供给学生。这样就实现了在线编程教学,无需离线通过压缩包的方式进行编程教学,简化了编程教育的流程。
因此,基于本申请实施例提供的在线编程系统,解决了目前人工智能编程中“教”与“学”的困难和问题,对于学生来说,大大减少了各类前置工作给学生带来的额外学习负担,帮助学生集中精力去学习真正与人工智能相关的领域知识,同时减少了教师准备教学案例和教学内容的繁琐流程,将注意力集中在传递人工智能领域的知识和实践上。
在本申请的一个实施方式中,在线编程平台还提供了个人空间功能,也就是说,在线编程平台可以在存储资源中为每个注册人员分配个人空间,该个人空间用于存储该注册人员上传的数据以及模型文件,即该注册人员的私人信息。
在本申请的一个实施方式中,在线编程平台还提供了版本管理功能,用户可以基于该版本管理功能,建立不同项目开发阶段的版本,选择已有版本进行编辑,也可以更新当前使用的版本。
参阅图3,图3为本申请实施例提供的一种在线编程方法的流程示意图。该方法应用于图1所示的在线编程系统。该在线编程方法的实现可以参见图1所示的系统架构,不再叙述。该方法包括以下内容:
301:客户端接收编程人员输入的采用标准计算机程序设计语言编写的项目代码。
302:客户端向在线编程平台发送项目代码。
当项目代码在在线编程上执行时,还需要执行以下步骤:
303:在线编程平台调用项目代码所需的标准化程序运行环境和必要资源,并基于项目代码所需的标准化程序运行环境和必要资源运行项目代码。
304:在线编程平台向客户端发送项目代码的运行结果。
当项目代码在智能硬件上执行时,还需要执行以下步骤:
305:在线编程平台指示智能硬件运行项目代码。
306:智能硬件从在线编程平台中获取项目代码所需的必要资源。
307:智能硬件调用项目代码所需的标准化程序运行环境,基于项目代码所需的标准化程序运行环境和必要资源运行项目代码。
308:智能硬件向在线编程平台发送项目代码的运行结果。
309:在线编程平台向客户端发送项目代码的运行结果。
下面介绍几个本申请的在线编程系统的应用场景。
场景1:针对K12教育来说,可以将本申请的在线编程系统应用到科创教育中。例如,教师可以通过在线编程平台提供的项目管理功能共享项目案例,学生可以基于客户端上的项目管理功能下载教师共享的项目案例,基于教师共享的项目案例去思考,并基于项目案例的启发,在客户端这一侧编写自己科创出的项目代码,并由智能硬件或者在线编程平台运行该代码,并将代码返回给学生,这样学生就可以有更多的精力关注如何去编写与科创相关的代码,而不用将精力放在代码如何运行上从而实现学生在教师共享的项目案例的引导下,进行项目的创新和拔高,达到科创目的。
场景2:针对职业教育来说,教师可以利用开源硬件设计一系列职业高度相关的沙盘以及相应的教学案例,并通过在线编程平台提供的项目管理功能共享教学案例,并在线编程平台向学生分发教学案例;然后,学生可以基于客户端上的项目管理功能下载教师共享的教学案例,并学习这些教学案例,利用这些教学案例在客户端上完成实践操作。
此外,教师无需将自己准备好的教学案例压缩成压缩文件包,再用优盘、网络等方式分发给学生,通过在线编程平实现在线编程教学,教师可以实时检测到学生的真实实验情况,避免学生间线下相互抄作业的情况,可以提高学生自主创造的能力。
本申请实施例提供的在线编程系统,具有良好的扩展性,便于进行各种数据分享、第三方开发库安装等操作,而且由于用户均使用统一的平台,可以统一管控,因此可以应用在科创竞赛等比赛场景。
下面以一个实际的例子说明本申请的在线编程系统实现在线编程的过程。
如图4所示,图4中示出本申请实施例提供的在线编程平台的界面示意图。因此,编程人员在客户端中完成项目文件的创建,并在项目文件中编写项目代码,如图4中的中间区域所示出的代码即为编程人员编写的项目代码;并在客户端上传必要数据,如图4中的左侧区域示出编程人员所上传的必要数据,比如,上传了各种类型的图像;然后,客户端将项目代码以及数据集发送给在线编程平台,由在线编程平台完成对项目代码的运行,并将运行结果在客户端上展示,比如,图4中的右侧区域展示的项目代码的运行结果,比如,模型测试的精确度,以及对图像分类结果。
参阅图5,图5为本申请实施例提供的另一种在线编程方法的流程示意图。该方法应用于客户端。该方法包括以下步骤内容:
501:接收编程人员输入的采用标准计算机程序设计语言编写的项目代码。
示例性的,编程人员可以基于在线编程提供的项目管理功能在客户端中创建项目文件,并在项目文件中编写项目代码。步骤501的具体实现过程可以参见上述系统架构下的实施例中的实现过程,不再叙述。
502:向所述在线编程平台发送所述项目代码。
示例性的,客户端向在线编程平台发送包含有项目代码的项目文件。步骤502的具体实现过程可以参见上述系统架构下的实施例中的实现过程,不再叙述。
503:从所述在线编程平台接收所述项目代码的运行结果。
示例性的,运行结果为运行设备基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码得到的,并由运行设备发送给在线编程平台的。其中,运行设备运行项目代码的过程可以参见上述系统架构下的实施例中的实现过程,不再叙述。
图6为本申请实施例提供的又一种在线编程方法的流程示意图。该方法应用于在线编程平台。该方法包括以下步骤内容:
601:从所述客户端接收项目代码。
示例性的,在线编程平台可以从客户端接收项目文件,该项目文件中包含项目集代码;然后,对该项目文件进行解析,得到该项目代码。步骤601的具体实现过程可参加上述系统架构下的实施例中的实现过程,不再叙述。
602:确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境,并指示所述运行设备基于所述项目代码所需的标准化程序运行环境运行所述项目代码,其中,所述运行设备包括所述在线编程平台或者所述智能硬件。
示例性的,确定项目代码的运行设备以及项目代码所需的标准化程序运行环境均可以参见上述系统架构下的实施例中的实现过程,不再叙述。
603:向所述客户端发送所述项目代码的运行结果,所述项目代码的运行结果是由所述运行设备发送给所述在线编程平台的,所述项目代码的运行结果是由所述运行设备基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码得到的。
示例性的,在线编程平台从运行设备接收项目代码运行结果,并将项目代码运行结果返回给客户端。其中,运行设备运行项目代码的过程可以参见上述系统架构下的实施例中的实现过程,不再叙述。
参阅图7,图7为本申请实施例提供的又一种在线编程方法的流程示意图。该方法应用于智能硬件。该方法包括以下步骤内容:
701:接收所述在线编程平台所指示的基于项目代码所需的标准化程序运行环境运行的所述项目代码。
其中,所述项目代码是由所述客户端发送给所述在线编程平台的,所述项目代码是由所述编程人员输入的采用标准计算机程序设计语言在所述客户端中编写的;所述项目代码所需的标准化程序运行环境是由所述在线编程平台确定的。当在线编程平台指示由智能硬件运行项目代码时,则智能硬件根据项目代码的存储地址从在线编程平台获取项目代码。然后,根据在线编程平台所指示的基于项目代码所需的标准化程序运行环境运行该项目代码。其中,步骤701的具体实现过程可以参见上述系统架构下的实施例中的实现过程,不再叙述。
702:基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码。
示例性的,智能硬件基于必要资源的存储地址根据所述存储地址从所述在线编程平台中获取所述必要数据。其中,步骤702的具体实现过程可以参见上述系统架构下的实施例中的实现过程,不再叙述。
703:向所述在线编程平台发送所述项目代码的运行结果。
参阅图8,图8为本申请实施例提供的一种客户端的结构示意图。客户端800包括:
处理单元801,用于接收编程人员输入的采用标准计算机程序设计语言编写的项目代码;
发送单元802,用于向所述在线编程平台发送所述项目代码;
接收单元803,还用于从所述在线编程平台接收所述项目代码的运行结果,其中,所述运行结果为运行设备基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码得到的,所述运行设备以及所述项目代码所需的标准化程序运行环境是由所述在线编程平台确定的,所述运行设备包括所述在线编程平台或者所述智能硬件。
关于上述处理单元801、发送单元802以及接收单元803更详细的描述,可参考上述方法实施例以及在线编程系统实施例中的相关描述,在此不再说明。
参阅图9,图9为本申请实施例提供的一种客户端的结构示意图。如图9所示,电子设备900包括收发器901、处理器902和存储器903。它们之间通过总线904连接。存储器903用于存储计算机程序和数据,并可以将存储器903存储的数据传输给处理器902。
其中,处理器902可用于实现图8实施例中客户端800中的处理单元801的功能,收发器901可用于实现图8实施例中客户端800中的发送单元802以及接收单元803的功能,不再叙述。
参阅图10,图10为本申请实施例提供的一种在线编程平台的结构示意图。在线编程平台1000包括:
接收单元1001,用于从所述客户端接收项目代码;
处理单元1002,用于确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境,并指示所述运行设备基于所述项目代码所需的标准化程序运行环境运行所述项目代码,其中,所述运行设备包括所述在线编程平台或者所述智能硬件;
发送单元1003,用于向所述客户端发送所述项目代码的运行结果,所述项目代码的运行结果是由所述运行设备发送给所述在线编程平台的,所述项目代码的运行结果是由所述运行设备基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码得到的。
参阅图11,图11为本申请实施例提供的一种在线编程平台的结构示意图。如图11所示,在线编程平台1100包括收发器1101、处理器1102和存储器1103。它们之间通过总线1104连接。存储器1103用于存储计算机程序和数据,并可以将存储器1103存储的数据传输给处理器1102。
其中,处理器1102可用于实现图10实施例中在线编程平台1000中的处理单元1002的功能,收发器1101可用于实现图10实施例中在线编程平台1000中的接收单元1001以及发送单元1003的功能,不再叙述。
参阅图12,图12为本申请实施例提供的一种智能硬件的结构示意图。智能硬件1200包括:
接收单元1201,用于接收所述在线编程平台所指示的基于项目代码所需的标准化程序运行环境运行的所述项目代码,所述项目代码是由所述客户端发送给所述在线编程平台的,所述项目代码是由所述编程人员输入的采用标准计算机程序设计语言在所述客户端中编写的;所述项目代码所需的标准化程序运行环境是由所述在线编程平台确定的;
处理单元1202,用于基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码;
发送单元1203,用于向所述在线编程平台发送所述项目代码的运行结果。
参阅图13,图13为本申请实施例提供的一种智能硬件的结构示意图。如图13所示,智能硬件1300包括收发器1301、处理器1302和存储器1303。它们之间通过总线1304连接。存储器1303用于存储计算机程序和数据,并可以将存储器1303存储的数据传输给处理器1302。
其中,处理器1302可用于实现图12实施例中在线编程平台1200中的处理单元1202的功能,收发器1301可用于实现图12实施例中在线编程平台1200中的接收单元1201以及发送单元1203的功能,不再叙述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如上述方法实施例中记载的任何一种在线编程方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种在线编程方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (28)

1.一种在线编程系统,其特征在于,包括:客户端、在线编程平台以及智能硬件,其中,所述客户端、所述在线编程平台以及所述智能硬件之间保持通信连接,所述在线编程平台和所述智能硬件均预置有标准化程序运行环境,所述标准化程序运行环境支持标准计算机程序设计语言的代码运行;
所述客户端,用于接收编程人员输入的采用标准计算机程序设计语言编写的项目代码,并向所述在线编程平台发送所述项目代码;
所述在线编程平台,用于确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境,并指示所述运行设备基于所述项目代码所需的标准化程序运行环境运行所述项目代码,其中,所述运行设备包括所述在线编程平台或者所述智能硬件;
所述运行设备,用于基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端。
2.一种在线编程方法,其特征在于,应用于在线编程系统中的客户端,所述在线编程系统还包括在线编程平台以及智能硬件,其中,所述客户端、所述在线编程平台以及所述智能硬件之间保持通信连接,所述方法包括:
接收编程人员输入的采用标准计算机程序设计语言编写的项目代码;
向所述在线编程平台发送所述项目代码;
从所述在线编程平台接收所述项目代码的运行结果,其中,所述运行结果为运行设备基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码得到的,所述运行设备以及所述项目代码所需的标准化程序运行环境是由所述在线编程平台确定的,所述运行设备包括所述在线编程平台或者所述智能硬件。
3.根据权利要求2所述的方法,其特征在于,
所述在线编程平台为所述客户端包括项目管理功能;
所述接收编程人员输入的采用标准计算机程序设计语言编写的项目代码;向所述在线编程平台发送所述项目代码,包括:
接收所述编程人员输入的项目创建需求;
根据所述项目创建需求以及所述在线编程平台提供的项目管理功能,生成项目文件,并为所述项目文件提供代码编写环境;
接收所述编程人员基于所述代码编写环境在所述项目文件中编写的所述项目代码;
向所述在线编程平台发送所述项目文件。
4.根据权利要求2或3所述的方法,其特征在于,
所述在线编程平台为所述客户端提供运行设备选择功能;
在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之后,所述方法还包括:
接收所述编程人员通过所述运行设备选择功能选择的运行设备;
向所述在线编程平台发送所述编程人员选择的运行设备。
5.根据权利要求2-4中任一项所述的方法,其特征在于,
所述在线编程平台为所述客户端提供运行环境选择功能;
在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之后,所述方法还包括:
接收所述编程人员通过所述运行环境选择功能选择的运行环境;
向所述在线编程平台发送所述编程人员选择的运行环境。
6.根据权利要求2-5中任一项所述的方法,其特征在于,
所述必要资源包括必要数据以及运行资源,所述必要数据包括数据集、模型文件和编程库中的至少一个;所述运行资源包括硬件资源和软件资源。
7.根据权利要求6所述的方法,其特征在于,
所述在线编程平台为所述客户端提供数据集管理功能;
在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之前,所述方法还包括:
接收所述编程人员通过所述数据集管理功能上传的所述项目代码所需的数据集,并向所述在线编程平台发送所述项目代码所需的数据集。
8.根据权利要求6或7所述的方法,其特征在于,
所述在线编程平台为所述客户端提供第三方开源库安装功能;
在接收编程人员输入的采用标准计算机程序设计语言编写的项目代码之前,所述方法还包括:
接收所述编程人员通过所述第三方开源库安装功能上传的所述项目代码所需的模型文件,并向所述在线编程平台发送所述项目代码所需的模型文件。
9.根据权利要求2-8中任一项所述的方法,其特征在于,
所述在线编程平台为所述客户端提供硬件管理功能;所述方法还包括:
通过所述硬件管理功能显示所述智能硬件的监控信息,所述监控信息包括所述智能硬件与所述客户端的当前所述连接状态以及所述智能硬件的中央处理器的占用信息和内存的占用信息。
10.根据权利要求2-9中任一项所述的方法,其特征在于,
所述在线编程平台为所述客户端提供项目管理功能;所述方法还包括:
通过所述项目管理功能接收在所述在线编程系统所注册的用户上传的项目案例,并向所述在线编程平台发送所述项目案例。
11.一种在线编程方法,其特征在于,应用于在线编程系统中的在线编程平台,所述在线编程系统还包括客户端以及智能硬件,其中,所述客户端、所述在线编程平台以及所述智能硬件之间保持通信连接,所述在线编程平台预置有标准化程序运行环境,所述标准化程序运行环境支持标准计算机程序设计语言的代码运行,所述方法包括:
从所述客户端接收项目代码;
确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境,并指示所述运行设备基于所述项目代码所需的标准化程序运行环境运行所述项目代码,其中,所述运行设备包括所述在线编程平台或者所述智能硬件;
向所述客户端发送所述项目代码的运行结果,所述项目代码的运行结果是由所述运行设备发送给所述在线编程平台的,所述项目代码的运行结果是由所述运行设备基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码得到的。
12.根据权利要求11所述的方法,其特征在于,
所述在线编程平台为所述客户端提供项目管理功能;
所述从所述客户端接收项目代码,包括:
从所述客户端接收项目文件,所述项目文件是所述客户端基于编程人员输入的项目创建需求以及所述在线编程平台提供的项目管理功能生成的,所述项目文件中包含所述编程人员基于所述客户端为所述项目文件提供代码编写环境在所述项目文件中编写的所述项目代码。
13.根据权利要求11或12所述的方法,其特征在于,
所述在线编程平台为所述客户端提供运行设备选择功能;
在确定所述项目代码的运行设备之前,所述方法还包括:
从所述客户端接收所述编程人员选择的运行设备,所述编程人员选择的运行设备是所述编程人员通过所述运行设备选择功能选择上传给所述客户端的;
所述确定所述项目代码的运行设备,包括:
根据所述编程人员选择的运行设备,确定所述项目代码的运行设备。
14.根据权利要求11-13中任一项所述的方法,其特征在于,
所述在线编程平台为所述客户端提供运行环境选择功能;
在确定所述项目代码所需的标准化程序运行环境之前,所述方法还包括:
从所述客户端接收所述编程人员选择的运行环境,所述编程人员选择的运行环境是所述编程人员通过所述运行环境选择功能上传给所述客户端的;
所述确定所述项目代码所需的标准化程序运行环境,包括:
根据所述编程人员选择的运行环境,确定所述项目代码所需的标准化程序运行环境。
15.根据权利要求11-14中任一项所述的方法,其特征在于,
所述必要资源包括必要数据以及运行资源,所述必要数据包括数据集、模型文件和编程库中的至少一个;所述运行资源包括硬件资源和软件资源。
16.根据权利要求15中任一项所述的方法,其特征在于,
在所述运行设备为所述在线编程平台的情况下,在指示所述运行设备基于所述项目代码所需的标准化程序运行环境运行所述项目代码之后,所述方法还包括:
准备所述项目代码所需的标准化程序运行环境,
从所述在线编程平台中获取所述项目代码所需的必要数据,以及从所述在线编程平台中调用所述项目代码所需的运行资源;
基于所述项目代码所需的标准化程序运行环境、必要数据以及所述运行资源运行所述项目代码,并将所述项目代码的运行结果返回至所述客户端。
17.根据权利要求15所述的方法,其特征在于,
在所述运行设备为所述智能硬件的情况下,在向所述客户端发送所述项目代码的运行结果之前,所述方法还包括:
从所述智能硬件接收所述项目代码的运行结果。
18.根据权利要求11-17中任一项所述的方法,其特征在于,
所述在线编程平台为所述客户端提供数据集管理功能;
在确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境之前,所述方法还包括:
从所述客户端接收所述项目代码所需的数据集,所述项目代码所需的数据集是所述编程人员通过所述数据集管理功能上传给所述客户端的。
19.根据权利要求11-18中任一项所述的方法,其特征在于,
所述在线编程平台为所述客户端提供第三方开源库安装功能;
在确定所述项目代码的运行设备以及所述项目代码所需的标准化程序运行环境之前,所述方法还包括:
从所述客户端接收所述项目代码所需的模型文件,所述项目代码所需的模型文件是所述编程人员通过所述第三方开源库安装功能上传给所述客户端的。
20.根据权利要求11-19中任一项所述的方法,其特征在于,
所述在线编程平台为所述客户端提供硬件管理功能;所述方法还包括:
通过所述硬件管理功能对所述智能硬件进行网络配置,将所述智能硬件和所述客户端接入同一局域网。
21.根据权利要求11-19中任一项所述的方法,其特征在于,
所述在线编程平台为所述客户端提供项目管理功能;所述方法还包括:
从所述客户端接收项目案例,所述项目案例是所述在线编程系统所注册的用户通过所述项目管理功能上传给所述客户端;
共享所述项目案例。
22.一种在线编程方法,其特征在于,应用于在线编程系统中的智能硬件,所述在线编程系统还包括客户端以及在线编程平台,其中,所述客户端、所述在线编程平台以及所述智能硬件之间保持通信连接,所述智能硬件预置有标准化程序运行环境,所述标准化程序运行环境支持标准计算机程序设计语言的代码运行,所述方法包括:
接收所述在线编程平台所指示的基于项目代码所需的标准化程序运行环境运行的所述项目代码,所述项目代码是由所述客户端发送给所述在线编程平台的,所述项目代码是由所述编程人员输入的采用标准计算机程序设计语言在所述客户端中编写的;所述项目代码所需的标准化程序运行环境是由所述在线编程平台确定的;
基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码;
向所述在线编程平台发送所述项目代码的运行结果。
23.根据权利要求22所述的方法,其特征在于,
所述必要资源包括必要数据以及运行资源,所述必要数据包括数据集、模型文件和编程库中的至少一个;所述运行资源包括硬件资源和软件资源;
所述基于所述项目代码所需的标准化程序运行环境和必要资源运行所述项目代码,包括:
基于所述项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码。
24.根据权利要求23所述的方法,其特征在于,
所述基于所述项目代码所需的标准化程序运行环境、所述必要数据以及所述运行资源运行所述项目代码,包括:
获取所述必要数据的存储地址,根据所述存储地址从所述在线编程平台中获取所述必要数据;
从所述智能硬件中调用所述项目代码所需的标准化程序运行环境以及所述运行资源;
基于所述项目代码所需的标准化程序运行环境、必要数据以及运行资源运行所述项目代码。
25.一种客户端,其特征在于,包括:处理器和存储器,所述处理器与所述存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述客户端执行如权利要求2-10中任一项所述的方法。
26.一种在线编程平台,其特征在于,包括处理器和存储器,所述处理器与所述存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述客户端执行如权利要求11-21中任一项所述的方法。
27.一种智能硬件,其特征在于,包括处理器和存储器,所述处理器与所述存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述客户端执行如权利要求22-24中任一项所述的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求2-24任一项所述的方法。
CN202110470796.7A 2021-04-28 2021-04-28 在线编程系统、在线编程方法及相关产品 Active CN113094613B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110470796.7A CN113094613B (zh) 2021-04-28 2021-04-28 在线编程系统、在线编程方法及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110470796.7A CN113094613B (zh) 2021-04-28 2021-04-28 在线编程系统、在线编程方法及相关产品

Publications (2)

Publication Number Publication Date
CN113094613A CN113094613A (zh) 2021-07-09
CN113094613B true CN113094613B (zh) 2024-01-02

Family

ID=76681017

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110470796.7A Active CN113094613B (zh) 2021-04-28 2021-04-28 在线编程系统、在线编程方法及相关产品

Country Status (1)

Country Link
CN (1) CN113094613B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742716B (zh) * 2021-11-04 2022-02-08 腾讯科技(深圳)有限公司 代码运行方法、装置、电子设备、存储介质和程序产品
CN114693482B (zh) * 2022-04-14 2024-04-16 湖南智擎科技有限公司 在线编程实验与开源项目贡献转化方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106651697A (zh) * 2016-11-17 2017-05-10 深圳信息职业技术学院 一种在线编程系统实现方法及装置
CN110032364A (zh) * 2019-04-11 2019-07-19 上海商汤智能科技有限公司 数据处理方法、装置、电子设备和计算机存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7778866B2 (en) * 2002-04-08 2010-08-17 Topcoder, Inc. Systems and methods for software development
US10057182B2 (en) * 2012-05-07 2018-08-21 Infosys Limited Method for providing development and deployment services using a cloud-based platform and devices thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106651697A (zh) * 2016-11-17 2017-05-10 深圳信息职业技术学院 一种在线编程系统实现方法及装置
CN110032364A (zh) * 2019-04-11 2019-07-19 上海商汤智能科技有限公司 数据处理方法、装置、电子设备和计算机存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
别永辉 ; 钟时 ; .基于WinCC的港口移动机械监控系统的设计与应用.港口科技.2007,(05),全文. *
黄强 ; .Web下的Python3编程环境分析.电脑编程技巧与维护.2018,(12),全文. *

Also Published As

Publication number Publication date
CN113094613A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
CN113094613B (zh) 在线编程系统、在线编程方法及相关产品
Sirkiä Jsvee & Kelmu: Creating and tailoring program animations for computing education
US20130344469A1 (en) Open Paradigm for Interactive Networked Educational Systems
Király et al. Some aspects of grading Java code submissions in MOOCs
Imran et al. ResEval mash: a mashup tool for advanced research evaluation
Almonaies et al. Towards a framework for migrating web applications to web services
Vermette et al. Peek-through customization: Example-based in-context sharing for learning management systems
Fernando et al. Developing A User-Friendly Interface from Robotic Applications Development
Sukhoroslov Building web-based services for practical exercises in parallel and distributed computing
Edinger et al. Developing distributed computing applications with Tasklets
Horvath et al. Overview of modern teaching equipment that supports distant learning
Wei The Design and Implementation of a Mobile Learning Platform Based on Android
Barsotti et al. A web framework for cross-device gestures between personal devices and public displays
CN113138764A (zh) 代码运行方法及相关产品
Reiss et al. Plugging in and into code bubbles: the code bubbles architecture
Husmann Investigating Tool Support for Cross-Device Development
Rana Open and accessible education with virtual reality
Queirós et al. Orchestration of e-learning services for automatic evaluation of programming exercises
CN115033282B (zh) 一种充电桩运营平台兼容方法、装置、设备、存储介质
Andreasen et al. MAES: A ROS 2-compatible simulation tool for exploration and coverage algorithms
Pérez-Colado et al. Using e-Learning Standards to Improve Serious Game Deployment and Evaluation
He Plaskon-A Learning Server for Python Flask
Moskalenko Approach for testing Augmented reality applications
Alor-Hernández et al. An Overview of RIAs Development Tools
KR20240068388A (ko) 실무 역량 과제 테스트 환경 구축 방법과 이를 위한 프로그램 및 서버

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant