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

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

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

SpringBoot项目是如何启动

启动步骤 概念 运行main方法,初始化SpringApplication 从spring.factories读取listener ApplicationContentInitializer运行run方法读取环境变量,配置信息创建SpringApplication上下文预初始化上下文,将启动类作为配置类进行读取调用 refresh 加载 IOC容器,加载所有的自动配置类,创建容器在这个过程

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念