吴加明
随着项目学习在编程教育的深入推进,越来越多的教师更加注重项目的可行与效益,在编程项目的细节设计、作品可见性方面进行了更多的探索。本期解码,让我们对两个来自一线的编程项目设计进行学习。
《普通高中信息技术课程标准(2017年版)》提出了数据、算法、信息系统和信息社会这四个学科大概念。其中,数据是信息系统的管理对象,算法是信息系统的实现方法,而信息系统又是信息社会的具象表现。因此,学会开发简易信息系统就成为高中信息技术新课程的核心。
● 认识和把握信息系统大概念
1.信息系统的定义
信息系统有时又称作平台。广义的信息系统是由人、软件、硬件、网络、数据资源等组成的人机交互系统,按功能可分为事务处理系统、管理信息系统、决策支持系统、专家系统等。信息系统的主要功能和目的是对输入信息进行处理、控制、存储、传输和输出后,以支持组织做出快速合理决策。狭义的信息系统指的是内容信息管理系统,如学校网站、安全教育平台等。其本质上是对数据库中的数据进行“增、删、改、查”等基本操作,如手机通讯录,主要就是添加、修改、删除和查询联系人信息等。
2.信息系统与信息社会的关系
信息社会属于抽象范畴,而信息系统是具体的、直观的。人们通过应用信息系统各项功能,享受信息技术带来的各种方便、快捷、高效。线上线下融合已经是人们的当下生活方式,这背后的支撑平台就是信息系统。
3.信息系统教学中面临的挑战
在强调学科核心素养养成的当下,“信息系统”教学如何践行“在用中学,在学中用”理念面临较大挑战。信息系统开发往往涉及多种技术,而教学中存在的根本性问题是,信息系统开发技术门槛高、综合性强、专业度高,与中学生信息技术学业水平和信息素养普遍不高、时间精力有限形成了尖锐的矛盾。因为新课程采用Python语言,有教材在讲解“信息系统”实例时就以开发语言Python+数据库Access+框架Danjgo为组合,尽管在专业性上无可挑剔,但面向全体学生教学普适性方面还是值得商榷的。
为了让学生能够在有限的课时里亲身体验开发信息系统的全过程,有课堂学习的获得感和成就感,笔者设计了一个简易版的“班级图书管理系统”学习项目,希望为大家提供信息系统开发教学的可行性方案。
● 设计和开发信息系统
“班级图书管理系统”学习项目设计的目的是把技术方面的要求降到最低水平,更多的是剖析厘清信息系统中各操作模块的内在机理,并用精简的Python代码加以实现。所应用到的主要技术是Python语言中的函数、文件操作、列表和字典数据类型等基础知识,数据最终以字典类型存储在TXT文本文档中。
1.项目的功能目标及开发环境
(1)需求分析。班级图书管理系统应具备的功能:录入图书信息、将图书信息保存到文件中、修改和删除图书信息、查询图书信息。
(2)系统设计。系统功能结构:录入图书信息模块、查找图书信息模块、删除图书信息模块、修改图书信息模块、统计图书总数模块、显示所有图书模块。
(3)业务流程。业务流程如图1所示。
(4)系统开发必备。
系统开发环境:Python3.x,Python内置模块:os、re。
项目目录结构:BMS(Books Manage System简写)为项目文件夹,books.txt用于保存图书信息的文件(可由系统自动生成),main.py用于实现具体功能的Python源文件。
2.项目各主要模块的业务流程及代码实现
(1)主函数模块设计。主函数业务流程如图2所示。主要函数及功能如右表所示。参考代码略。
(2)录入图书信息模块。业务流程如图3所示。
具体实现:save(book_list)函数用于将图书信息保存到文件。add()函数,用于录入图书信息。核心代码略。
(3)删除图书信息模块。从控制台录入图书ID,到磁盘文件中找到对应的图书信息,并将其删除。业务流程如下页图4所示。
具体实现:编写删除图书信息的函数delete(),后调用show()函数显示所有图书信息。参考代码略。
(4)修改图书信息模块。从控制台录入图书ID,到磁盘文件中找到对应的图书信息,并将其进行修改。业务流程如下页图5所示。
具体实现:编写修改图书信息的函数edit(),在最前面先调用show()函数显示所有图书信息。参考代码略。
(5)查询图书信息模块。从控制台录入图书ID或书名,到磁盘文件中找到对应的图书信息。业务流程如下页图6所示。
具体实现:编写查找图书信息的函数search(),后调用show_book(book_query)函数显示图书信息。参考代码略。
(6)显示所有图书模块。将图书信息文件中保存的全部图书信息获取到并显示。业务流程如下页图7所示。参考代码略。
(7)统计图书总数模块。业务流程如图8所示。
具体实现:编写统计图书总数的函数total()。参考代码略。
“班级图书管理系统”全部代碼调试成功后,可以利用第三方模块PyInstaller对项目进行打包,生成EXE可执行的程序文件,再附上使用说明文档,一个像模像样的软件就此诞生了。
3.项目的创造性应用
“班级图书管理系统”学习项目具备“信息系统”的基本要素构成、主要业务逻辑和功能内涵实质,程序代码简洁,结构清晰,有利于引导学生初步树立模块化开发软件的思想,加深对数据结构的理解。同时,该学习项目有较强的拓展性和通用性:一是各功能模块相对独立,可以根据所教学生能力水平的差异,对功能模块进行适当的删减取舍,实现分层教学;二是通过举一反三,可以将其改造成“购物车”“通讯录”“VIP会员”等信息系统项目,实现个性化教学。
综上所述,笔者在探索“信息系统”技术路径的可行性中进行了教学实践,这是对新课程新理念的有益尝试,最终目标是让学生真正把“信息系统”的概念内化于心,从而满怀信心地融入信息社会,走向智能社会,迎接智慧社会。