本篇文章给大家谈谈云职教mooc,以及yzjmax-ss的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
文章详情介绍:
让网课“亮”起来 这个学校线上教学有点“潮”
红网时刻株洲3月9日讯(通讯员 粟慧龙 钱罗权)自2月24日启动第一阶段线上教学模式以来,湖南铁道职业技术学院共有200余名教师和1万余名学生参与网上教学活动,其中涉及700多个教学课程班级,选课多达3万余人次。
为确保线上教学有序进行,实现“停课不停教、停课不停学”,学校教务处积极开展教师教学培训,联系爱课程、超星、智慧职教等在线课程平台,订制多样化在线教学解决方桉,组织全校精干力量,自建MOOC和SPOC课程100余门;探索多种授课模式,教师可选择MOOC/SPOC、直播、录播和互动式自主学习等多种模式;面向全校学生开放30多门通识素养类课程。学校各二级学院积极制定科学方桉,各任课老师早已“磨刀霍霍向网课”。
教师探讨在线教学截图。
主动承担在线课,积极探讨为教学。电务学院宁云智副院长承担了信号182班的《区间信号设备应用与维护》课程。由于学院大部分老师没有线上教学的经验,为帮助老师们解决线上教学的困难,他主动将自己承担的课程报备为线上教学,并创建线上教学专用QQ群,组织大家讨论线上教学的实施,及时解决大家提出的问题,并定期召开线上教学交流会,及时做好线上教学总结。宁云智表示,每次课程都要做到“五个一”,即添加一次签到、一个讨论主题、一轮头脑风暴、一次测试、一次作业。
着力建设云题库,“题海战术”验成果。机辆学院曹卫权与动车组教研室另外五位老师一起承担的是动车组检修技术专业的《综合训练与技能鉴定(理论)》课程,六位老师共同编制了整个训练用的题库一千多道习题。在第一周的线上教学期间,共出了15套作业训练题,每套练习100道题,大部分同学的成绩在90分以上,对于一些成绩不理想的同学,他们主动要求增加习题练习次数及时间。根据学生作业练习和考试的成绩以及教学资源自学统计数据,掌握学生所学情况并及时线上答疑解惑。
学生评价截图。
线上教学不含煳,师生互动热情高。运管学院贾建红开设的《铁路应用文写作》,使用智慧职教MOOC学院教学平台教学,辅以钉钉直播讲解,采用1+1+2的教学模式,课前1个平台,课上1次直播,课后2次作业。贾老师教学方式新颖,授课形式多样,教学过程紧凑,深受学生喜爱。“这是我第一次上网课,原以为会很无聊,觉得网课纯粹就是一个任务,但是上完贾老师的网课后,想法与实际情况还是大相径庭的,课堂气氛十分活跃”,学生范湘宇如是说。素质/国际教育学院熊蕾负责公共英语课程,课程团队前期进行了长时间的规划与设计,尤其是在学校发出“停课不停教”的号召后,熊老师组织教研室的精干力量,进一步完善并优化课程资源,精心制作完成了《高职公共英语》网上课程,学生五星好评率达94.74%。
精心准备为学子,叁转平台不言累。控制学院张蕾承担2018博众精工订单班《西门子PLC技术应用》、新能源181班《叁菱PLC技术应用》及工业控制181班《变频与伺服控制技术》叁个班级的教学任务。由于课程资源所建平台各不相同,张蕾需要在中国大学MOOC、智慧职教、蓝墨云等不同的平台分别开展叁门课程的备课和授课,难度系数大,任务繁重,熬夜备课、录制微课是家常便饭,白天还要直播授课,张老师每一次都是精心准备,以最饱满的态度面对学生。
教师在线授课。
授课内容及时换,适时舍取做调整。制造学院石金艳担任电机与电器技术专业18级的《液压与气动》课程教学。为确保学生在线学习效果,石金艳根据教学情况,随时调整教学计划,选取合适开展线上教学的版块内容、准备丰富的在线教学资源、制订学生版的课程开课说明下发给学生。为保证教学效果,石老师每天都会对当天的教学情况进行总结,对学生学习情况进行点评,并且利用QQ群,随时与学生进行互动交流,在线答疑。
学生在线学习。
签到、看视频、小组讨论、课堂互动、作业测验……学生在家通过网络教学平台参与教学活动的各个环节,教师通过网络平台远程引导答疑、帮助学生学习课程知识。通过在线授课,学校真正做到了疫情期间“教师不停教、学生不停学,教学任务不减、教学质量不降”。
网课“亮”起来,在线学起来。平板代替了黑板、指尖代替了笔尖,学校教师充分利用超星、智慧职教、中国大学MOOC、腾讯课堂、QQ、微信、钉钉等开展在线教学工作,老师们着力磨炼教学基本功,积极探索网络授课质量“最优解”,疫情促使的短期线上教学,也必将是一次新型教学改革,对于学校优质网络课程建设及探索教学改革必将起到积极的推动作用。
统一异常处理
在当前rest-api的大行下,还有微服务的加持下。统一异常处理组件非常重要。那么怎么样来进行统一异常处理呢?首先异常按产生阶段分为进入controller前和service中;异常也会分类如自定义异常(UserNotFoundException\ParameterCheckException)和系统提供异常等;
指导原则:所以异常处理就是统一对不同阶段、不同异常进行处理。
目标:消灭95%以上的 try catch 代码块,以优雅的 Assert(断言) 方式来校验业务的异常情况,只关注业务逻辑,而不用花费大量精力写冗余的 try catch 代码块。
优雅抛出异常:用 Assert(断言) 替换 throw exception。使用断言进行异常抛出让我们写的代码有一种非一般丝滑的感觉。
陌生异常类:
controller上一层相关异常类:
NoHandlerFoundException:
HttpRequestMethodNotSupportedException:如后台需要get接收,前台axios调用使用post会出此异常
HttpMediaTypeNotSupportedException:
MissingPathVariableException:
MissingServletRequestParameterException:
TypeMismatchException:
HttpMessageNotReadableException:
HttpMessageNotWritableException:
BindException:
MethodArgumentNotValidException:
HttpMediaTypeNotAcceptableException:
ServletRequestBindingException:
ConversionNotSupportedException:
MissingServletRequestPartException:
AsyncRequestTimeoutException:
ClassCastException:
http://localhost:8080/api/user/findUser/1 请求会出此异常
/**
* 验证异常
* @param id
* @return
*/
@GetMapping("findUser")
public R
自定义异常类:
UserNotFoundException:
ParameterCheckException:
ValidException:
统一异常处理相关:
package com.batsoft.common.exception;
import com.batsoft.common.core.util.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* @author: leo
* @data: 2022/4/4
*/
@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(ParameterCheckException.class)
public R parameterCheckHandle(ParameterCheckException e) {
log.info("error:{}", e.getMessage());
return R.fail(e.getMessage());
}
@ExceptionHandler(UserNotFoundException.class)
public R userNotFoundHandle(UserNotFoundException e) {
log.info("error:{}", e.getMessage());
return R.fail(e.getMessage());
}
@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
public R methodNotSupport(HttpRequestMethodNotSupportedException e) {
log.info("error:{}", e.getMessage());
return R.fail(e.getMessage());
}
}
package com.batsoft.common.exception;
/**
* @author: leo
* @data: 2022/4/4
*/
public class ParameterCheckException extends RuntimeException{
public ParameterCheckException(String message) {
super(message);
}
}
package com.batsoft.common.exception;
/**
* @author: leo
* @data: 2022/4/4
*/
public class UserNotFoundException extends RuntimeException{
public UserNotFoundException() {
super("user not found...");
}
public UserNotFoundException(String message) {
super(message);
}
}
业务模块中使用:
package com.batsoft.vip.service;
import com.batsoft.vip.entity.User;
/**
* @author: leo
* @data: 2022/3/12
*/
public interface UserService {
User findUserById(long id);
User create(long id);
User findUser(Long id);
}
package com.batsoft.vip.service.impl;
import cn.hutool.core.lang.Assert;
import com.batsoft.common.exception.ParameterCheckException;
import com.batsoft.common.exception.UserNotFoundException;
import com.batsoft.vip.entity.User;
import com.batsoft.vip.service.UserService;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
/**
* @author: leo
* @data: 2022/3/12
*/
@Service
public class UserServiceImpl implements UserService {
@Override
public User findUserById(long id) {
return User.builder()
.id(id)
.age(30)
.name("yzj")
.build();
}
@Override
public User create(long id) {
User user = new User();
user.setId(id);
user.setAge(28);
user.setName("yzj");
return user;
}
@Override
public User findUser(Long id) {
Assert.isTrue(id>0,()->new ParameterCheckException("parameter check error..."));
User u1 = new User(1L, "u1", 1);
User u2 = new User(2L, "u2", 2);
User u3 = new User(3L, "u3", 3);
User u4 = new User(4L, "u4", 4);
User u5 = new User(5L, "u5", 5);
List
package com.batsoft.vip.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author: leo
* @data: 2022/3/12
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {
private Long id;
private String name;
private Integer age;
}
package com.batsoft.vip.controller;
import com.batsoft.common.core.util.R;
import com.batsoft.common.core.util.ThreadPool;
import com.batsoft.mail.autoconfigure.MailService;
import com.batsoft.mail.autoconfigure.annotation.Log;
import com.batsoft.vip.entity.User;
import com.batsoft.vip.service.UserService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author: leo
* @data: 2022/3/12
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/user")
public class UserController {
private final UserService userService;
@Autowired(required = false)
private MailService mailService;
@PostMapping("create")
public R
小知识:如果接口要返回json对象,则需要在方法上添加@ResponseBody注解或在类上添加@RestControllerAdvice;同理如果要接收vue传来的json对象需要在方法参数添加@RequestBody注解;
4-5 logback-spring