构建之法 - 软件工程实践教学:每天都向前推进一点点
作者:福州⼤学 汪璟玢⽼师
汪老师:每次都向前推进一点点,哪怕只有一点点,也好过什么都不做。
邹老师:对,几个学期下来,就已经超过那些“空想”的团队很远了。坚持下去!
汪老师:团队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/
历届优秀助教的博客
2019春 软件工程实践 大史
2019春 软件工程实践 Eventide
2019春 软件工程实践 sinceway
2019秋 软件工程实践 衡与墨
2021春 软件工程实践 Grey Zeng
2021春 软件工程实践 Kofyou
历届个人小黄衫得主
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
相关文章:
构建之法 - 软件工程实践教学:每天都向前推进一点点
作者:福州⼤学 汪璟玢⽼师 汪老师:每次都向前推进一点点,哪怕只有一点点,也好过什么都不做。 邹老师:对,几个学期下来,就已经超过那些“空想”的团队很远了。坚持下去! 汪老师&…...
CSS transform:rotate;无效问题
CSS设置旋转 transform:rotate无效。 今天遇到一个奇怪的问题,CSS给 icon图标设置一个hover 旋转180deg的效果,不生效。 一度任务样式被覆盖了,样式不生效没选中元素的class。但是设置hover改变大小是生效的。奇怪了? 为什么会无…...
华为新版ENSP PRO模拟器测评:性能表现与功能扩展一览
一、引言 在网络领域不断涌现的新技术和复杂的网络拓扑要求,推动了网络设备模拟器的持续发展和创新。华为作为一家领先的通信技术解决方案提供商,不断致力于为网络工程师和技术从业人员提供更优秀的仿真环境。最近,华为推出了ensp pro模拟器的…...
BBS-个人博客项目完整搭建、BBS多人博客项目基本功能和需求、项目程序设计、BBS数据库表结构设计、创建BBS表模型
一、BBS-个人博客项目完整搭建 项目开发流程 一、项目分类 现在互联网公司需要开发的主流web项目一般分为两类:面向互联网用户,和公司内部管理。面向互联网用户: C(consumer)端项目 公司内部管理:B(business)端项目还有一类web应用ÿ…...
智能设备管理系统对企业设备管理效果有作用吗?
智能设备管理系统对企业设备管理效果具有显著的作用和积极的影响。它可以提高设备管理的效率、准确性和可靠性,帮助企业降低运营成本、提高生产效率,并为企业提供更好的决策支持。以下是智能设备管理系统对企业设备管理效果的几个方面影响: …...
取证--实操
2022年美亚杯个人赛 运用软件DB Browser for SQLite (一款用于查看SQLlite数据库文件的浏览器工具) 火眼,盘古石手机取证系统等 案件详情 于2022年10月,有市民因接获伪冒快递公司的电邮,不慎地于匪徒架设的假网站提…...
react组件化开发详解
React是一个流行的JavaScript库,用于构建用户界面,并且以组件化的方式进行开发。下面将详解React组件化开发的概念和步骤: 组件化思维: 组件化开发是将复杂的用户界面划分为独立、可重用的小部件(组件)。…...
【JVM】对String::intern()方法深入详解(JDK7及以上)
文章目录 1、什么是intern?2、经典例题解释例1例2例3 1、什么是intern? String::intern()是一个本地方法,它的作用是如果字符串常量池中已经包含一个等于此String对象的字符串,则返回代表池中这个字符串的String对象的引用&#…...
7.1 C/C++ 实现动态数组
动态数组相比于静态数组具有更大的灵活性,因为其大小可以在运行时根据程序的需要动态地进行分配和调整,而不需要在编译时就确定数组的大小。这使得动态数组非常适合于需要动态添加或删除元素的情况,因为它们可以在不浪费空间的情况下根据需要…...
iOS问题记录 - Xcode 15安装低版本iOS模拟器(持续更新)
文章目录 前言开发环境问题描述问题分析1. 定位问题2. 逆向分析2.1. IDA Free2.2. Hopper Disassembler Demo 3. 模拟器日志4. supportedArchs 解决方案最后 前言 最近新需求很多,项目改动很大,开发完成后想测一遍在低版本iOS系统上的兼容性,…...
高端百度地图开发2:自定义水滴头像(鼠标事件、API封装对接)
高端百度地图开发系列 高端百度地图开发1:自定义水滴头像(自定义标注覆盖物、Overlay覆盖类) 自定义水滴头像之鼠标事件、API封装对接 高端百度地图开发系列一、添加自定义覆盖物的方法二、对接API数据1.获取API数据(模拟)2.遍历数据3.添加自…...
R语言生存分析(机器学习)(2)——Enet(弹性网络)
弹性网络(Elastic Net):是一种用于回归分析的统计方法,它是岭回归(Ridge Regression)和lasso回归(Lasso Regression)的结合,旨在克服它们各自的一些限制。弹性网络能够同时考虑L1正则…...
【Docker】使用 Docker Registry 搭建自己的 Docker 镜像仓库
使用 Docker Registry 搭建自己的 Docker 镜像仓库 在使用 Docker 进行应用程序的开发和部署时,使用 Docker 镜像仓库是一个很好的实践。它允许集中存储和管理 Docker 镜像,方便团队协作和版本控制。在本文中,将介绍如何使用 Docker Registr…...
Spring 是什么框架?
Spring 是 Java EE 编程领域的一款轻量级的开源框架,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,它的目标就是要简化 Java 企业级应用程序的开发难度和周期。 Spring 自诞生以来备受青睐,一直被广大开发人员作为 Java 企业…...
Azure添加网络接口
添加网络接口的意义 在 Azure 上,为虚拟机添加网络接口的意义包括以下几个方面: 扩展网络带宽:通过添加多个网络接口,可以增加虚拟机的网络带宽,提高网络传输速度和数据吞吐量。实现网络隔离:每个网络接口…...
Linux 内核第一版 (v0.01) 开源代码解读
探索Linux v0.01的内部结构,Linux内核经常被认为是一个庞大的开源软件。在撰写本文时,最新版本是v6.5-rc5,包含36M行代码。不用说,Linux是几十年来许多贡献者辛勤工作的成果。 Linux 内核首个开源版本 (v0.01) 的体积非常小&…...
tp6 v3微信退款
/*** Notes:退款* param $out_trade_no 支付时候订单号(order表 original_bn)两个参数选一个这个要选对* param $out_refund_no 退款订单号* param $total 订单金额* param $refund 退款金额* Time: 2023-08-10*/public function refundMoney($out_trade…...
使用 AndroidX 增强 WebView 的能力
在App开发过程中,为了在多个平台上保持一致的用户体验和提高开发效率,许多应用程序选择使用 H5 技术。在 Android 平台上,通常使用 WebView 组件来承载 H5 内容以供展示。 一.WebView 存在的问题 自 Android Lollipop 起,WebVie…...
Maven基础之仓库、命令、插件机制
文章目录 Maven 仓库中央仓库和本地仓库中央仓库本地仓库 Maven 命令generate 命令compile 命令clean 命令test 命令package 命令install 命令 Maven 插件机制官方插件:Compile 插件Tomcat 7 插件 Maven 仓库 中央仓库和本地仓库 [✎] 简单一点说 中央仓库是一个网…...
【ArcGIS】经纬度数据转化成平面坐标数据
将点位置导入Gis中,如下(经纬度表征位置): 如何利用Gis将其转化为平面坐标呢? Step1 坐标变换 坐标变换,打开ArcToolbox,找到“数据管理工具”->“投影和变换”->“要素”->“投影”…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001
qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类,直接把源文件拖进VS的项目里,然后VS卡住十秒,然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分,导致编译的时候找不到了。因…...
深入解析 ReentrantLock:原理、公平锁与非公平锁的较量
ReentrantLock 是 Java 中 java.util.concurrent.locks 包下的一个重要类,用于实现线程同步,支持可重入性,并且可以选择公平锁或非公平锁的实现方式。下面将详细介绍 ReentrantLock 的实现原理以及公平锁和非公平锁的区别。 ReentrantLock 实现原理 基本架构 ReentrantLo…...
