Design of Computer Programs

 所在平台: Udacity 课程类别: 计算机科学 大学或机构: Udacity Self

Explore 1600+ online courses from top universities. Join Coursera today to learn data science, programming, business strategy, and more.

课程详情

Move along the path towards becoming an expert programmer! In this class you will practice going from a problem description to a solution, using a series of assignments.

Lesson 1: Winning Poker Hands
Steps of the design process; Developing for clarity and generality; Arguments for program correctness; Experimentation and simulation.; Design tradeoffs; Simplicity and Clarity. Decomposition and composability.

Lesson 2: Back of the Envelope
Back of envelope calculations; When to use brute force and when to be clever; The Zebra puzzle; Generator expressions; Permutations and combinations. Cryptarithmetic; Recursive and wishful thinking.

Lesson 3: Regular Expressions, other languages and interpreters
Defining the language of regular expressions; Interpreting the language; Defining the set of strings matched by a regular expression;
Other languages.

Lesson 4: Dealing with complexity through search
Search: finding your way with a flashlight or boat; pouring water. Analyzing the efficiency of an algorithm; Recurrence relations; Matching data types with algorithms; Longest palindrome substring algorithm.

Lesson 5: Dealing with uncertainty through probability
Probability: the game of Pig; Maximizing expected utility to optimize strategy.

Lesson 6: Word Games
Managing complexity; Large sets of words; Appropriate data structures; Word games.

Lesson 7: Conclusion
Final exam/project

课程评论(4条)

 0 大吃一惊异 2014-06-29 12:29 0 票支持; 0 票反对 对这门课有复杂的情感。一方面，Norvig讲课很好，他选的几个topic我挺喜欢的（搜索，造工具，概率reasoning等等），看大神解决问题的过程很过瘾。另一方面，他让学生实践的切入点通常是通过各种游戏和puzzle，这个不太对我胃口。本人对扑克，保龄球，飞镖什么的一点都没兴趣，为了完成作业还得实现他们的规则，略感蛋疼。最大的收获是bird by bird。
 2 52nlp 2014-02-26 09:18 2 票支持; 0 票反对 战战兢兢，如履薄冰的完成了这门课程，也是我在Udacity上耗时最长的课程，不过毕竟是Peter Norvig大牛的课程，同时作为Udacity的联合创始人，这门课真心不错。每个单元都围绕一个或多个有意思的问题展开，基本上是问题驱动式的编程，很多时候自己用笨拙的方法解决完一个问题后，再看Norvig大牛的答案，常常有原来可以如此简单而优雅的Python解决方案。不过课程难道确实很大，但是内容很厚实，非常非常推荐，比较适合有一定编程及Python基础的同学来尝试。
 1 要有光LTBL 2013-10-17 13:46 1 票支持; 0 票反对 一开始学编程就上了这门课，难度相当之高，每周作业都觉得我肯定写不出来。。。虽然最后都写出来了吧＝ ＝ 如果能上下来收获也是非常非常非常大的。讲得也很好，讲完了最后一段视频跟第一段比感觉老师苍老了很多。。。
 2 wzyer 2013-05-22 15:52 2 票支持; 0 票反对 Peter Norvig的名气让我选了这门课。考虑到他的著名lisp程序员身份，这门课可能会有点偏函数式编程。而且我觉得这门课还是有一定难度，不建议新手选择。不过，能亲眼看到大师给你敲代码，解决问题，绝对是一个不能错过的体验。

课程简介

Learn new concepts, patterns, and methods that will expand your programming abilities, helping move you from a novice to an expert programmer.

课程标签

Peter-Norvig Google 程序 程序设计 编程 计算机程序设计 Python编程 Python Python程序设计