清华大学 现代软件工程 结对编程项目 (一)

2024-01-18 14:58

本文主要是介绍清华大学 现代软件工程 结对编程项目 (一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

Pair Project I:  Casual Game ++

Improve an existing casual game with incremental innovation.

Skills to Practice and Learn:

a)      Requirement Collection & Analysis

b)      Estimation

c)      Pair Programming (结对编程)

d)     Collaboration

How to collaborate in explorative situation (new and fuzzy requirement, new language, lots of ambiguity)

e)      Learning a new tool/language and become productive with it

f)       Basic UI design, User Experience design

 

hint:  you need to learn about new concepts/skills/languages from text book,  reference books,  and the almighty web. 

 

In the history of computer game,  there are many well-known casual games (e.g Tetris/俄罗斯方块, 纸牌游戏等) Users might be bored about this game after playing it for so many years.   Your challenge is to improve the game and make it interesting again!  

Your assignment is this:

1)     Pick a relatively simple casual game that people are familiar with.

2)     Ask its users (e.g. yourselves,  your roommates)

a.       Has the game become boring to you? why?

b.      What else do you want in this game? 

c.       How can it become more interesting so that you will play more of it?

d.      What are your wishes/fantasies for such game?

3)     Collect the list of wishes,  study their feasibility,  estimate the cost, and come up with a short list of enhancements for this game,  you can call it “game++”.  

4)     Here are some examples of incremental enhancements:

a)     Turn the game territory (游戏平面) from 2D into 2.xD or 3D.

a.       Turn the 2D game board into a tube, or tire (轮胎形状)

b.      Turn the  board into a globe

c.       Turn the flat board into a cube (but play on the surface of the cube)

d.      Turn the flat board into a cube (but play on the 3D grid inside the cube)

e.       Turn the flat territory into a Mobius Strip.

b)     Combine it with elements from another game

c)      Provide customization,  

d)     Playing over network,

e)     Computer AI as a player.

f)       adding more props (道具) to the game

5)     Use a new technology -  WPF, Flash, HTML5 or SilverLight to implement your game++.

6)     Project requirement

a.       Each pair should work in the “pair programming” (结对编程) style.

b.      All final code and related documents should be checked into TFS,  talk to TFS admin for details about where to check-in your code.

c.       Post the application on the web so that others can play right away,  or can download and play.

d.      Write a blog to summarize your experience in Pair Programming (the pros and cons of such style).   You need to attach a photo to show you’re actually working together in Pair Programming style.   You need to show how different the actual time spent versus the original estimation of a feature;   In the blog,  each member of the pair needs to comment on the strength and weakness of his/her partners.

7)     Criteria of scores:

a.       On-time delivery

b.      User’s feedback of your game,  e.g. users might leave comments on your blog to compliment your creative ideas;  Your roommates might tell other people about your game, etc.

c.       The game logic,  play-ability,  and coherence of new features

d.      The following things are NOT a factor in judging the merit of the project:

      1. Code size
      2. Number of new features (a game++ with 9 new features is not automatically better than a game++ with 2 new features)

 

2 week work time.

Use your imagination!

 

这篇关于清华大学 现代软件工程 结对编程项目 (一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

C# async await 异步编程实现机制详解

《C#asyncawait异步编程实现机制详解》async/await是C#5.0引入的语法糖,它基于**状态机(StateMachine)**模式实现,将异步方法转换为编译器生成的状态机类,本... 目录一、async/await 异步编程实现机制1.1 核心概念1.2 编译器转换过程1.3 关键组件解析

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文