(转)日行千里,不止于足下——软件工程实践教学 - 构建之法

2023-11-02 15:10

本文主要是介绍(转)日行千里,不止于足下——软件工程实践教学 - 构建之法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:福州⼤学 汪璟玢⽼师

汪老师:每次都向前推进一点点,哪怕只有一点点,也好过什么都不做。

​邹老师:对,几个学期下来,就已经超过那些“空想”的团队很远了。坚持下去!

汪老师:团队Git现场编程实战。

邹老师:这个效果很好,建议在更早的时间让学生实践。

汪老师:敢于选实践的同学差不多理论班级三分一(今年理论人数暴多是意外)。在理论课中有的知识点讲完,习惯性的说:“选实践的同学就有体会啦~”

邹老师:在企业面试的时候就更有体会啦!

日行千里,不止于足下

不觉中,软件工程实践课采用《构建之法》提倡的“做中学”方法已经有7个年头,师生交流的平台由博客园,更换至CSDN教学社区也是第二年。相比于去年对CSDN教学社区的不熟练,今年我们教学团队对教学社区了解更多,感谢CSDN技术团队对我们提出各种教学需求的配合,还提供了一系列的鼓励和资助,这里一并感谢!

本轮教学一点总结:
 

一、坚持结合时事,设计系列从浅入深的作业


这几年我们延续构建四次连续性强、难度逐级递增的时事类编程作业,每次实践作业所锻炼的专业能力各不相同,但是将几次作业前后贯穿起来,就能够全面提升学生解决复杂工程问题的能力:

  1. 个人作业:要求学生在教师提供某时事数据的前提下,完成文件读入和数据显示,目的在于编码练习和对GitCode熟悉和使用;
  2. 结对作业初级:设计并实现某时事背景可视化原型设计,目的在于训练原型工具选择能力、自学能力和设计能力;
  3. 结对作业进阶:实现结对作业初级部分(给定)原型功能,目的在于训练结对合作能力、GitCode协作调试技术和代码编程能力;
  4. GitCode实战作业:团队在一天内实现一个时事背景相关的小系统,并完成文档撰写,目的在于训练团队合作能力、GitCode联调能力和代码编程能力。

今年我们结合的是澳网赛事。
第一次作业的问题很简单,针对助教提供的澳网数据文件,设计读写程序,并将读到的结果显示出来。这个简单的背景,训练学生对问题的分析能力、设计能力。作业中还设计了进阶的要求:对已完成的程序进行性能分析,检查在高压环境下程序的性能,并提出优化方案。这个要求训练了学生的优化设计能力,同时也让学生提前了解单元测试相关的内容,为和后续课程学习做好铺垫。此外,本次作业要求以博客方式发布,训练了学生沟通写作能力和对GitCode环境的使用。
第二次作业要求同学们结对,在协作的前提下,完成澳网赛事信息发布网站的原型设计。本次作业问题比第一次复杂,要求学生运用所学的需求分析知识,自学原型工具,在实践过程中体会需求表达的作用。同时训练了学生的分析问题能力、设计能力和初步的团队协作能力
第三次作业是对前一次的进阶,通过本次作业,让学生完成从产品设计到产品实现的转换。重点训练学生的协作能力、沟通能力、分析问题能力和设计能力
第四次作业任务比起前三次更为综合,要求团队(本次作业之前,同学们已经组成项目开发团队)在一天内开发一个澳网竞猜平台。通过这次强度较大的协作开发,要求团队成员密切协作,共同努力完成目标。这有助于增强团队的凝聚力和合作能力。通过设定明确的时间目标,团队被迫在有限的时间内完成特定任务,从而避免拖延和无效的时间管理,训练项目管理能力。同样还训练了问题分析能力、设计能力。

二、延续学长助教机制,保障助教团队建设


本轮教学的助教团队依然来自前一轮教学中优秀、主动报名参与的学生。我们认为这个机制是比较符合学校校情,同时学长了解同学们会遇到的困难,容易与学生产生共情,学生也会比较愿意找学长问问题。但是如果全部都是本校学长作为助教,也会有可能产生讲情现象,难免影响评分的客观性。本轮教学补充了一些来自外校的研究生助教,来消除这方面的隐患。从实施的效果上看,二者相辅相成:本校学长助教熟悉教师的教学节奏和同学们的困难之处,能够对老师和同学的要求快速呼应;来自外校的研究生助教能够很好的把握评价尺度,做到公平客观。希望下一轮教学,依然能够以此方式组建助教团队。

三、历次作业中涉及各个课程目标的分值,应作出适当调整


有多次作业中均涉及沟通和协作能力方面的分值,从这几轮教学结果上看,应有所调整,适当降低,以突出对学生分析和设计能力的评价。在下一轮教学中,我们将做一些探索。

四、团队规模的思考


这两轮教学,平均团队人数基本在10人,这样就会导致团队内部成员贡献度相差无几,难以有效区分成员的真实贡献:例如一个10人团队,平均贡献度为10%。某成员做事较少,组长给定了一个较低的贡献度3%,一位贡献较多成员给定了15%。从结果上看,二者的分值无法拉开很大差距--这样对于实际付出较多时间的学生来说是不公平的。当然,如果团队人数能减少到5人,那么在平均贡献度20%的情况下,多做者有可能拿到30%的贡献度,少作者可能依然只能拿到3%贡献度,那么二者的差距将达到27%!可见,控制团队人数是比较有效的手段。但是在目前班级总人数较多的情况下,势必造成小组数量太多,造成助教工作量激增。因此团队人数应控制在一个什么数量比较合理,在下一轮教学中,我们将进行探索。

五、保持开放


本学期初一场席卷世界的ChatGPT讨论就在构建之法群里展开讨论,邹欣老师推荐文章引发了同学们的思考。在小组选题中,有的小组敏锐地捕获到这个契机,提出了结合ChatGPT的选题YACW;有的同学把自己操作ChatGPT的心得写成技术博客......软件工程这个学科的特点使得软件工程师不能停滞不前、不能闭门造车,要训练同学们开放的心态,对新知识、新技术、新事物关注学习的心态。此外,他山之石可以攻玉,其他院校的经验也值得我们学习。来自北航大二学生对于第一单元作业的总结很值得思索,教师团队及时推荐给同学们,引导大家讨论。
本学期恰逢疫情放开后,时隔6年,邹欣老师一行到走进福州大学,给福大学子做了题为CSDN进福大--AI大潮下的软件教育与开发讲座:

引发同学们思索在AI浪潮下自己的学习方法、未来工作定位。如此,训练学生养成一个开放心态、虚心学习的心态,将对他们的未来成长大有裨益。

六、本学期获奖者

领骑者奖品

获奖的同学们!

第一次领骑者:222000434杨蕊蘭 、222000322许影杰、222000234张程越、222000323岳晓涵、222000332吴笛

第二次领骑者:222000329甘佳欣、222000407胡彦杰、222000201鲍仁俊、222000321熊中伟、222000433罗彤

第三次领骑者:222000131魏诗卉、222000331林玥利、062000224刘泓、222000334郑慧铃、222000228黄雨洁

CSDN大礼包!

熊中伟同学总成绩第一,获得大礼包!~

感谢

感谢本学期兢兢业业、辛苦付出的助教团队张富源、张思锐、张书旖、吴雨薇、郭渊伟。时光荏苒,转瞬间我们一同踏上软件工程实践之旅的征程已至终点。在这段不平凡的时光里,我们一同探索、奋斗,汗水和智慧交织,铸就了珍贵的回忆。这门课程不仅仅是知识的传递,更是思维的启迪,激发了你们对编码世界的无限热爱和探索精神。从最初的迷茫和摸索,到如今的自信和成长,你们展现出了不懈的努力和坚韧的毅力,以及在解决问题时的锐利思考和团队协作的智慧。

在软件工程的实践课程中,我们仿佛踏上了一段精彩而征程。从课程的一开始,我们秉持着“越努力,越幸运”的信念,一同踏上了知识的探索之旅。正如“学有所获,感悟满载”,我们在这段旅程中不仅积累了丰富的知识与经验,更是领悟到了知识的真正价值。每一次的编码、每一次的调试,都是你们向目标迈进的证明。从最初的一无所知到如今的信心满满,我们跨足了“The End, The Beginning”的分界线,这不是结束,而是新的起点。这段旅程虽然暂时落下帷幕,却正如“日行千里,不止于足下”,是我们追求卓越的开端。愿你们在未来的道路上,继续勇往直前,创造属于自己的辉煌!

本学期教学安排和优秀作业

序号起止时间实践习题覆盖课程目标优秀作业博客
11.14-2.16准备篇--技术路线1帅帅喵 、222000234张程越、 222000332昊笛
22.17-3.3个人热身--文件读取1、2、3222000434杨蕊蘭、 222000132许依红、 222000234张程越、 222000332昊笛
33.4-3.10结对作业第一次--原型设计2、3、5、6222000322许影杰、 222000334郑慧铃、 222000332吴笛 、222000434杨蕊蘭
43.11-3.16团队作业第一次—种子队选拔和团队展示1、7从0到1队、 深藏blue
53.17-3.24结对作业第二次——编码实现2、4、5、6222000434杨蕊蘭、 222000329甘佳欣
63.26-3.31团队作业第二次--需求分析2、5、6、7从0到1队、 机房捍卫者队
74.2-4.7个人作业--软件评测4、5222000228黄雨洁 、Mark Polo
84.9-4.14团队作业第三次—概要设计和数据库设计3、4、5、6、7从0到1队、机房捍卫者队
94.22-4.24团队作业第四次—团队协作编程实战总结2、3、4、5、6机房捍卫者队、 深藏blue
104.22-5.5团队作业第五次—站立式会议+alpha冲刺3、6、7青屿送词队、 从0到1队
115.30-6.16团队作业第六次—Beta冲刺+事后诸葛亮4、6、7机房捍卫者队、青屿送词队
126.17-6.21个人作业—个人总结+项目总结1、4、5052006133熊鹏程、062000224刘泓、222000201鲍仁俊

往届的教学安排和总结:

2022年春软件工程实践课程安排  总结
2021年春软件工程实践课程安排  总结
2020年春软件工程实践课程安排  总结
2019年春软件工程实践课程安排  总结
2018年秋软件工程实践课程安排  总结
2017年秋软件工程实践课程安排  总结

汪老师负责的CSDN软工教学社区

https://bbs.csdn.net/forums/weixin_53785144-01

汪老师的教学博客(博客园)

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

这篇关于(转)日行千里,不止于足下——软件工程实践教学 - 构建之法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/331461

相关文章

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者