构建之法 - 软工教学:每天都向前推进一点点
作者:福州⼤学 汪璟玢⽼师
汪老师:每次都向前推进一点点,哪怕只有一点点,也好过什么都不做。
邹老师:对,几个学期下来,就已经超过那些“空想”的团队很远了。坚持下去!
汪老师:团队Git现场编程实战。
邹老师:这个效果很好,建议在更早的时间让学生实践。
汪老师:敢于选实践的同学差不多理论班级三分一(今年理论人数暴多是意外)。在理论课中有的知识点讲完,习惯性的说:“选实践的同学就有体会啦~”
邹老师:在企业面试的时候就更有体会啦!
(2018秋)软件工程实践课程总结
向前推进……
又到写总结的时刻了,用白驹过隙形容也不为过!5个月前怀着刚刚执行完一轮构建之法的信心,又开始了新的“Learning by doing”之旅。与之前不同的是,此次人数大大增多。当然,在此之前我们早有准备:
- 提前选定助教,参加北航的暑期培训。这一学期的实践证明,暑期的培训效果非常好!林静和静平两位助教不仅很快掌握实践的要素,而且配合默契,完全不需要我操心,真是太幸福啦!
- 开学前就进行课程安排梳理,课程组讨论并定下博客作业与上机实践配合的schedule,有了plan,心中就有数啦!
- 设置1-2次机动环节,根据实际情况,灵活变更。
我们把教学也当作一个项目来管理!
虽然选课人数增加,但是学生们的团队项目给了我们很多惊喜,选题多样、新技术结合自然,学生们活跃的思维令人赞叹。
由于实践是选修课,敢于选实践的同学差不多理论班级三分一(今年理论人数暴多是意外)。在理论课中有的知识点讲完,习惯性的说:“选实践的同学就有体会啦~”然后有些同学会心一笑……这样导致快到学期末的时候,有的学生找我说,后悔开学初没有选实践,感觉错过很多,哈哈!“不入虎穴,焉得虎子?”讲的就是这个理!这也说明,“Learning by doing”这种方式在慢慢被学生们认可~~
再一次感谢林静和静平两位助教!没有你们的付出,就没有这一轮教学的顺利完成!学生不爱找老师询问问题,却更愿意向助教敞开心扉。正是你们不厌其烦的答问、点评,给予学生向前的动力,鞭策他们的同时,也在鞭策你们自己。我欣喜的看到你们从开始的被动待问,到后面的主动将自己的项目开发经验与学生们交流。在跟你们一起讨论团队的评分标准时,你们提出既要考虑团队项目的总体表现,又要考虑个人在团队的贡献度、兼具公平性,我们一起拟定了一个看起来好复杂的公式,做了一个大大的分次成绩表格,这样学生们对于实践课最终的成绩是一目了然,做事的、划水的都各得其所。
每次都向前推进一点点,哪怕只有一点点,也好过什么都不做。
学生们的心声
在最后想写点自己在整学期软工实践的感想,有一种感觉就是突然发现已经过了4个月,软工实践即将结束。刚开始真的以为会很困难,自己代码量那么少,编码能力又不高,怎么坚持下去。但到后面,渐渐发现自己是可以做出点东西的,不断的学习是可以提高自己的。而期间获得的小黄衫也是对我努力的一种肯定,让我能明确自己的目标,继续地坚持下去。
虽然这次我十分不想换队员QAQ,不过还是建议下一届换队员,因为独乐乐不如众乐乐换队员有助于团队学习到发生人员变动了应该怎样交接,换出去的队员学习到如何融入一个进行中的团队。
在之前的课程中,还从来没有一门课让我用下载并使用了这么多的工具,并且之前从来不喜欢逛博客的我还是注册了好几个博客网站的账号,方便去博客网站上查找相关知识。
建议早早花点时间学习相关实践内容,赶项目时会轻松很多,毕竟工科,光背书不好。
基于以上两个问题我的beta冲刺可以说是一场空。我的确解决了很多问题,做了很多的工作,但是我扣错了第一颗扣子,所以我没有办法展示我的工作成果,我没有办法邀功。问题在于我的盲目,看见局部解默认找到了最优解。
结论:不要凭借第一直觉开始打代码,“团队交流很重要”
助教与学期小黄衫得主合影


软工实践博客作业安排与成绩排名情况(2018秋学期)
| 序号 | 起止时间 | 教学周序 | 博客内容 | 成绩排名 |
|---|---|---|---|---|
| 1 | 暑期-9.04 | 1 | 准备篇 | 成绩排名 |
| 2 | 9.5-9.12 | 1-2 | 个人实战--词频统计基本篇 | 成绩排名 |
| 3 | 9.13-9.21 | 2-3 | 结对第一次--原型设计(文献摘要热词统计) | 成绩排名 |
| 4 | 9.19-9.26 | 3-4 | 团队展示 | 成绩排名 |
| 5 | 9.22-10.10 | 3-6 | 结对第二次--词频统计进阶篇 | 成绩排名 |
| 6 | 9.27-10.12 | 4-6 | 团队项目--选题报告 | 成绩排名 |
| 7 | 10.14-10.26 | 7-9 | 团队项目--需求分析报告 | 成绩排名 |
| 8 | 11.17 | 11 | 团队Git现场编程实战 | 成绩排名 |
| 9 | 11.11-11.23 | 11-12 | 团队项目—Alpha冲刺(10+1+1) | 成绩排名 |
| 10 | 11.24 | 12 | 团队项目—事后诸葛亮 | 成绩排名 |
| 11 | 11.25-12.7 | 13-14 | 个人作业--**项目评测 | 成绩排名 |
| 12 | 12.13-12.21 | 15-16 | 团队项目—Beta冲刺(7+1+1) | 成绩排名 |
| 13 | 12.22-1.8 | 19 | 个人作业—软件工程实践总结 | 成绩排名 |
汪老师的教学博客
https://www.cnblogs.com/cocoSE/
历届个人小黄衫得主
2021春W班
不到65kg不改名 / 吴铠嘉

王炜嘉

WiLLyy

Aurora

张思萍

CLH029

潘紫盈

YukioLee

2020春W班
theTuring

sillyby

潘晨宇

hxd1017

herokilito

cy221701116

ybn-juan

viridianfairy

2019年春软件工程
衡与墨

XRK

chenyuu

陈迎仁

汪老师所在班级-班级博客
-
2021春软件工程实践|W班
-
2020春|W班
-
2019秋福大软件工程实践Z班
-
构建之法助教园地
-
软件工程1916|W
-
高级软件工程2018
-
福州大学软件工程1816 | W班
-
北航暑期软工培训
-
高级软件工程2017
-
福州大学软工1715 | W
相关文章:
构建之法 - 软工教学:每天都向前推进一点点
作者:福州⼤学 汪璟玢⽼师 汪老师:每次都向前推进一点点,哪怕只有一点点,也好过什么都不做。 邹老师:对,几个学期下来,就已经超过那些“空想”的团队很远了。坚持下去! 汪老师&…...
基于Qlearning强化学习的路径规划算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 Q值更新规则 4.2 基于Q-learning的路径规划算法设计 4.3 Q-learning路径规划流程 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 ..…...
ASL国产CS5213 转VGA信号输出音频 替代AG6200安格芯片 HDMI to VGA(带音频)方案设计原理图
CS5213功能:HDMI转VGA带音频输出,专注于设计HDMI转VGA带音频输出。可替代AG6200 AG6201。 CS5213芯片是一个HDMI(高清多媒体接口)到VGA桥接芯片。 它将HDMI信号转换为标准VGA信号它可以在适配器、智能电缆等设备中设计。 Capst…...
springboot启动忽略某些类
springboot启动忽略某些类 描述解决方案单拉一个提交,把所有的涉及kafka消费的都不注入容器通过配置ComponentScan的excludeFilters配置了不生效后续处理改之前改之后解释 总结 拆分环境 感触解决实现demo参考 描述 目前我这的开发环境和测试环境数据库是两份&#…...
HCIA VLAN配置
目录 一、VLAN(虚拟局域网 ) 二、VLAN配置思路 三、配置命令 1、创建vlan 单个创建: 批量创建: 2、交换机上的各个接口划分到对应的vlan中 单个操作: 批量操作: 3、trunk…...
微信小程序--原生
1:数据绑定 1:数据绑定的基本原则 2:在data中定义页面的数据 3:Mustache语法 4:Mustache的应用场景 1:常见的几种场景 2:动态绑定内容 3:动态绑定属性 4:三元运算 4&am…...
Django快速上手
1. 安装Django Django 4.x的版本只支持MySQL8及以上的版本了。如果mysql版本比较老,需要使用老版本的django。此处指定django版本为3.2.20 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django3.2.202. 创建项目 创建项目 在指定目录使用命令行创建项…...
Android, 笔记+课表的app实现
NoteSchedule: 笔记课表,不同于超表和课程格子等笔记类软件,笔记课表的核心是将课表和笔记进行深度绑定,点击每个课表,就进入到笔记view中,点击其中的item就可以进入到笔记详情; 该应用已上线,…...
Openlayers实战:多数据分散聚合
在飞机、轮船等地图显示的应用中,很多时候会用到数据聚合,Openlayers中提供了Cluster这个API ,他作为souce的一部分,设定distance值,如果2个点的间距小于 distance 所设置的数时,就会以聚合的方式显示。从而解决了数据淤积显示的状态,非常实用。 效果图 源代码 /* * @…...
9、Kubernetes核心技术 - Volume
目录 一、概述 二、卷的类型 三、emptyDir 四、hostPath 五、NFS 5.1、master服务器上搭建nfs服务器 5.2、各个slave节点上安装nfs客户端 5.3、创建Pod 六、PV和PVC 6.1、PV 6.1.1、PV资源清单文件示例 6.1.2、PV属性说明 6.1.3、PV的状态 6.2、PVC 6.2.1、PVC资…...
HTML <small> 标签
定义和用法 <small> 标签呈现小号字体效果。 <small> 标签和它所对应的 <big> 标签一样,但它是缩小字体而不是放大。如果被包围的字体已经是字体模型所支持的最小字号,那么 <small> 标签将不起任何作用。 与 <big> 标签…...
网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(四)对战模块
网页版Java(Spring/Spring Boot/Spring MVC)五子棋项目(四)对战模块 一、约定前后端交互接口1. 建立连接接口2. 针对落子的请求和响应 二、实现前端页面三、实现后端1. 当用户进入房间,更新用户状态 OnlineUserManager…...
React实现关键字高亮
先看效果: 实现很简单通过以下这个函数: highLight (text, keyword ) > {return text.split(keyword).flatMap(str > [<span style{{ color: red, fontWeight: bold }}>{keyword}</span>, str]).slice(1);}展示某段文本时调用该函数…...
react-media如何使用
介绍 react-media 是 React 中用于响应式设计的一个很好的库。它可以用于在视口宽度满足特定条件时渲染组件。 主要功能包括: 媒体查询:通过 minWidth, maxWidth 和 width 等设置媒体查询条件。 渲染组件:当媒体查询条件匹配时渲染子组件。 默认样式:可以设置默认渲染的组件。…...
多进程利用TCP进行信息群发功能
/服务器的代码 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #define SEVER_IP &quo…...
git 报错 protocol ‘https‘ is not supported解决
报错原因:选择不了其他分支代码,甚至都看不到其他分支,我这边解决了两次报错,情况如下: 第一种报错: idea中刷新分支报错如下: Fetch Failed protocol https is not supported 话不多说&#…...
启动RocketMQ报错
说明:启动RocketMQ消费者时,报以下错误:java.lang.IllegalStateException:Failed to start RocketMQ push consumer. 解决:看下所有的监听器类,检查是不是有相同的消费者组名,注释掉其中一个即可…...
【Spring Boot系列】-Spring Boot过滤器Filter
【Spring Boot系列】-Spring Boot过滤器Filter 文章目录 【Spring Boot系列】-Spring Boot过滤器Filter一、概述二、Filter(过滤器)数据流程三、Spring Boot 过滤器生命周期四、使用注解方式实现过滤器(WebFilter)4.1. 在springboot 启动类添加该注解Ser…...
Leetcode-每日一题【剑指 Offer 14- I. 剪绳子】
题目 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少?例如࿰…...
【图论】单源最短路问题
Dijkstra算法 -- 这是我职业生涯中唯一一个会写,却叫不上名字的算法 Dijkstra算法是一种单源最短路径算法,用于找出图中从一个源点到其他所有点的最短路径。该算法的原理是采用贪心策略,每次将距离源点最近的点加入到已确定最短路径的集合中…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
