课程简介

这是关于计算机算法的入门课程。适合受过高中程度的教育,希望对计算机算法相关话题有比较专业的了解,但还没系统学习的学习者。这里提供的完整内容(包括总共400分钟讲课视频,80道习题和一套包含15个题的试卷),既可以作为大学非计算机专业的选修课材料,也可以用于大学面向学有余力的高中生开设的AP(先修)课程。 课程概述 在概述了算法是什么、算法的描述、算法的分析和算法的类型等四个方面的要点之后,课程选择了10个有代表性的问题进行算法求解的讨论。采用问题导入,算法思路,算法描述和算法分析的基本框架,展现了计算机科学中常用的算法思维内涵。同时,对有些问题,通过强调一题多解的过程,体现了丰富的算法设计思想。 课程目标 通过本课程的学习,预期学习者将获得关于算法世界的一个多维度、有深度的视野,通过熟悉10个典型的问题求解过程,领会丰富多彩的算法思想和算法作为一门学问所关心的要点。学完了本课程,能比较专业地与他人讨论算法问题。

课程大纲

第一讲    开启算法学习之旅

  1.1  什么是算法

  1.2  算法的描述

  1.3  算法的分析

  1.4  算法的类型

第二讲    量水问题  

       2.1量水问题的引入

       2.2 欧几里得算法

       2.3 扩展欧几里得算法

第三讲    二分法

       3.1 二分搜索

       3.2 求奇次方程的一个实根

第四讲    最优编码树

               4.1信息编码

               4.2 哈夫曼编码树

               4.3 哈夫曼编码算法

第五讲    优化互连互通的成本

         5.1 连通图与生成树

         5.2 最小生成树算法

         5.3 算法的正确性

第六讲    斐波那契数的三种解法

               6.1递归法

               6.2 记忆法(动态规划)

               6.3 矩阵解法

第七讲    最大收益的投资组合

         7.1 背景问题

         7.2 最大回报——动态规划法

         7.3 最佳投资组合

第八讲    路径规划

               8.1 图论基础及最短路径问题

               8.2 单源最短路径算法(Dijkstra算法)

               8.3 多源最短路径——动态规划策略

               8.4 多源最短路径算法(Floyd-Warshall算法)

第九讲    物以类聚,人以群分

         9.1 层次聚类法

         9.2 K均值聚类法

         9.3 比较与升华

第十讲    近朱者赤,近墨者黑

               10.1分类问题

               10.2 K近邻分类算法

第十一讲 旅行推销员问题三解

         11.1 蛮力解法

         11.2 遗传算法

         11.3 最小生成树法




课程说明

参考资料

李晓明,王卫红,薛定稷,《信息技术之选修——算法初步》,华东师范大学出版社,20218

陈道蓄,李晓明,《算法漫步——乐在其中的计算思维》,CCF PRESS(机械工业出版社),20218

李晓明,周刚,顾秋辉,白晓琦,《信息技术之选择性必修——数据与数据结构》,华东师范大学出版社,20213



拓展阅读

其他

主讲教师

李晓明 等   

1986年,在美国史蒂文斯理工学院计算机系获得博士学位,后在中国哈尔滨工业大学做博士后、教授。1995-1997在美国锡拉丘茨大学东北并行计算中心(NPAC)做高级访问学者。1997年9月至现在,为北京大学计算机系教授。

王卫红   计算机

毕业于美国科罗拉多州立大学计算机科学系,获硕士学位。现为北京大学信息科学技术学院专职教师,担任计算机网络相关的课程教学工作,参与《网络、群体与市场》教材翻译工作。

相关课程推荐

  • 正在进行
    Java程序设计
    《Java程序设计》课程是使用Java语言进行应用程序设计的课程,针对各专业的大学本科生开设。课程的主要目标有三: 一、掌握Java语言的语法,能够较为深入理解Java语言机制,掌握Java语言面向对象的特点。 二、掌握JavaSE中基本的API,掌握在集合、线程、输入输出、图形用户界面、网络等方面的应用。三、能够编写有一定规模的应用程序,养成良好的编程习惯,会使用重构、设计模式、单元测试、日志、质量管理工具提高代码的质量。 对于学过“计算机基础、计算概论或C语言的学生”尤为适用。
  • 正在进行
    IT项目管理
    IT项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。 为使软件项目开发获得成功,关键问题是必须对软件项目的工作范围、可能风险、需要资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等做到心中有数。 这种管理在技术工作开始之前就应开始,在软件从概念到实现的过程中继续进行,当软件工程过程最后结束时才终止。
  • 正在进行
    用计算机提升学习和办公生产力
    本课程从计算机普通用户(而非计算机专业人员)的角度出发,围绕使用计算机提高学习和办公效率的目标,讲授如何认识计算机软硬件的基本功能、如何使用互联网搜索信息和沟通信息、如何使用最常用的学习和办公软件

恭喜,报名成功

进入学习中心

恭喜,报名成功

确定

请进入开课界面预览

确定

X

请去您的邮箱验证

还没收到验证邮件?

1. 试试去广告邮件、垃圾邮件目录看看

2. 再次发送验证邮件

对不起,班次容量已满

请报名下一班次

知道了~!

对不起,您没有操作权限

知道了~!