基于Python的操作系统慕课制作

 2022-01-17 11:01

论文总字数:17762字

目 录

1 绪论 1

1.1 背景与意义 1

1.2 国内外现状 1

2 相关技术介绍 2

2.1 Python 2

2.2 Flask框架 2

2.3 MySQL 2

2.4 ORM框架SQLAlchemy 3

2.5 Bootstrap 3

3 系统分析 3

3.1 系统可行性分析 3

3.2 系统需求分析 4

3.3 系统角色分析 4

4 系统设计 6

4.1 系统总体设计 6

4.2 系统各模块设计 8

4.2.1 课程模块 8

4.2.2 注册登录模块 8

4.2.3 学生模块 8

4.2.4 教师模块 9

4.2.5 管理员模块 9

4.3 数据库设计 9

4.3.1 数据库E-R图 9

4.3.2 数据库表设计 11

5 系统实现 13

5.1 课程模块的实现 13

5.2 注册登录模块的实现 14

5.3 学生模块的实现 16

5.4 教师模块的实现 17

5.5 管理员模块的实现 18

6 系统测试 20

6.1 系统的测试环境 21

6.2 系统的测试用例设计 21

6.2.1 注册登录模块测试 21

6.2.2 课程模块测试 23

6.2.3 学生模块测试 24

6.2.4 教师模块测试 25

6.2.5 管理员模块测试 26

7 总结 28

参考文献 29

致谢 30

基于Python的操作系统慕课制作

黄天威

, China

Abstract: With the trend of knowledge globalization, how to make high-quality educational resources break through the limitation of time and space has become a very meaningful issue. And in real life, operating system courses are the core courses of computer science. Therefore, based on the knowledge sharing concept of MOOC in recent years, this article uses Python language and MySQL database to develop a functional operating system MOOC website. The website implements a variety of functions such as course presentation, video playback, user discussion, student participating courses, teacher uploading courses, and background management.

Keywords: MOOC; Operating system; Python; MySQL

1 绪论

本章主要对课题进行概要性的说明,简述了课题的背景、国内外的研究现状。

1.1 背景与意义

近些年来,随着社会的发展,全球化的趋势变得越来越明显。而知识作为人类社会中重要的组成部分之一,它的全球化也得到了很多关注。

在传统的教育模式下,人们大部分时候只能在固定的时间和地点接受现实中的课堂教育,这种单一的教育模式有很多缺点。对于学习者来说,由于地区差异和时间的限制,很难确保自己能受到优质的教育;对于教育机构来说,优质的课程资源很难传播和重复使用,造成教育事业效率的降低。因此,在知识全球化的背景下,人们渴望突破时间和空间的限制,更有效率的分配优质的教育资源。

伴随着这样的需求,人们进行了很多尝试,慕课是其中一种较为成功的模式。慕课是MOOC(Massive Open Online Courses)的音译,中文直译为大型开放式网络课程。MOOC学习属于分布式的个人学习模式[1]。2008 年,戴夫·科米尔(Dave cormier)和布赖恩·亚历山大(Bryan Alexander),两位加拿大学者,他们受到开放教育资源运动的影响,根据网络课程的创新教学实践,第一次提出了慕课的概念[2]。它通过网络技术,把优质的教育资源输送至世界各地,使人人拥有平等的教育机会成为可能。

操作系统是计算机专业的核心课程,相对于其他课程来说更为抽象和难以理解。而且由于近年来例如“斯诺登事件”等等的网络安全事件频发,研发国产的操作系统的呼声越来越大。从国家层面对国产操作系统的关注也提升到新的高度,加强操作系统领域相关人才的培养是高校计算机专业一项紧迫的任务[3]。因此设计并实现一个操作系统慕课网站,对于解决人们对优质操作系统教育资源的需求与优质操作系统课程缺乏传输渠道之间的矛盾具有重要意义。

综合各种因素,本次课题旨在采用一套高效的技术方案实现一个具有较为完备功能的操作系统慕课网站。

1.2 国内外现状

国外对于慕课的研究无论从理论还是实践来说都开展的比国内早。在理论方面,主要分为宏观和微观这两部分。宏观研究关注的更多的是慕课对传统教育的意义、国际间如何合作发展慕课等等。微观研究则更多的关注于教学法的更新、教师和学生的发展[4]。而在实践方面,自2008年起,国外一大批教育工作者尝试了这种课程结构,成功在全球各个大学主办了自己的慕课。最重要的突破发生在2011年,来自全世界的160000人参加了斯坦福大学发布的《人工智能导论》这一免费课程。随后许多重要的创新项目,例如Udacity、Coursera以及edX等等出现了,超过十几个世界著名大学参与到了其中。再后来的2012年更是迎来了慕课的大爆发,被称为慕课元年。

国内,对慕课的研究同样受到了很大的关注。理论方面的研究国内开展的较晚,且最初是以翻译国外的文献为主,但后来进入了理论创新阶段。而在实践方面与国外的差距较小。近几年国内有很多与国内外大学合作的优秀的慕课平台出现,如MOOC学院、清华大学推出的学堂在线等等,取得了一定的实践成果,积累了一定的实践经验。

尽管慕课的研究在国内外取得了很大的进步,但还是有很多值得探索和改进的地方,慕课的应用还有很大的潜力。

2 相关技术介绍

本章主要对开发操作系统慕课平台用到的相关技术进行介绍,简单阐述了它们的特点。

2.1 Python

Python是一门解释型计算机程序设计语言,它的作者是荷兰人Guido von Rossum。1991 年初,Python 发布了第一个公开发行版[5]。Python是开源软件,它的源代码和解释器都是基于GPL(GNU General Public License)协议发布的。

自发布以来,Python受到了人们的强烈欢迎,常年居于GitHub的排行榜前列。用Python开发程序能在保证健壮性的同时大大提高开发效率。这样一门优雅而健壮的程序设计语言拥有如下特点:

  1. 易学

Python的结构较为清晰、关键字少、比较切合自然语言的语法,易于上手。与其他语言相比,Python更注重于解决问题本身。Python语言抽象了问题及解决方案,自动化问题求解,是“复杂信息系统时代”利用计算机解决问题最直观的表达工具[6]

  1. 高级

Python是一门高级的程序设计语言。它拥有很多内建的高级的数据结构,例如列表(大小可变数组)、元祖(不可变数组)和字典(键值对哈希表等等)。这避免了在开发程序的过程中重复实现数据结构从而导致易于出现错误和浪费时间这样的现象,大大提升了开发效率。

  1. 面向对象

Python支持多种编程范式,其中包括面向对象这种编程范式。面向对象有很多好处:符合人类对现实世界的认识;封装的特性可以使得开发者忽略内部的具体实现,重点放到自己要实现的功能;继承特性可以提高代码复用率;多态特性可以使子类继承父类方法的同时有不同的行为。

2.2 Flask框架

Flask是Python社区中的一个框架。它通过实现一个最小的Web服务器来保证简单性和灵活性,并因此被作为一个微框架进行宣传[7]。Flask被设计成可以通过插件拓展,Flask本身只维护一个核心。如果要做类比的话,Flask可以说像是一台组装机内的一个设计精良的 CPU,这给了开发者较大的灵活性去自行选择需要的配件(插件)。

Flask有两个核心依赖库,分别是Werkzeug和Jinja,而Werkzeug又是两者中更为核心的库。Werkzeug主要负责后端核心的逻辑模块,比如WSGI相关的函数、请求和应答的封装、路由等等;Jinja主要负责前端模板的渲染,模板中可能包含若干逻辑(比如继承自其它基础模板),经过一系列的处理最终返回给用户渲染后的HTML文件内容。

2.3 MySQL

MySQL由瑞典MySQL AB开发,是基于C/S体系结构的多用户、多线程的开源关系数据库管理系统[8]。MySQL是目前应用最为广泛的关系数据库。关系数据库使用关系模型作为数据存储的方式,一般可以分为四级结构:数据库,比如一个应用对应一个数据库;表,一个数据库包含若干张表;记录,一个表包含多条记录;字段,一条记录包含若干字段。MySQL开源、可在多种操作系统上运行、可根据业务作自定义增强,因此受到了很多中小网站的青睐。

2.4 ORM框架SQLAlchemy

ORM(Object Relation Mapping),即对象关系映射,是用来把对象模型表示的对象映射到基于SQL的关系模型数据结构当中[9]。简单来说,ORM通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。有了ORM以后可以将Python对象映射到数据库中,这样就不用再编写各种SQL语句了。

而在Python语言中,SQLAlchemy是非常强大的ORM包,非常值得学习。SQLAlchemy主要应用在使用Python进行网页的构造的时候,因为它是比较独立的应用,不需要依赖于其它的应用,它的优势是主要使用的对象关系的映射,可以很好地实现对象一一的对应,从而可以根据数据模型实现程序的编写,这种方式比较简单[10]。同时SQLAlchemy支持多种关系数据,如果项目后期需要切换到其他类型的数据库,通过SQLAlchemy也比较容易。

2.5 Bootstrap

Bootstrap是基于HTML5的前端开发组件,由Twitter的前端开发工程师Mark Otto和Jacob Thornton共同开发,致力于降低前端开发的难度,使前端开发更加简洁、高效[11]。Bootstrap一经推出就收到了开发者们的热烈欢迎,迅速占领了市场并衍生出了很多相关的技术。

这样一个优秀的前端框架有如下特点:

  1. 开发者不必特意对移动设备进行优化,Bootstrap能优先相应移动设备。
  2. Bootstrap几乎兼容所有的主流浏览器,可以减少很多测试工作。
  3. Bootstrap易于上手,库文档可读性较好。
  4. Bootstrap是开源的,且包含很多内置组件,易于定制。

3 系统分析

本章主要对系统的可行性、功能需求和角色进行分析,为后续设计打下基础。

3.1 系统可行性分析

系统的可行性主要从经济可行性和技术可行性两方面进行分析。

剩余内容已隐藏,请支付后下载全文,论文总字数:17762字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;