云计算与软件工程——第一部分

随堂模式

  • 什么是随堂模式?

    随堂模式课程一般为每学期一轮次,课程每周更新,作业、考试有截止时间,由课程提供方老师、助教指导,课程完结,成绩由老师确认后,统一发放证书。

  • 什么是自主模式?

    自主模式课程常年开放加入,课件全部开放,作业、考试无截止时间,有学堂在线招募选拔的助教指导,考核通过即可自动获得证书。

来自于: 加州大学伯克利分校 | 分类: 计算机(426)

课程描述

CS169.1x讲授设计可持久化软件的基础知识,利用敏捷开发技术以及 Ruby on Rails 来开发云服务 (SaaS)。

什么是认证证书?
免费学习
认证学习
名师签名
实名认证
权威性
纸质证书
付费购买
免费赠送

课程简介

CS169.1x讲授设计可持久化软件的基础知识,利用敏捷开发技术以及 Ruby on Rails 来开发云服务 (SaaS)。 学生们将了解 SaaS 对抗成品软件的新挑战和机遇。他们将了解并将基础编程技术应用于一个简单的 SaaS 应用的设计、开发、测试及公共云部署。学生们将使用同类最佳的工具,支持行为驱动设计、用户故事、测试驱动开发、快速及结对编程等现代开发技术。学生们将学习如何利用元程序设计和反射机制等现代编程语言特性提高编程效率和代码可维护性。 学生们将进行每周编程项目和测验。成功完成作业且分数合格者将获得荣誉证书。 本期课程将使用2013年10月修改后的全新视频、两项新课外作业和全新考题。 学堂在线对此门课程进行了完全的汉化,包括中文字幕、中文习题等。同时清华的合作教师及助教团队将全程进行中文答疑和辅导。

展开

课程章节

课程概览
课程介绍
软件工程概论
1.1: 软件工程概论 (5:59)
1.2: SAAS,软件即服务 (6:39)
1.3: 面向服务的架构(SOA) (7:48)
1.4: 云计算 (9:32)
1.5: 漂亮的代码与遗留代码 (2:55)
1.6: 软件质量保证 (5:18)
1.7: 生产力:简练、合成、代码重用和工具(8:45)
计划和文档开发与敏捷开发,Ruby入门
1.8; 10.7: 软件开发过程: 计划 & 文档 (12:16)
1.9: 软件开发过程: 敏捷开发(10:33)
1.12/13:谬论和陷阱以及第一章总结 (3:04)
10.1: 团队规模 & Scrum (9:42)
10.2: 结对编程 (5:47)
3.1: 概述 & Ruby的三大支柱 (16:41)
3.2/3: 一切都是对象,每一个操作都是方法调用 (10:28)
3.4: Ruby面向对象 (10:28)
作业0: Ruby入门
小测 0
Ruby 进阶
3.5: 所有的编程都是元编程 (10:38)
3.6: 块:迭代器、函数式习语以及闭包 (10:23)
3.7: mix-in和鸭子类型 (10:31)
3.8: 用Yield构造自己的迭代器 (10:49)
BDD及TDD介绍
8.1: BDD, TDD概览
8.2: FIRST、TDD、以及RSpec入门 (9:25)
作业1:Ruby进阶
SaaS应用的架构和REST
2.1; 2.2: 客户端-服务器架构; TCP/IP 的介绍 (13:25)
2.3: HTML及CSS (9:33)
2.4: 3层体系结构和横向扩展 (11:53)
2.5: 模型——视图——控制器架构 (8:06)
2.6: 模型,数据库及活动记录 (9:17)
2.7: 路由、控制器与REST (10:38)
2.8: 模板视图与Haml (12:09)
2.9: 2.10: 总结与思考:SAAS体系结构 (14:41)
作业1.5: The Oracle of Bacon
测验1
Rails入门
使用公共资源
4.1: Rails基础 :从ZERO到CRUD (13:54)
4.5: 调试:当出现错误时 (9:33)
4.3: 模型 :Active Record基础 (12:10)
4.2: 数据库和迁移 (12:59)
4.3: 模型 : 查找、更新和删除 (15:19)
4.4: 控制器和视图 (10:09)
4.6: 表单 (9:33)
4.7: 重定向、 Flash和Session (11:40)
4.8: 完成CRUD:编辑、更新和销毁 (8:27)
4.11: 谬论和陷阱 (5:59)
作业2:Rails入门
敏捷开发的方法
9.5: 度量、代码味道及SOFA (13:03)
7.1: 行为驱动设计与用户故事简介 (7:33)
7.3: 任务点、速率和Pivotal Tracker (9:07)
7.2: SMART用户故事 (5:35)
7.7: 低精度用户界面模型和故事板 (5:14)
7.4: 敏捷开发的成本估计 (4:48)
7.10: 计划文档的视角 (18:37)
7.10/12: 谬论和陷阱 , BDD的利与弊 (7:13)
7.9: 显式的和隐式的、命令式的和声明式的情景 (7:19)
利用Cucumber及Capybara进行BDD
使用公共资源
7.5: Cucumber和Capybara介绍 (6:33)
7.6: 运行Cucumber和Capybara (6:49)
7.8: 优化Rotten Potatoes (12:52)
作业3:BDD和Cucumber
测验2
使用RSpec进行TDD
8.2: 基于Rails的Rspec (7:31)
8.3: TDD周期:红色——绿色——重构 (10:51)
8.3: 嫁接(Seams) (11:36)
8.4: 预期 (14:04)
8.4 Mocks, Stubs, 以及测试设置 (14:19)
8.5: 夹具和工厂 (10:59)
8.6/7: 面向模型的TDD以及为Internet建立桩(Stub) (12:00)
8.8: 覆盖率、单元测试与集成测试 (10:23)
8.9/12: 其它测试方法和术语 (8:27)
8:10: 计划文档的视角 (9:29)
作业4:BDD和TDD周期
测验3
Development
Test Submission HW0
Test Submission HW1
Test Submission HW1.5
Test Submission HW2
Test Submission HW3
Test Submission HW4
Test Submission
补充视频
Git基础与虚拟机安装
SaaS体系结构
Rails入门
BDD入门

授课教师

  • Armando Fox 加州大学伯克利分校 计算机科学 教授

    Armando Fox是加州大学伯克利分校计算机科学教授,曾在斯坦福大学担任助理教授,并获得斯坦福大学学生会、女工程师学会、美国国家工程荣誉协会颁发的多项教学与辅导奖。他曾协助设计英特尔 Pentium Pro 微处理器,并创建了一家创业公司,将其在加州大学伯克利分校的移动计算相关论文研究进行了成功的商业化。他的电机工程与计算机科学学位来自麻省理工学院、伊利诺伊大学和加州大学伯克利分校,他还是美国计算机协会杰出会员。

  • David Patterson

    David Patterson 是加州大学伯克利分校计算机科学Pardee教授,曾获得加州大学伯克利分校杰出教学奖、美国计算机学会卡尔斯顿杰出教育家奖、美国电气与电子工程师协会穆里根教育奖章、美国电气与电子工程师协会本科教学奖。他曾担任伯克利计算机科学部主席、美国计算机研究协会主席、美国计算机协会会长。他最著名的研究项目是精简指令集计算机 (RISC)、独立磁盘冗余阵列 (RAID),以及工作站网络 (NOW)。此外,他还是美国国家工程学院、美国国家科学院院士,入选硅谷工程名人堂、计算机历史博物馆研究员。他的所有学位来自加州大学洛杉矶分校。

  • Sam Joseph

    Sam Joseph 是夏威夷太平洋大学副教授,曾担任夏威夷大学马诺阿分校 (UHM) 副研究员。他曾获得 Raymond-Hide 天体物理学将和东芝奖学金。他通过英国伦敦在线来教授游戏与移动编程与设计、软件工程、科学研究方法。为研究创造幽默的聊天机器人,他组织了 Funniest Computer Ever 竞赛,相关的研究方向还有在线协作学习软件,尤其是远程结对编程。他的天体物理学、认知科学和计算机科学学位来自英国莱斯特大学、英国爱丁堡大学和夏威夷大学马诺阿分校,他是美国计算机协会会员。

  • 徐葳

    徐葳博士是清华大学交叉信息研究院tenure track助理教授,中组部“青年千人计划”入选者。他2010年博士毕业于UC Berkeley,是David Patterson 和Armando Fox教授联合指导的博士生。他在UC Berkeley获得硕士学位,宾夕法尼亚大学(UPenn)获得学士学位,本科阶段在清华大学计算机系学习两年。徐葳博士的研究方向是超大规模分布式(云计算)系统的设计、管理和调试,以及大数据处理(Big Data)。他曾在计算机操作系统、机器学习、数据挖掘等领域的顶尖会议如SOSP,ICDM,ICML等发表论文10余篇。徐葳博士有丰富的互联网软件工程经验。他在博士研究期间协助开发了网易有道图片搜索服务。博士毕业后在Google全职工作,负责Google系统基础架构的研发。2013年2月起加入交叉信息研究院。

  • 殷和政

    15岁考入清华大学计算机科学实验班(姚班),拥有丰富的软件工程经验, 曾率领团队开发金蜜蜂CSR报告平台以及学堂在线问答平台,并在2013年秋季清华开设的云计算与软件工程课程中取得第一名的优异成绩。

精华笔记

精华笔记正在评选中,去看看全部笔记

常见问题

这门课是什么形式的?

本课程将包含讲座视频,视频分为各个小段,一般每段8-12 分钟。其中可能包含综合的“自测”题目。除视频讲座外,还会有编程作业和单项考试/测验。

如何了解本课程内容的更多信息?

请观看本页面上我们为本课程专门录制的视频。

本课程讲座的文本是否可以使用?

是的,所有课程视频的字幕(中英文)都是可以使用的。

我需要观看直播讲座吗?

不需要。你可以在闲暇时观看讲座

在本课程中,我们将使用哪个版本的 Ruby 和 Rails?

我们将至少提前两周提供一个包含全部所需课件的虚拟机镜像。你可以现在这个镜像并在任何 Intel X86 计算机上用免费的VirtualBox (virtualbox.org) 软件来运行,也可以按照我们将提供的说明在亚马逊弹性计算云上部署它。一般,我们将使用 Rails 3.2 和 Ruby 1.9.3,但我们也会使用许多其他预安装的工具、gem和库。