武警警官学院 四川 ·成都 610213
摘 要 网络编程课程是目前高等院校中计算机、信息安全、软件工程等专业学生的必修课,本文基于一个完整网络编程项目设计配套的案例库。通过迭代循环式案例库的教学,让学生对网络编程课程及其相关专业课程内容有一个综合性的应用。
关键词 案例库 迭代 实践操作
0 引言
网络编程课程作为一门必修课程,该课程适合将《密码学》、《计算机网络》、《数据库原理及安全》、《操作系统原理及安全》、《网络安全技术》等专业课程内容进行综合设计成一个完整项目进行开发和教学的课程,对于培养学生的实践操作能力和综合运用能力具有很好效果。
1 项目案例库设计
采用迭代循环式案例库的教学方法,将较为复杂的项目开发分为三轮迭代:
第一轮迭代案例库主要通过基础语法的学习,构建客户端和服务器的各个功能模块,主要是各个功能函数和类的设计与实现;
第二轮迭代案例库主要通过数据库操作、数据加解密、数据存储、数据检索,实现对用户注册数据和用户通讯数据的各种处理操作,实现客户端和服务器的基本功能;
第三轮迭代案例库主要通过UI界面、网络编程和多线程编程,UI界面实现图形界面的设计与开发;网络编程实现数据在不同客户端与同一个服务器之间传送,从而实现在不同客户端之间的数据传送;多线程编程实现服务器同时连接多个客户端,实现客户端的工作线程和图形线程的独立运行。
第一轮迭代开发,基础语法部分设置案例库如下:
①Python开发环境与输入输出(共计2个案例):
案例—演示Python开发环境的搭建;案例—服务器带参数的打印语句使用;案例—客户端登录窗口输入用户名和密码;
②列表与字符串使用(共计2个案例):
案例—客户端使用发送类型、发送者信息、接收者信息、发送时间、发送信息等多个字符串拼接成即将发送的字符串;案例—服务器对接收到的字符串进行切割后构成列表提取出发送类型、发送者信息、接收者信息、发送时间、发送信息等;
③选择语句使用(共计2个案例):
案例—服务器对接收到并且切割后的列表中,根据列表中第一个元素—-发送类型,选择进入不同功能模块,每个功能模块暂时先设置为空函数,只填写打印语句;案例—客户端登录界面根据接收到的服务器登录验证信息结果判断用户输入的登录信息是否正确;
④循环语句使用(共计4个案例):
案例—服务器设置有限循环实现监测有限个数客户端套接字的连接申请;案例—服务器设置无限循环实现动态接收客户端发送的网络传输信息字符串;案例—客户端设置无限循环实现负责接收服务器发送信息的线程动态接收网络传输信息字符串;案例—客户端设置有限循环实现发送信息长度多大时,按照3000个字节(1000个汉字)截断后多次接收;
⑤函数使用(共计10个案例):
案例—服务器设置启动套接字函数,将套接字初始化和循环监测客户端套接字连接封装成一个无输入参数的函数;案例—服务器设置功能处理线程函数,将服务器实现的所有功能封装成一个带输入参数的函数;案例—服务器设置处理用户登录功能模块的函数;案例—服务器设置处理用户注册功能模块的函数;案例—服务器设置处理用户发送信息功能模块的函数;案例—客户端设置用户点击登录按钮触发用户登录功能模块的函数;案例—客户端设置用户点击注册按钮触发用户注册功能模块的函数;案例—客户端设置用户点击发送按钮触发用户发送功能模块的函数;案例—客户端设置用户点击关闭按钮触发用户关闭功能模块的函数;案例—客户端设置对用户信息加密功能模块的函数;
⑥类与对象使用(共计6个案例)
案例—服务器类的设计与使用;案例—客户端登录界面类的设计与使用;案例—客户端注册界面类的设计与使用;案例—客户端设置界面类的设计与使用;案例—客户端通讯界面类的设计与使用;案例—客户端接收信息线程类的设计与使用;
⑦异常处理使用(共计3个案例)
案例—服务器套接字连接异常处理;案例—服务器处理请求线程各种功能的异常处理;案例—客户端接收信息线程异常处理。
第二轮迭代开发,数据功能部分设置案例库如下:
①数据库操作,实现数据存储和数据检索(共计5个案例)
案例—服务器创建用户登录和注册信息数据表;案例—服务器用户登录数据查询;案例—服务器用户注册数据写入;案例—服务器用户通讯信息写入与查询;案例—服务器用户通讯信息删除,用于实现撤回功能;
②数据加解密使用(共计3个案例)
案例—客户端用户登录信息加密与服务器登录信息解密;案例—客户端用户注册信息加密与服务器注册信息解密;案例—客户端用户发送通讯信息加密与服务器接收通讯信息解密。
第三轮迭代开发,网络通信功能和UI界面部分设置案例库如下:
①UI界面使用(共计4个案例)
案例—服务器UI界面设计与实现;案例—-客户端登录界面设计与实现;案例—客户端注册界面设计与实现;案例—客户端设置界面设计与实现;案例—客户端通讯界面设计与实现;
②网络编程(共计4个案例)
案例—服务器套接字初始化、套接字连接、数据收发;案例—客户端套接字初始化、套接字连接、数据收发;案例—客户端接收信息线程数据接收、套接字正常关闭;案例—服务器套接字接收客户端关闭命令后正常关闭。
③多线程编程(共计3个案例)
案例—服务器连接每个客户端套接字功能处理线程;案例—客户端连接服务器接收信息线程;案例—客户端UI界面线程。
2 案例库研究计划设计
启动阶段:开发一款教学使用的即时通讯软件,包含网络编程、数据库操作、数据加解密、数据传输、数据存储、数据检索、UI界面、多线程编程等相关知识点内容;设计阶段:将开发的即时通讯软件,按照知识点全部分解成各个模块,设计每个知识点的案例代码,形成案例的代码库;撰写阶段:针对各个案例编写详细的实验手册;结项阶段:完成结项的文档,完成全套案例库建设。
3 总结
本文通过借鉴了目前互联网软件培训企业的教学思路,将整门课的教学设计成完成一个综合性的软件系统,这种教学方法可以很好的将全部知识点串连起来,同时针对学生的具体情况进行后续二次特定扩展功能开发,实现更加符合实际需求的软件开发。目前已通过几届学生授课,积累了较为充足的教学经验,对学生的学习能力、学习时间、学习兴趣掌握较为准确,设计并实现满足该课程的案例库,并最终应用于教学,取得更好的教学效果。
参考文献
[1] 刘鑫《军队院校“程序设计基础”课程案例教学研究》[J]黑龙江教育,2022年1月
[2] 杨凯新《军队院校混合式教学模式的探索与实践—以“信息论基础”课程为例》[J]教育教学论坛,2021年7月
[3] 顾雅珍《案例教学法在“网络编程基础”课程中的应用研究》[J]中国电力教育,2014年第21期