北航 2012 秋季 现代软件工程 团队项目要求

同学们的小组要在下次课上 (10/15) 决定做哪一个项目 (按次序挑选),  确定之后写团队博客描述他们要做的究竟是什么系统 (不懂的地方可以在博客上提问) 

这次课程有10 个学生团队,  我们有 10 个备选项目.

 

各个团队玩了一次黄金点游戏, 决定了挑选的次序。

 

第一组项目 : 

 

Building Online Education Q&A ecosystem   

创建网上教学问答系统

在网上有许多关于某门学科 (例如计算机科学) 的许多知识和问答,   这些问答散落在网上课件, 维基百科, 论坛, 校园BBS, 技术文档, 教学视频… 中。许多网上大学也有很多相关内容.     一个新手 (例如大学生) 往往要花许多时间搜索这些问题的答案。事实上, 无数的师兄师姐们已经问过,  答过这样的问题了。 这个系统的目的是要把高质量的内容都聚合起来 (在遵守相关知识产权规定的前提下),  让用户能系统地浏览, 搜索, 编辑, 评论; 同时也支持用户继续通过提问/回答完善这些内容。

 

(for this semester, we can limit our scope  to Computer Science,  Software Engineering)

(在这一学年,  专注于计算机科学, 软件工程方面)

 

所有团队时间:

    Alpha Release: 4 weeks (1 week plan/design, 2 week implementation (sprint), 1 week stabilization & Release).

    10/26: 所有的任务都创建在 TFS  中, 并应用各种估计方法  (1) (2), 去估计各个任务的时间。 把各个任务交给个人。每个任务必须由估计的时间,并且时间不能多于 8 小时。 把所有TFS 的任务更新之后, 截屏, 统计你们项目到底需要多少时间做完。

    在两周的implementation 阶段, 每个人每天应完成的工作量为 2 小时。只有区区两小时哦, 亲!  

 

  写成一个博客。    (各个团队的PM 负责此事) 

    10/26: 必须写出第一个 scrum meeting 报告.  (例子)

    

 

    Review/Learn/Re-organization: 1 week  (复审, 对比实践学习软工知识, 团队重组)

 

    Beta Release:  4 weeks (same as Alpha)

 

1.       Crawler   & classification module   (2 teams)   (两个团队可以做这个部分,  最后比较谁做得好)

        从网上搜索相关内容, 并归类。

a.       can crawl related content,

b.      Can classify web data, 

c.       Can crawl/re-crawl based on hints

d.      Have UI to show progress

例如: 告诉 crawler 这个网址 (http://www-inst.eecs.berkeley.edu/classes-eecs.html#cs), 同学们写的工具能够抓取和这个网页相联的所有重要网页 (通过一级或 n 级链接)。全世界前2000 名的大学计算机/计算机工程/电子工程系都可以这样处理。

并且能通过classifier (分类器) 给抓到的网页分类, 并支持手工分类。

 

其它类似工作举例说明:

从这里获取许多相关网页: http://en.wikipedia.org/wiki/Computer_science

从这里获取许多计算机的关键字 (keyword)和它们的解释: http://academic.research.microsoft.com/RankList?entitytype=8&topDomainID=2&subDomainID=0&last=0&start=1&end=100 

从问答网站中 (stackoverflow)找到提问/回答的页面 。。。

 

 

2.       Content schema definition &  Content Pipeline    (2 team) 

        定义这个网站需要的内容结构, 并从爬到的内容中抽取元数据 (meta data),  并支持标签, 翻译等功能。

 

a.       Define a schema of "online education Q&A",  find out entities and their relationships.

b.      Input new content into pipeline, then merge it into existing content, under schema

c.       Have a UI system to track the progress and report data

d.      Support tagging

e.      Support translation

从第一步收集到的网页中, 抽取关键词, 作中英翻译等, 把数据和元数据存入数据库中 (暂定用SQL 数据库存储)

 

3.       Online System    (3 teams)

        在线系统,  有三个团队合作完成下列功能。

a.       User management system

b.      Management of UGC (user generated content)

c.       Upload/Download content

d.      UI presentation of rich content we gather from step 1 and 2. 

e.      search of this site

f.        User contribution module,  handles user correction;  user ranking;  user tagging

g.       user credit module (用户积分)

h.      Anti-spam and anti-abuse module

i.         Web security and scalability

把第二步整理好的内容展现出来,同时实现其它功能。

 

第二组 - 其它项目:

      (2 teams)  两个团队在老师指导下做客户端软件 ( 例如:  学术搜索助手,  学生英语单词助手,学生时间管理助手 ), 这些项目已经有团队做过类似的工作 (可以拿到源代码),  要求学生在前人的基础上开发新的功能,修改原来功能的bug 等等。

     博客: 在 10/26 日前写出你的项目的NABC并明确写出在哪里发布软件, 发布后一周的用户量 (精确到千)

 

      (1 team)  自由选题。 这个团队可以自己选择真实软件项目, 必须在规定时间内公开发布并达到事先计划的一系列指标  (用户数目, 用户评价等)。  

      博客: 在 10/26 日前写出你的项目的NABC. 并明确写出发布后一周的用户量 (精确到千)

 

 

这些项目对大部分同学来说比较陌生, 为了帮助大家克服技术困难, 北航决定每个团队可以购买两本相关技术书籍, 团队成绩在前 8 名 的团队可以报销书费。 

 

posted @ 2012-10-11 13:57 SoftwareTeacher 阅读(...) 评论(...) 编辑 收藏