基于Python的少儿编程线上教育平台设计与实现
2021-09-14席倩安梦生张家源张巍
席倩 安梦生 张家源 张巍
摘要:随着信息技术和互联网技术的发展,编程思维和编程能力的培养引起社会的关注,Scratch的出现降低了编程教育的门槛,使得少儿编程迅速兴起。为了进一步推广普及少儿编程教育,该文基于Python设计开发一个线上教育平台,系统采用Django框架,利用CBV的方式组织视图类以及项目的封装,使用MySql为后台数据库,实现在线直播、视频点播、师生在线互动等功能,以期能推动编程教育的推广和发展。
关键词:少儿编程;编程教育;在线直播;视频播放;学习平台
1 背景
随着智能时代的加速到来,我国正向世界人工智能产业引领者迈进。为更好地适应社会,少年儿童需要拥有一定的编程思维[1-2]。虽然中国东部很多城市已经出现了一些少儿编程的培训机构,但是更多落后的中小城市因地域的原因、师资缺乏、人们观念没有跟上以及地方政策的因素,未形成一个良好的少儿编程教育生态。所以综合来看,我国少儿编程的发展还是远远落后于已经开展少儿编程的其他海外国家[3-5]。
文章主要研究少儿编程领域发展现状,以及国内外现有线上教育平台的运行模式。最终目标是建设一个可以实现注册、登录、在线课程播放、在线直播、线上互动的少儿编程为主题在线学习平台。系统以在线视频和在线直播为主要形式,降低少儿编程学习的门槛。将少儿编程领域的教育资源更高效、更低成本的传播,缓解少儿编程教育生态的环境。
2 系统需求分析
2.1 前台功能需求
1)基础功能:系统应当包含基础的用户注册与登录;通过SMTP邮件服务器验证用户邮箱真实性;应有完整的个人中心,便于资料修改,以及课程学习情况的统计;还应具备全局搜索功能,便于用户搜索所需课程。
2)课程功能:课程管理、教师管理、授课机构的管理;在线视频播放功能;在线直播观看功能;热门课程、相关课程智能推荐;学习时间统计。
3)互动功能:对喜欢的课程、教师进行订阅收藏;课程评论互动;课程资源下载;站内消息通知。
2.2后台功能需求
1)课程管理功能:课程功能除了基础的增删改查功能,还应包含课程资源的管理、课程评论的管理、课程推荐功能以及课程数据导出功能。
2)系统权限功能:系统除了最基本的用户管理以外,还应根据不同的用户需求,设有用户组管理,不同的用户组可以进行权限管理,以及用户日志等数据导出。
3)机构管理功能:课程机构和教师管理、轮播图推荐及数据导出。
3 系统设计
3.1系统结构设计
文章基于Django框架,采用MTV模式设计系统的结构。根据MTV模式设计原则,将不同的功能划分为不同的App,每个App就是一个包。不同的App本质上是不同的功能集合,这主要是为了降低项目的耦合,也更便于url路由分配[6-8]。
3.2系统功能设计
1)用户功能设计
用户是整个系统的主要客户,用户模块即为核心模块,基于上文分析,用户主要有注册功能、登录功能和个人中心。
注册功能:首次进入系统,需要完成用户注册,根据需求填写对应信息。
用户提交注册,后台访问并验证用户提交的信息,首先验证邮箱是否被注册,若注册则弹出提示,并返回登录界面,否则录入数据库,同时账户状态设为未激活。通过使用QQ邮箱的第三方SMTP邮箱服务器,发送带有验证code的链接,验证邮箱真实性。
用户查看email,点击验证链接,访问带code的链接,向后台提交一个code字符串,字符串会与数据库中的字符串进行匹配,通过验证则账户状态更新为活跃,并且跳转到登录界面。若不匹配,则账户激活不通过,无法登录。
登录功能:用户注册成功后,只需要填写注册邮箱、密码、随机验证码,即可正常登录。若输入错误,则返回对应的错误信息。
个人中心:用户登录成功后,右上角会有个人状态,可以点击进入个人中心。
2)课程功能设计
课程功能是为用户提供学习服务的主体功能,主要分为以下几个功能:
①课程列表:用户在首页点击公开课,即可进入相应页面。页面对课程进行分页处理,每一页显示六门课程,每一门课程包含:课程图片、课程名称、课程时长、学习人数、收藏次数以及授课机构。
②课程详情:课程详情页面包含课程名称、课程简介、课程难度、学习时长、章节数量以及课程所属类别。课程介绍下面应有课程具体介绍,以及侧边应有授课机构简介。用户也可以在本页面收藏课程,便于下次学习。
③课程章节:用户在课程详情页面点击开始学习,即可进入课程章节页面。该页面要强调课程难度、学习时长以及学习人数。课程按照章节分类,侧栏显示教师信息及教师寄语。
3)课程机构功能设计
课程机构模块,为便于用户了解课程的来源及机构信息、学习该机构的其他课程。
①机构列表:用户点击导航栏授课机构,即可进入机构列表页面。每页显示四个机构。每一列显示机构LOGO、机构的名称、课程数量、学习人数、机构地址、推荐课程,以及联系方式。机构的排序根据学习人数和课程数量,在model中设置调取course-nums的数值来排序,并且可以根据列表和所在地区进行排序。
侧栏设有一个Form表单,便于用户可以留言,后台验证手机号格式是否符合标准,若符合则写入数据库,便于管理员查看。
②机构详情页:主体部分分为三块内容,机构所属课程、机构教师信息、机构团队介绍。侧栏可以分类查看详情。
3.3数据库设计
系统E-R图,显示了实体与实体之间的关系模型。系统中涉及的实体有:用户、课程、视频,用户实体包含以下属性:用户id号、用户名、邮箱、密码、性别、出生年月日、地址、是否激活、手机号、头像、注册时间、最后登录时间。课程实体主要包含以下属性:课程id、课程名称、课程描述、课程详情、是否轮播推广课程、学习时长、学习人数、收藏次数、課程须知、所属教师介绍、添加时间、所属教师id等。视频资源实体主要包含以下属性:视频id、视频url、视频名称、观看次数、添加时间、章节id等。系统E-R图如图1所示。