自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(174)
  • 收藏
  • 关注

原创 现代程序设计 作业9 - 综合练习

经过大半学期的学习和练习, 我们把学到的东西综合起来。 在作业2 (http://www.cnblogs.com/xinz/p/3318230.html ) 中, 同学们用各种方法 (主要是动态规划,外加一些遍历)计算了一维和二维数组中最小最大子数组的和。 当然,程序在飞快地运行的时候,我们可以通过debug 工具中的 单步执行 命令看到中间结果。 中间结果一般有这些数据: 这个数组

2014-04-15 15:53:37 369

原创 现代程序设计 作业7 - 更加简单的题目

在网上,当用户发现一个新东西 (海洋里捞出来的新物种,奇怪颜色的飞鸟,某种新的植物等), 大家会问下面的问题: 能吃么 好吃么 怎么吃 这三个振聋发聩的问题被吃货们简称为能好怎,  大家可以打开链接看看,体会一下。 我们这门课是《现代程序设计》,我们当然会碰到新的程序语言,新的语言特性。 大家也可以问一下  能/好/怎 的问题。 例如 C++ 11 出现了很多新的特

2014-04-15 15:53:35 417

原创 现代程序设计 作业6 - 简单而有意义的题目

这是这个课件的一部分:  现代程序设计 (课程设计中, 征求意见稿) 好多同学们都说题目难,这回我们来一个简单而很有意义的。  :) 写代码爽还是读代码爽? 往一堆乱麻中再加上一些线索,似乎比较容易;然而从这一团乱麻中理出头绪,还是比较难的。下图来自 知乎的一个讨论。   我们练习了这么多作业,所有作业都是从头写程序,但是我们到了真正的项目组或公司里,通常我们会改进一个已经存在项目

2014-04-15 15:53:33 397

原创 现代程序设计 作业5

在前四个作业中, 我们体会了数组,子数组的和,二维数组,字符串和字母的处理, 简单和复杂的 UI 程序等。大家锻炼了命令行的处理,模块的持续重构和演化,单元测试,UI 程序的处理,全局单例的做法,MVC 设计模式等等。同时我们还学习和练习了两次结对编程,学习了如何用代码规范让自己的程序容易理解,便于维护。 有了前面的基础,现在我们来尝试一些更有意思的题目 – 设计 client/server

2014-04-15 15:53:31 290

原创 现代程序设计 作业4

英语国家的小孩们经常玩 Word Search 的游戏, 就是在一个填满字母的矩阵中把单词找出来。  这是一个简单的例子: (来自 wikipedia) 这是一个比较复杂的例子: 这是答案:   美国的商店里还有不少 word search books 卖,  两三块钱一本。 让我们把这个有趣的游戏变成有趣的作业吧:   ­­Homework 4

2014-04-15 15:53:29 304

原创 现代程序设计 作业 3

这个作业是采取结对编程的方式完成。 在上一个作业中,  我们尝试了各种命令行的处理,以及各种数组的处理。  现在, 我们要把 现代程序设计 作业 2 的各个结果转换成图形界面显示。这个问题看起来很难, 实际上大部分难的工作都在上一个作业完成了 (数组计算部分),  现在我们要通过模块化和重构等一些手段,  把我们在前一个作业的工作搬到新的环境中来。   1) 在图形界面  (GUI)上显示

2014-04-15 15:53:26 481

原创 现代程序设计 作业 2

我们上节课讲了 返回整数数组中最大子数组的和 这个问题。 我们第二次作业在这个基础上扩展。 程序要使用的数组放在一个叫 input.txt 的文件中,  文件格式是: 数组的行数, 数组的列数, 每一行的元素,  (用逗号分开) 每一个数字都是有符号32位整数, 见 MSDN 的定义.  当然, 行数和列数都是正整数。 例如下面的文件说明数组是有1行, 6列,

2014-04-15 15:53:24 294

原创 现代程序设计 作业 第1次

第 0 次作业已经在课堂上做了。1) 建立 GitHub 账户, 把课上做的 “最大子数组之和” 程序签入2) 在 cnblogs.com 建立自己的博客。 写博客介绍自己的 GitHub 账户.  并把博客地址写到这个博客的留言。这样TA 可以收集信息3) 搞到一本教科书 (三本中选一本), 并在博客中说明自己选的是哪一本。4) 阅读下面的博客:个人软件开发流程: Per

2014-04-15 15:53:22 221

原创 现代程序设计 学生情况调查

【课程设计在这里】 既然开始上课,就要把目标受众研究一下,搞清楚他们的需求。下面是我在课上做的调查。由助教整理。 (学生都是计算机学院大三上学期, 还有一些高等工程学院的学生)     黄色标注的代表是人数最多的选项        

2014-04-15 15:53:20 321

原创 现代软件工程 团队作业 - 软件分析和用户需求调查 (2013)

【现代软件工程 的讲义】医学院的学生, 要解剖人体; 软件行业的从业人员, 不管是项目经理, 开发或测试人员, 都要学会解剖分析软件, 我们就来试试看。要求: 通过定性, 定量地分析, 总结和评定某软件是否满足了目标用户的需求,并把分析的过程和结果用博客表达出来。详细要求:根据选中的目标软件的类型, 选择一群目标用户 (中国大学生就是很好的一群目标用户)。 学习 现代软件工

2014-04-15 15:53:18 362

原创 现代程序设计 (课程设计中, 征求意见稿)

背景:        目前中国大陆大学里学的编程主要有两种: 1)      学编程为了应付考试,偏重于静态的知识点, 语言细节。以闭卷考试为主。有些学校的数据结构和算法课有许多实际的练习,也有的课程练习很少。 2)      学编程为了ACM 算法比赛,偏重于算法, 解决抽象的问题。主要是由兴趣小组/面向比赛方式。   大部分同学到了工作中都用不着上面两种能力 (忘了语言细节可以查;

2014-04-15 15:53:16 485

原创 现代软件工程讲义 5 团队合作的阶段

[现代软件工程 讲义]团队合作要经历的阶段 1  萌芽阶段萌芽(Forming)阶段,就像小苗破土而出,柔弱但充满希望。在这个时候,团队成员刚刚接触到团队的宗旨,同时很可能刚刚互相认识。在学校的环境中,一些同学只是匆忙地加入一个团队,加入团队的原因并不是因为他们对团队的目标很认同, 而是多种多样的 (这个团队有大牛,我可以少做一些; 别的团队人满了,就剩这个了; 平时在一起混的

2014-04-15 15:53:13 325

原创 软件工程讲义 0 微博上的软件工程

[现代软件工程讲义]有舌尖上的美味, 也有微博上的软工。舌尖上的美味各有千秋, 而微博上对软工的抱怨都是相似的。  下面是我在新浪微博收集到大学生对软件工程教学的反馈: 师生关系(不限于软件工程)教材上课 & 老师 实践 & 作业 考试 考完了

2014-04-15 15:53:11 291

原创 现代软件工程讲义 6 用户调研

[现代软件工程讲义 的一部分]软件开发的过程, 就是 “用户最需要的东西” 在下面这一链条中传送,转换,实现,扭曲或丢失的过程。用户最需要的 >      用户表达出来的 >        软件团队能理解的 (老板/PM) + 团队的商业目标 >            软件团队成员具体表达出来的 (PM 写 spec) >                在各种约束条件下,

2014-04-15 15:53:09 285

原创 现代软件工程讲义 8 软件的血型

[这是 现代软件工程讲义 的一篇]一个软件团队经历了计划/设计/开发等阶段, 达成代码完成 (Code Complete) 这一目标,似乎后面的事情就水到渠成了.  其实不然, 软件生命周期的最后阶段往往是最考验团队的,不但考验团队项目管理水平,应变能力,也考验团队的血型。 原计划的软件发布时间快到了,但是软件还是有这样那样的bug,怎么办?优秀的软件团队会发布有已知缺陷的软件么?

2014-04-15 15:53:07 312

原创 现代软件工程 2012 北航 项目复审模板

这是现代软件工程课在北航的项目复审要求。 这次我们有下列 10 个团队, 他们做了一些有意思的项目: 有七个小组合作,携手打造一个叫 学霸 的网站: 100Years      网页收集和归类工具76er               网页收集和归类工具FightingSnail  网页元数据抽取和整理工具TeamSH*T       网页元数据抽取和整理工具Doom

2014-04-15 15:53:04 272

原创 北航 2012 秋季 软件工程课 M2 要求

祝贺同学们完成了第一个里程碑 M1. 经过报告/评论/Postmortem, 大家对各自项目在M1 的优缺点都应该有很深的了解, 也理解到做一个好的软件和实现一个算法的差别。请把这些对于软件工程的感悟体现在M2 的具体工作结果中。 关于转会 -  软件工程师换工作是常有的事,优秀的软件工程师都会留下足够的文档,  到哪里都能高效工作,  我相信经历了转会的工程师会以更高的热情投入到新的工作中。

2014-04-15 15:53:02 285

原创 现代软件工程讲义 7 设计阶段 Spec

在前一个博客里 (典型用户), 我们讲了怎么收集, 分析和验证用户的需求。 这里我们讲 spec – specification Specification, 又叫spec, 有两种:     a) functional spec, 软件功能说明书, 主要用来说明软件的外部功能, 和用户的交互情况 (把软件当作一个黑盒子)     b) technical spec, 软件技术说明书, 又叫

2014-04-15 15:53:00 278

原创 北航 2012 秋季 《现代软件工程》 博客列表

如果你写了代码, 但是从来没有实际运行过, 那你究竟写了代码么, 还是在软件工程课上做的梦? 如果你写了文档, 但是从来没人读过, 那你究竟写了文档么? 在我们的课程中,  我们通过实际的项目和公开的博客向世界证明同学们真的写了代码和文档。 团队博客 (5-7人的团队要花10周时间, 分两个阶段, 运用敏捷开发等软件工程的方法论和工具, 完成一个实际的项目) 7 个团队合作完成一个代号为

2014-04-15 15:52:58 314

原创 现代软件工程 学生阅读和调查作业

大学生都是读书人,  要多读书,多向前人学习, 多思考。下面的读书和调查作业必须在截止日期前发表在个人博客上 (也可以转发到团队博客)。同学们的博客都在这里: http://www.cnblogs.com/xinz/archive/2012/11/05/2754729.html 博客1:   阅读下列博客/文章/教材, 全部读完之后, 写一篇博客。列举你对这些材料中观点的疑问(指出不懂的地

2014-04-15 15:52:55 300

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

同学们的小组要在下次课上 (10/15) 决定做哪一个项目 (按次序挑选),  确定之后写团队博客描述他们要做的究竟是什么系统 (不懂的地方可以在博客上提问)。  这次课程有10 个学生团队,  我们有 10 个备选项目.  各个团队玩了一次黄金点游戏, 决定了挑选的次序。  第一组项目 :   Building Online Education Q&A

2014-04-15 15:52:53 275

原创 北航 2012 秋季 现代软件工程 两人结对 作业要求

Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]  Design and implement an Elevator Scheduler to aim for both correctness and performance, in managed code.  Skills to learn and practice: a)   

2014-04-15 15:52:51 299

原创 现代软件工程讲义4 Scrum/Sprint

Advanced Software Engineering, Development Process, Scrum/Sprint 软件开发的流程有很多 (看 各种方法论概述), 我也写过一篇博客 (酒后的敏捷) 谈了谈最近比较时髦的开发流程。 今天我们不喝酒, 正襟危坐地说说敏捷这一路 Scrum/Sprint 开发方法. 从理论上看, 这个方法真是妙得紧: [图片来源: ht

2014-04-15 15:52:49 242

原创 笔记 - 高等教育的创新

教育是一个社会发展的支柱, 你和我能看到并理解这个博客, 教育功不可没。 高等教育的形式并不是一成不变的, 高等教育一直在演进, 变革中, 最近一股“online higher education” 的浪潮在美国兴起, 貌似突兀, 其实有规律可循。  在关注最近的在线教育浪潮之前, 我们看看美国高等教育在过去两个世纪经历了哪些变革。 很早很早以前, 四大文明古国都有各具特色的教育家, 教育

2014-04-15 15:52:47 356

原创 2012 夏季高校微软俱乐部活动 - 开门创新

创新啊创新, 大家都在讲创新。   一般的理解, 创新就是公司内部关起门来想, 实验, 内部评审,  然后申请专利什么的, 其实也有开门创新的办法: http://www.innovationexcellence.com/blog/2012/08/13/40-examples-of-open-innovation-crowdsourcing/ it is about bring

2014-04-15 15:52:44 202

原创 计算机考研的调查和改进建议

几星期前, 我在微博上讨论考研的事, 有专家建议不如把意见整理出来, 说不定可以转告给相关方面。 我没有考过研, 问了公司的同事们, 绝大多数都是保研的, 也没考过。  我从网上下了一份模拟题, 好像还挺难,有一种要翻书的冲动。    全国有多少学生为了考研而奋斗?  据说考计算机专业的研究生每年有七千到一万左右。 我以前接触到清华软件学院的一个研究生, 他为了考研, 在北京漂了两年时间,

2014-04-15 15:52:42 266

原创 程序设计作业: 车模+数模 = ?

我上学的时候只听说过 “航模”, 没听说过“数学建模”这门学问. 这几年在简历里看到过不少人号称数模得过什么奖之类的, 我都没好意思问太仔细。 在帝都开车经常遇到堵车, 我于是想到了一个车模的问题。   我想请大家帮着给这个车模搞个数模, 求个解法:   想象帝都北四环或北五环,  高速公路单向4车道 (无应急车道), 满负荷地跑汽车, 都是时速60公里。驾驶员都以正常心态开车。  这时最外车道

2014-04-15 15:52:40 275

原创 现代软件工程讲义 9 测试 QA 的角色和分工

测试的角色 (Test) 要独立出来么 ? 独立出来的测试角色怎么才能发挥作用? 有些成功人士和成功的公司号称没必要有独立的测试角色 (Test), 你怎么看?     最近又看到一些关于开发人员要不要负责测试的讨论。 例如:    http://www.aqee.net/on-testers-and-testing/ 大多数的开发团队并不需要一个独立的测试角色。即使有一个,他的所有的开发时间

2014-04-15 15:52:38 314

原创 以实际产品为例, 进行软件工程训练的作业

每个小组 (结对) 从下列产品中选一个, 按照下面的说明写软件测试报告, 分析并提出建议, 写一篇博客 (包括四部分)即可。     产品1. 必应词典客户端  (http://dict.bing.msn.cn/)     产品2. 必应缤纷桌面 (http://desktop.bing.msn.cn/)     产品3. 微软学术搜索 (http://academic.research.m

2014-04-15 15:52:35 260

原创 微软学术搜索项目 10个版本的历程

这是我在微软亚洲研究院参与的项目之一, 从 2009 年秋天开始, 我们小组把它从一个研究原型发展为涵盖全学科的学术搜索门户。 它索引了 4千万论文, 2千万作者, 6 大实体类型, 8 种数据可视化功能, 具有开放的API 平台和手机客户端.   下面说说项目的发展: 2009/8:  内部发布 alpha 版本,  以验证想法为目的的 V1 结束, 数据量: 3 million   200

2014-04-15 15:52:33 697

原创 现代软件工程 教课心得

现实世界是最好的老师, 我们这些叫 “老师” 的人, 充其量是个助教。 但是有些助教却不让学生见到老师。****************老师都想把课教好, 学生都想把课学好. 但是我们常常看到一个学期过后, 老师, 学生都有很多抱怨 (例如:  各种良好愿望和计划在实施中的问题).  看了上面的例子, 我脑海中浮现这样的图画:游泳教练认为经过各项基本训练,  学员在第三年的时候, 应该

2014-04-15 15:52:31 278

原创 现代软件工程 习而学的软件工程教育

茅于轼先生写了一篇博客 ( http://blog.sina.com.cn/s/blog_49a3971d0102dufj.html ) 纪念茅以升先生提出的 习而学的工程教育:把颠倒了的工程教育顺序恢复过来,即他称之谓“习而学的工程教育”。以桥梁建筑专业为例,大学一年级先学施工条例,二年级则学设计规范。这些学习内容不必解释条例和规范的理论基础,只说明其内在的联系。到三年级可以

2014-04-15 15:52:29 815

原创 软件工程讲义 9 创新的出路 走进作坊

我第一次注意到 “作坊”这个词和软件行业联系起来大概是这个 2004 年 11 月的报道:标题: 信产部副部长娄勤俭:中国软件业还在手工作坊阶段日前,信息产业部副部长娄勤俭在出席中国软件产业生态链高层论坛时表示,中国软件产业的规模还比较小,软件企业的实力较弱,很多企业还处于手工式的开发生产阶段,缺乏核心技术,长期处于产业链的低端,发展方向受制于人,出口能力较差,为此今后信产部将从四大方

2014-04-15 15:52:26 713

原创 现代软件工程 来自卓越大学教师的建议 (读书笔记)

教师教学有培训和参考书么? 我从来没想到过我会在大学里教书, 而且还教了好几年, 四个学校。 当时接到任务的时候, 我把它当作实习生培训和新员工培训的”学院版”, 还是继续强调实践, 反馈, 合作, 就这么开讲了。   在微软公司, 做大部分和人相关的事情, 都得先有一个培训, 只有参加了培训, 才能面试别人, 才能带实习生, 等等。 我不知道一个新老师到了大学是否要参加教师培训或者要求选修心

2014-04-15 15:52:24 556

原创 对大学 IT 专业教育的反馈

[这是2009 年 写的文章, 一部分收集到 这本书里了。 这两天看到软件学院同学对教学的反馈,  看来好些问题都没有得到解决。 教育部门时不时会开教学研讨会, 去世界有名的大学, 公司参观, 他们还要参观多少年?  他们会请已经毕业的学生来提意见么? 学生要年复一年地等它变好? ]   [原帖: http://yishan.cc/blogs/xin/archive/2009/08/19/it.

2014-04-15 15:52:22 418

原创 现代软件工程讲义 9 测试 关于闰年的测试

我们谈了不少测试的名词, 规范和原则 (link1, link2). 软件是人写的, 测试计划和测试用例也是人写的, 人总会犯错误。错误发生之后, 总有人问: 为什么这个bug 没有测出来啊?!   我们看看一类简单的bug是如何发生的,以及如何预防它们再度发生: 闰年软件少不了和日期打交道, 日历系统算是人类的一个 legacy system, 这个系统在逐步进化的过程中, 打了好多补丁

2014-04-15 15:52:20 309

原创 现代软件工程讲义 目录

软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较空洞乏味的课程 (不信就请看 微博上的软工)。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。 经过几年的探索, 我总结了在16周的时间内让同学们通过 “做中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划。这几年教书的过程中, 我学习了一些 好老师的建议,  还有些教课的心得, 也对中国大学的 I

2014-04-15 15:52:18 264

原创 现代软件工程 作业 4 个人作业

这是现代软件工程课的作业 个人作业 Individual Homework: 个人完成的作业 (读书报告等), 着不同于 “个人项目 Individual Project”. Individual Homework #1 a good question is 50% of a good solution, now let’s share your questions about the tex

2014-04-15 15:52:16 272

原创 现代软件工程 作业 3 团队作业

这是现代软件工程课的作业列表, 老师可以根据情况选用, 建议要保证每周都有作业。 团队作业 Team Homework: 适合团队完成的作业 这些作业都要团队的成员互相配合才能完成,  团队可以选出一位同学完成作业的具体写作和发博客部分, 大家可以轮流完成。 一个团队通常由 5-7名队员组成, 因此即使每周都有作业, 也只是团队中一个人要做文字工作, 因此负担不算重。 Team Homewo

2014-04-15 15:52:13 234

原创 现代软件工程 作业 2 结对项目

这是现代软件工程课的作业 结对项目 Pair Project: 一对同学用结对编程的方法完成 结对编程课件: 现代软件工程讲义 3 结对编程和两人合作 软件工程讲义 3 两人合作(2) 要会做汉堡包   Pair Project http://academic.research.microsoft.com/academicmap tasks for each pair: learn th

2014-04-15 15:52:11 309

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除