《Design of Computer Programs》学习笔记(0)简介(关键词:程序设计)

本课程旨在帮助编程初学者成长为专家级程序员,通过一系列实践练习掌握从问题描述到解决方案的设计过程。课程涵盖程序设计的基本步骤、算法效率分析、数据结构选择等关键主题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Design of Computer Programs

课程简介

学习新的概念,模式和方法,来拓展你的编程能力,进而帮助你从一个新手成为一个专家程序员。

我需要知道什么?

课程假设之前要有编程经验,应相当于 Udacity CS101教学内容范围。

我会学到什么?

向成为一个专家程序员的道路前进。在本课中,你将通过一系列的练习,实践从问题描述到问题解决的过程。

教学大纲

  1. 赢得牌局(Winning Poker Hands)

    • 程序设计过程的步骤,程序开发的清晰性和通用性。
    • 论证程序的正确性,测试和模拟。
    • 设计的权衡;简单性和清晰性。分解和组合。
  2. 信封背面(Back of the Envelope)

    • 信封背面的计算(找张纸打草稿):何时使用穷举法,何时使用聪明的方法。
    • Zebra puzzle:生成器表达式,排列和组合。
    • Cryptarithmetic(一种单词的算术);递归和期望的思考;最长回文子串算法。
  3. 正则表达式,其他语言和解释器(Regular Expressions, other languages and interpreters)

    • 定义正则表达式的语言,解释这个语言。
    • 定义被1个正则表达式匹配的字符串集合。
    • 其他语言。
  4. 通过搜索处理复杂度(Dealing with complexity through search)

    • 搜索:利用手电筒或船,找到你的方法。
    • 分析算法的效率。
    • 递归关系,匹配数据类型与算法。
  5. 通过概率处理不确定性(Dealing with uncertainty through probability)

    • 概率:小猪游戏。
    • 最大化期望效用以优化策略。
  6. 单词游戏(Word Games)

    • 管理复杂度。
    • 大型的单词集合。
    • 适当的数据结构
  7. 课程总结(Conclusion)

    • 测试和实践考试。

课程导师

Peter Norvig是Google的Director of Research。他也是美国人工智能协会及计算机协会的会员。他是流行教材《人工智能:一种现代方法》的合著者。加入Google之前,他是NASA Ames研究中心的计算科学部主任。

翻译:@new652 编辑:欢仔258

参考文献:

  1. Design of Computer Programs - 英文介绍 - Udacity
  2. Design of Computer Programs - 中文介绍 - Udacity
  3. Design of Computer Programs - 中文介绍 - 果壳
  4. Design of Computer Programs - 视频列表 - Udacity
  5. Design of Computer Programs - 视频列表 - YouTube
  6. Design of Computer Programs - class wiki - Udacity
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值