杜春涛 康守冲 白帆
关键词:课程思政;建构主义;SSM框架;资源管理平台;设计与实现
1引言
教育部关于印发《高等学校课程思政建设指导纲要》的通知指出:课程思政建设工作要围绕全面提高人才培养能力这个核心点,在全国所有高校、所有学科专业全面推进。目前,全国各级各类高校都在积极开展课程思政教学工作,但由于专业课教师往往缺少思政背景,思政课教师又往往不理解专业知识,因此找到与专业知识点比较融合的思政案例、素材等思政资源是目前思政教学面临的瓶颈问题。由于缺少与知识点精准匹配的思政资源,很多教师在教学过程中往往使用一些比较笼统和流行的思政素材,从而导致同一个班级多门课程教师讲授同一思政资源情况,这不仅不利于思政教学,而且还可能会对专业知识讲授造成不良影响。
针对上述问题,基于构建主义学习理论,文章开发了一个课程思政资源管理平台,利用该平台可以实现思政案例、素材和话题的分类发布、查询、浏览、点赞、评论、讨论等功能,实现了对思政资源的平台管理和共建共享,为课程思政教学提供了技术支持。
2平台总体设计
2.1平台功能设计
建构主义学习理论强调发挥学习者在学习过程中的主观能动性[1],其主要教学设计原则包括以学习者为中心、鼓励自主学习与协作学习等[2]。基于建构主义的知识观、学习观,平台为用户设计的主要功能如下。
(1)案例与素材浏览。建构主義知识观强调知识的动态性,认为学习者不应照搬现有的知识,而是需要根据实际情况进行再创造。平台为用户提供了课程思政教学案例资源和素材资源,用户可以通过课程思政教学案例学习课程思政教学设计的经验、方法,通过思政相关素材资源丰富自己的知识储备,从而设计出独特、新颖的课程思政教学方案。
(2)话题讨论。建构主义学习观强调学习的情境性,认为知识不应脱离现实而抽象存在,应该与现实情境相结合。平台为用户提供了课程思政相关话题的讨论与交流渠道,用户可以发表自己的活题,也可以加入其他用户的话题,分享自己的见解,学习他人的经验,共同学习、共同进步。
(3)资源分享。建构主义学习观强调学习的主动建构性,认为学习者不应该被动地吸收信息,而是要主动地建构信息。平台为用户提供了课程思政案例的分享渠道,用户可以将自己的课程思政教学案例上传到平台,以便其他用户进行浏览、学习,同时为上传者提供后台统一管理功能,方便用户对自己发布的案例进行管理。
为了实现上述功能,平台设计了三大模块(如图1所示),即用户模块、资源模块和管理员模块。用户模块提供教师用户的注册、登录、登录状态保持、个人信息修改、个人资源管理等功能。资源模块分为案例专区、素材专区、话题讨论专区三个板块,案例专区和素材专区根据一级学科分类,分别为教师提供思政教学案例和素材,话题讨论专区则为教师提供课程思政教学话题的讨论和交流渠道。管理员模块为平台管理者提供管理维护功能,如用户管理、通知管理、案例管理、素材管理、话题管理等。
在未登录的情况下,教师可以浏览案例专区、素材专区和话题讨论内容,但无法进行发布、点赞、评论等操作。注册登录后,在个人资料未完善的情况下可以对案例/素材/话题进行浏览、点赞和评论,但无法发布新的案例、素材和话题。只有当教师登录并完善了个人资料后,才拥有对平台资源的完全访问权限,包括浏览、点赞、评论和发布新的资源等。管理员由平台管理者指定,负责审核平台内容、管理用户通知,以及处理违规用户等。
2.2平台结构设计
平台采用基于浏览器/服务器的B/S架构,使用SSM框架进行分层设计开发。SSM是一个典型的MVC框架[3],由Spring,SpringMVC和MyBatis共同组成,该框架为系统开发提供切面编程、解耦容器、中央调度、分层设计等多种支持。本平台开发遵循SSM框架设计规范和MVC框架模式,主要包括四个层级,即视图层、调度层、服务层和数据访问层,如图2所示。
视图层:负责将服务器返回的结果呈现给用户,通过用户交互向服务器发起业务请求。
调度层:负责审查视图层发来的业务请求,根据实际情况将业务请求提交给服务层进行处理,并向视图层返回业务的处理结果。
服务层:负责处理调度层发来的业务请求,通过调用数据访问层提供的接口功能对业务请求进行处理,并将处理结果返回给调度层。
数据访问层:负责数据库的增删改查操作。
视图层实现了MVC的视图功能,包括与用户交互的页面和组件。采用Lavui框架,基于JSP,iQuery技术进行开发,与调度层通过请求作用域和响应体进行数据交换。
调度层实现了MVC中的控制器功能,包括对视图层请求进行预处理的Interceptor类和处理视图层请求的Controller类。采用SpringMVC框架进行开发,通过基于注解的依赖注入在SpringMVC容器中创建控制器对象和拦截器对象,拦截器会对视图层的业务请求进行预处理,检查其有效性、合法性,之后通过SpringMVC的请求映射将视图层的请求映射到不同控制器进行业务处理,处理结果以ModelAndView格式通过响应体返回给视图层。
服务层和数据访问层共同实现MVC中的业务模型功能,包含对调度层请求进行业务处理的Service类、提供后端数据库访问功能的Dao接口和实现数据库操作的Mapper文件。采用Spring,MyBatis框架进行开发,使用MyBatis的动态代理创建Dao接口的实现类对象来执行soL语句,通过基于注解的依赖注入在Spring容器中创建Service对象,在Service对象中调用Dao接口实现类对象对业务的处理,处理结果以函数返回值的形式返回给调度层的Controller。
2.3数据库设计
数据库的设计对平台功能实现起着至关重要的作用,在综合考虑性能、成本、开发难度之后,选用MySQL数据库作为平台后端数据库。针对平台功能,数据库需要分别存储用户的登录信息、用户的个人资料、案例资源、素材资源、话题资源、点赞信息、评论信息、管理员信息、公告信息和用户通知。
用户注册后,用户信息将存人用户登录信息表中,此表仅存储少量的用户登录信息。用户完善个人信息后,用户信息将存人用户资料表中,作为登录信息表的补充。案例资源、素材资源、话题资源分别存储于案例表、素材表和话题表中,其中除了自动生成的id外,还包括发布该资源的用户名、资源标题、内容、创建时间、修改时间、访问数、点赞数、评论数等。平台的首页、专区页面、资源详情页面等都将从对应的资源表中根据指定规则加载资源列表,并呈现给用户。资源的点赞与评论信息分别存储于单独的表中,用户的每次点赞、评论操作都会在表中生成一条记录,该记录包括用户名、资源id、操作时间等信息,以便用户在个人中心页面管理个人的点赞和评论记录。管理员表记录了管理员的用户信息,包含管理员id、用户id、用户名和权限等级。用户登录时,后端服务器将根据用户名、用户id去管理员表中进行查询操作,判断当前用户权限,从而做出不同响应。公告信息表用于存储由管理员发布的公告信息,公告在平台的各个板块均会展示。管理员可以从管理中心向用户发送通知信息,通知信息由用户通知表存储,其中包括通知标题、通知内容、管理员信息、用户信息、发送时间、是否已读等,用户可以在个人中心页面查看收到的通知。数据库E-R图如图3所示。
3平台功能实现
本平台主要包含用户模块、资源模块和管理员模块,平台首页如图4所示。
3.1用户模块功能实现
用户模块主要包括用户注册、登录和个人中心三部分。当用户请求访问个人中心时,调度层的拦截器会首先查验用户的登录状态,若用户未登录,则将用户导向登陆页面。登录页中提供了注册入口,用户提供用户名、邮箱和密码即可完成注册,注册后用户既可以通过用户名登录,也可以通过邮箱登录。用户可以在个人中心修改个人资料、管理上传的资源,以及查看收到的通知。
调度层的用户控制器会处理用户模块相关业务请求,控制器内部包含多个用户控制器方法,每个控制器方法都对应着具体的业务请求。根据用户模块实际业务请求,SpringMVC将从用户控制器中动态调用不同的控制器方法来实现用户模块功能。以用户登录功能为例,用户在注册成功后可以通过用户登录页面进行登录,当用户发起登录请求时,后端调度层的用户登录控制器会接收到用户登录请求,并交给服务层的用户业务对象执行用户登录业务。用户业务对象将通过数据访问层的数据库访问对象检索用户表,核验用户登录信息是否正确。在用户登录业务成功执行后,用户登录控制器会调用JWT工具类为当前用户生成一个Token,其中包含用户的登录信息、签名算法以及服务器加密后的签名信息,最后将Token封裝成Cookie通过响应体返回给视图层。之后,用户的每次请求都将附带这个Cookie,调度层拦截器会根据后端的密钥对Cookie中的Token进行校验,实现登录状态保持。
3.2资源模块功能实现
资源模块包括案例资源、素材资源和话题资源,用户可以对这些资源进行发布、浏览、查看、点赞、评论等操作。用户登录后可以对喜欢的资源进行点赞和评论,在完善个人资料后,还可以在个人中心的资源发布页面发布新的案例、素材、话题资源,发布后的资源会存储到服务器的数据库中,并在资源类型对应的专区首页展示。
调度层的多个资源控制器会分别处理对应资源的相关业务请求,以资源发布为例,资源发布页面为用户提供了多个可以编辑的内容,分别是标题、内容、学科分类,以及案例资源独有的评论区开关。其中,内容组件为富文本编辑器,除了基本的加粗、斜体、下划线、对齐格式外,还提供了插入链接、添加表情、插入图片的功能。当用户发起资源发布请求时,请求将携带用户输入的资源信息发送到调度层,调度层拦截器在验证用户登录状态无误后,请求将到达调度层对应的资源控制器,控制器从请求作用域中获取用户输入的资源信息,将其封装成资源对象后调用业务层的资源上传业务对象进行上传,从而实现案例发布功能。
3.3管理员模块实现
管理员模块包括管理员登录、权限验证、通知管理、内容管理。管理员由平台实际管理者指定,拥有对平台资源、平台公告、平台通知的管理权限。管理员可以使用管理员账号通过登录页面登录到后台管理中心。
调度层的管理员控制器会处理管理员相关的业务请求,以发送平台通知为例,管理员可以从管理中心的通知管理页面给用户发送通知或警告消息。当管理员发起通知请求时,后端调度层的管理员控制器将从请求作用域中获取当前要发送通知的标题、内容和要通知的用户等信息,随后控制器将通知封装成对象交给业务层的通知业务对象进行处理。业务对象在收到通知对象后会对通知对象的属性值进行解析,并通过数据访问层的数据访问对象将当前通知以一条记录的形式存人数据库的通知表中。通知对象包含了通知标题、内容、时间、是否已读、发送者和接收者。若该记录插入成功,则表示用户通知业务执行成功。同时,管理员执行的所有管理请求都将先通过调度层的管理拦截器进行审核,拦截器会从请求作用域中找到key值为“token”的Cookie,通过调用编写的JWT静态工具类从token中解析用户名,随后根据用户名去数据库中检索记录,从而确认用户的管理员身份。
4平台功能测试
软件测试是软件开发中不可或缺的部分,也是软件工程方法中的重要环节。通过为各个模块的业务功能编写详细的测试用例来验证平台的功能是否与预期的功能性需求一致。平台功能测试分别从用户模块、资源模块、管理员模块三个方面进行。
(1)用户模块包括用户注册、用户登录、登录保持、退出登录、修改个人资料等功能,其功能测试用例如表1所列。
(2)资源模块由于案例资源、素材资源、话题资源具有高度相似性,这里仅以案例资源作为资源模块的展示,包括案例浏览、案例查看、案例发布、案例点赞、案例评论、案例管理等功能,其功能测试用例如表2所列。
(3)管理员模块包括管理员登录、通知管理和资源管理,资源管理可以对案例资源、素材资源、话题和回答资源进行删除操作,这里以案例资源为例进行测试,其功能测试用例如表3所列。
5结束语
平台实现了课程思政资源的分类、管理、共建和共享,为丰富课程思政资源和实现精准思政教学奠定了坚实基础。未来该平台将继续优化,如通过整合分布式数据库加强平台的并发处理能力,通过整合权限管理框架完善平台的管理机制,通过部署推荐算法为不同的用户推荐其更感兴趣的资源等。随着平台功能的改良,用户数量的增长将会使思政资源越来越丰富,从而为其他教师进行思政教学提供有力保障和支持。