实验二 结对编程 第一阶段

一、实验目标:

1)体验敏捷开发中的两人合作。

2)进一步提高个人编程技巧与实践。

二 、实验内容

1)根据以下问题描述,练习结对编程(pair programming)实践;

2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。

3)要求在结对编程工作期间,两人的角色至少切换 4 次;

4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。

三、实验过程

1)查阅相关资料加深对敏捷开发和结对编程的理解:

  敏捷开发:敏捷开发是一种从1990年代开始逐渐引起广泛关注的新型软件开发方法,是一种能应对快速变化需求的软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。

  结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理。这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面。观察员当作安全网和指南。结对编程对开发程序有很多好处。比如增加纪律性,写出更好的代码等。

  自己的理解:结对编程很重要的就是团队精神,每一个人的编程能力很重要,同样配合他人进行编程,及时发现并纠正他人编程过程中存在的错误也很重要。在编程时,每个人有自己的编程思路,可讨论出优于单独一个人的算法思路,能提高编程效率。结对编程也可以提高每个人的编程能力,在自己编写代码时会更加细心,思路会更加清晰,发现自己存在的错误;在监督别人写代码时,可以学习参考别人优秀的编写思路,发现别人的编程错误,提高自己的能力。

2)组队情况,各队博客地址,github仓库地址,所选择的课题:


队伍名称


队员


博客地址


GitHub仓库地址


选择课题


XYZ


王慧


https://www.cnblogs.com/1234wh/


https://github.com/yqw0710/wyzproject


生命游戏


叶啟文


https://www.cnblogs.com/yqw0710/

3)资料查阅与课题理解

1、共同理解

(1).生命算法原理
         a.生命细胞只有两种状态:“生”或“死”。
            b.开始时,随机设定为生或死。0表示死、1表示生。
            c.细胞下一状态由该周围8个细胞的上一生命状态决定。
               周围有三个活细胞,则为生。(状态赋值为1)
            周围有两个活细胞,则保持。(状态不变)
            其他情况,则为死。(状态赋值为0)
       (2).如何搭建界面
       用Python可视化创建一个地图,用白色显示活细胞,用黑色显示死细胞。

2、需要实现的功能

函数有:
       a、初始化地图:开始游戏时,对地图上的细胞随机赋值为0或1。
       b、绘制地图:绘制一个N*M大小的地图。
       c、细胞下一状态计算:计算周围活细胞的个数,更新该细胞的生命状态。
       d、主函数:运行生命游戏。

4)开发平台和技术工具

我们对:C、Java、Python三种进行了讨论,最终选择了Python语言。
 因为:
   1.由于参考用C语言写的生命游戏算法后,我们发现虽然C语言实现比较简单,但是对于整个地图每一个状态都需要重新回到原点开始打印,而Python使用animation模块,可以达到动态图的效果,这样效率更高,界面动态更为流畅。
   2.由于我们组成员对Python和Java的编程能力都不是很熟练,在对二者基础知识进行复习后,我们一致认为Python更好理解,上手更快。
 所以总结以上,我们最终选择了用Python语言,开发技术工具选择了pycharm。

5)如何结对与切换角色

a.我们用GitHub托管我们的代码,利用QQ屏幕分享功能进行结对编程。
   b.一个人写代码另一个人监督,然后将写好的代码放置在GitHub上托管。
   c.下一次两人互换角色,修改完善代码。
   d.多次进行角色互换,直至成功实现代码功能。

6)讨论与收获

之前我们都是自己独自完成编程任务,第一次尝试结对编程,和队友共同讨论代码如何实现,我发现了很多结对编程的优点:

1.能增加我们的信心。相比于一个人编程,团队的存在会无形增加我们的自信心。让我们不再害怕不能完成编程,我们都相信共同努力一定会完成编程。

2.思路更加清晰,想法会更全面。每个人对题目有自己不同的思路,两个人一起讨论,双方提供不同的想法,然后总结出较为全面清晰的实现方法。

3.能提高编程能力,激发我们的潜能。在别人的监督下,我们会更加细心严谨,努力减少自己的错误,在别人的帮助下,发现自己未注意到的错误,提高我们的编程能力。

四、参考文献:

1.python实现生命游戏:https://blog.csdn.net/zjhysj/article/details/80542565

2.Matplotli绘图库的基础知识:https://www.runoob.com/numpy/numpy-matplotlib.html

3.Python Matplotlib简易教程: https://blog.csdn.net/Notzuonotdied/article/details/77876080

4.Matplotlib 画动态图: animation模块的使用:https://blog.csdn.net/u013180339/article/details/77002254

5.Python 字典(Dictionary):https://www.runoob.com/python/att-dictionary-values.html

五、讨论过程记录:

GitHub仓库界面:

第一次讨论记录:

         

第二次讨论记录:

原文地址:https://www.cnblogs.com/yqw0710/p/12542668.html

时间: 2024-10-07 21:21:09

实验二 结对编程 第一阶段的相关文章

实验二 结对编程第一阶段

结对编程:第一阶段 ***一.实验目标:*** 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. ***二 .实验内容:*** 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. ***三.第一阶段:*** ***1) 组队:*** 我的

实验二结对编程 第一阶段

一.实验目标: 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容: 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. 三 .问题描述: 我选择的问题是四则运算,具体要求如下: 开发一个自动生成小学四则运算题目的命令行 “

实验二 结对编程(阶段一)

实验记录—第一阶段 自我学习Github的相关知识的记录: https:////www.cnblogs.com/Incoming22/p/12419553.html 一.查阅资料    ?? 查阅相关资料加深对敏捷开发的和结对编程的理解: 1.敏捷开发 (1)概念: 敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视.可集成和可运行使用的特征.换言之,就是把一个大项目分为多个相互联系,但也

实验二—结对编程第一环节

结对编程(英语:Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作.一个人输入代码,而另一个人审查他输入的每一行代码.输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员).两个程序员经常互换角色. 在结对编程中,观察员同时考虑工作的战略性方向,提出改进的意见,或将来可能出现的问题以便处理.这样使得驾驶者可以集中全部注意力在完成当前任务的“战术”方面.观察员当作安全网和指南.结对编程对开发程序有很多好处.比如增加纪律性,写出更好的代码等. 一.实验目

实验二 结对编程(阶段二)

一.实验目标: 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容: 1. 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)两个学生组合,每人使用一台计算机,二人共同编码,完成实验要求. 3)针对课题查阅相关资料,加深对课题的理解: 4)在结对编程工作期间,两人的角色至少切换 4 次: 5)实验过程中合作编程两人互相探讨后采用开发平台和技术,语言工具,准备实验开展工作: 6)做好试验记录和分析工作. 2.问题描述 四则运算 开发一

实验二 结对编程 第二阶段

结对编程(阶段二) 一.实验目标1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. 博客内容应该包括:1.代码规范 在编写代码时我们一般遵循代码规范的七大原则——空行.空格.

实验二:结对编程 第一阶段

一.实验目标: 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容: 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. 三.问题描述 四则运算:开发一个自动生成小学四则运算题目的命令行 “软件”.实现 输入你要出题的个数,

结对编程 第一阶段

1)查阅相关资料加深对敏捷开发和结对编程的理解: 敏捷开发:敏捷开发采用增量和迭代的开发过程,强调团队紧密发协作,能够有效应对快速变化需求,快速交付高质量的软件,是一种新型软件开发方法,相对于理论,更基于实践.敏捷开发更注重适应而非预测,因为需求是不可预测的,所以软件开发应该是一个自适应的跟踪过程,在敏捷开发的过程中,把整个开发过程划分为若干个更小的迭代,每一个迭代周期称为一个冲刺,是一个小的瀑布模型,包括需求分析.设计.实现和测试等活动,结束时都要生成一个稳定和被验证过的软件版本.比于传统的由

实验二 结对编程 (第二阶段)

一.实验目标 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. 三.代码规范 1.变量名不可以是关键字,尽量做到见名知意.2.宏定义里变量名全大写.3.函数名采用小驼峰式