“2013级--学期安排 (第三学期)”的版本间的差异

来自问题求解
跳转至: 导航搜索
(以“==基本要求== <ul> <li>掌握典型应用中抽象出来的重要算法问题的求解方法。</li> <li>理解并能够应用支持上述内容的离散数...”为内容创建页面)
 
Wu讨论 | 贡献
学习周历
第30行: 第30行:
 
     <th>书面作业</th>
 
     <th>书面作业</th>
 
     <th>编程任务</th>
 
     <th>编程任务</th>
 +
  </tr>
 +
  <tr>
 +
    <td>5.27--5.31</td>
 +
    <td>[http://cslab.nju.edu.cn/problem_solving/index.php/%E6%96%87%E4%BB%B6:%E8%AE%A1%E7%AE%97%E6%9C%BA%E9%97%AE%E9%A2%98%E6%B1%82%E8%A7%A3-2013-05-14.pdf 2-15:动态规划]</td>
 +
    <td>
 +
      <ul>
 +
        <li>通过实例掌握动态规划的基本思想与算法设计方法</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>TC第15章</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>以空间换时间的关键是存储效率</li>
 +
        <li>动态规划与指数时间的有效降低</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>TC第15.1节练习1、3</li>
 +
        <li>TC第15.2节练习2、4</li>
 +
        <li>TC第15.3节练习3、5、6</li>
 +
        <li>TC第15.4节练习3、5</li>
 +
        <li>TC第15.5节练习1</li>
 +
        <li>TC第15章问题4</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>实现矩阵连乘</li>
 +
      </ul>
 +
    </td>
 +
  </tr>
 +
  <tr>
 +
    <td>6.3--6.7</td>
 +
    <td>[http://cslab.nju.edu.cn/problem_solving/index.php/%E6%96%87%E4%BB%B6:%E8%AE%A1%E7%AE%97%E6%9C%BA%E9%97%AE%E9%A2%98%E6%B1%82%E8%A7%A3-2013-05-21.pdf 2-16:贪心算法]</td>
 +
    <td>
 +
      <ul>
 +
        <li>掌握利用贪心策略设计算法的思路与方法</li>
 +
        <li>掌握用分摊进行算法分析的思想与方法</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>TC第16章第1、2、3节</li>
 +
        <li>TC第17章</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>贪心算法的正确性证明</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>TC第16.1节练习2、3</li>
 +
        <li>TC第16.2节练习1、2</li>
 +
        <li>TC第16.3节练习2、5、8</li>
 +
        <li>TC第16章问题1</li>
 +
        <li>TC第17.1节练习3</li>
 +
        <li>TC第17.2节练习2</li>
 +
        <li>TC第17.4节练习1</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>Hoffman码</li>
 +
      </ul>
 +
    </td>
 +
  </tr>
 +
  <tr>
 +
    <td>6.10--6.14</td>
 +
    <td>[http://cslab.nju.edu.cn/problem_solving/index.php/%E6%96%87%E4%BB%B6:%E8%AE%A1%E7%AE%97%E6%9C%BA%E9%97%AE%E9%A2%98%E6%B1%82%E8%A7%A3-2013-05-28.pdf 2-17:用于动态等价关系的数据结构]</td>
 +
    <td>
 +
      <ul>
 +
        <li>理解动态等价关系的概念以及在问题求解中的意义</li>
 +
        <li>掌握以union-find为代表的相应数据结构</li>
 +
        <li>进一步理解抽象数据类型的意义</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>TC第21章</li>
 +
        <li>SB第2章</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>算法分析的困难性</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>TC第21.1节练习2、3</li>
 +
        <li>TC第21.2节练习1、3、6</li>
 +
        <li>TC第21.3节练习1、2、3</li>
 +
        <li>TC第21章问题1</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>编一个程序自动生成迷宫</li>
 +
      </ul>
 +
    </td>
 +
  </tr>
 +
  <tr>
 +
    <td>6.17--6.21</td>
 +
    <td>2-18:图的基本概念</td>
 +
    <td>
 +
      <ul>
 +
        <li>掌握图的基本概念以及图论的基本证明方式</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>DW第1章</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>图论应用的广泛性以及图论证明方法的独特性</li>
 +
        <li>理解图与关系的联系</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>DW第1.1节练习4、5、10、14、16、31</li>
 +
        <li>DW第1.2节练习5、7、11、17、18、20、38、40</li>
 +
        <li>DW第1.3节练习1、10、14、15、18、61</li>
 +
        <li>DW第1.4节练习1、5、8、10、11、21</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>WS第11章项目3</li>
 +
        <li>WS第11章项目5</li>
 +
      </ul>
 +
    </td>
 +
  </tr>
 +
  <tr>
 +
    <td>6.24--6.28</td>
 +
    <td>[http://cslab.nju.edu.cn/problem_solving/index.php/%E6%96%87%E4%BB%B6:%E8%AE%A1%E7%AE%97%E6%9C%BA%E9%97%AE%E9%A2%98%E6%B1%82%E8%A7%A3-2013-06-11.pdf 2-19:图的计算机表示以及遍历]</td>
 +
    <td>
 +
      <ul>
 +
        <li>掌握在计算机中表示图的方式</li>
 +
        <li>掌握图的深度优先与广度优先遍历方法</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>TC第22章</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>图表示中形式与效率的关系</li>
 +
        <li>不同遍历方法的算法意义</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>TC第22.1节练习3、8</li>
 +
        <li>TC第22.2节练习3、4、5</li>
 +
        <li>TC第22.3节练习6、7、8、9、12</li>
 +
        <li>TC第22.4节练习2、3</li>
 +
        <li>TC第22.5节练习5、7</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>实现深度与广度遍历</li>
 +
      </ul>
 +
    </td>
 +
  </tr>
 +
  <tr>
 +
    <td>7.1--7.5</td>
 +
    <td>2-20:树</td>
 +
    <td>
 +
      <ul>
 +
        <li>理解树的基本数学性质</li>
 +
        <li>掌握用加权树建立数学模型的方法</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>DW第2章</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>树的数学性质在计算机问题求解中的意义</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>DW第2.1节练习2、7、9、15、18、21、23、29、33、37、48</li>
 +
        <li>DW第2.2节练习2、6、7、8、10</li>
 +
        <li>DW第2.3节练习1、2、6、12、13、14、18、21</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>WS第14章项目10</li>
 +
        <li>WS第14章项目11</li>
 +
      </ul>
 +
    </td>
 +
  </tr>
 +
  <tr>
 +
    <td>暑假自学</td>
 +
    <td>2-21:最小生成树算法</td>
 +
    <td>
 +
      <ul>
 +
        <li>理解贪心算法策略在最小生成树问题上的应用</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>TC第23章</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>如何评价同一问题的不同算法</li>
 +
      </ul>
 +
    </td>
 +
    <td>
 +
    </td>
 +
    <td>
 +
      <ul>
 +
        <li>Prim和Kruskal算法</li>
 +
      </ul>
 +
    </td>
 
   </tr>
 
   </tr>
 
   <tr>
 
   <tr>

2014年8月31日 (日) 17:40的版本

基本要求

  • 掌握典型应用中抽象出来的重要算法问题的求解方法。
  • 理解并能够应用支持上述内容的离散数学工具与方法。

注意:程序设计能力要求贯穿于整个课程,不再单列。

指定教材

  • CS: Cliff Stein et al.: Discrete Mathematics for Computer Scientists, 1st ed. Addison-Wesley, 2010
  • DW: Douglas West: Introduction to Graph Theory, 2nd ed. Pearson, 2000
  • TC: Thomas Cormen: Introduction to Algorithms, 3rd ed. MIT, 2009
  • TJ: Thomas Judson: Abstract Algebra - Theory and Applications, http://abstract.ups.edu/
  • WS: Walter Savitch: Problem Solving with C++, 7th ed. Addison Wesley, 2008

推荐课外读物

  • Larry Nyhoff: ADTs, Data Structures, and Problem Solving with C++, 2nd ed. Prentice Hall, 2004

学习周历

日期 论题 学习目的 阅读材料 引导要点 书面作业 编程任务
5.27--5.31 2-15:动态规划
  • 通过实例掌握动态规划的基本思想与算法设计方法
  • TC第15章
  • 以空间换时间的关键是存储效率
  • 动态规划与指数时间的有效降低
  • TC第15.1节练习1、3
  • TC第15.2节练习2、4
  • TC第15.3节练习3、5、6
  • TC第15.4节练习3、5
  • TC第15.5节练习1
  • TC第15章问题4
  • 实现矩阵连乘
6.3--6.7 2-16:贪心算法
  • 掌握利用贪心策略设计算法的思路与方法
  • 掌握用分摊进行算法分析的思想与方法
  • TC第16章第1、2、3节
  • TC第17章
  • 贪心算法的正确性证明
  • TC第16.1节练习2、3
  • TC第16.2节练习1、2
  • TC第16.3节练习2、5、8
  • TC第16章问题1
  • TC第17.1节练习3
  • TC第17.2节练习2
  • TC第17.4节练习1
  • Hoffman码
6.10--6.14 2-17:用于动态等价关系的数据结构
  • 理解动态等价关系的概念以及在问题求解中的意义
  • 掌握以union-find为代表的相应数据结构
  • 进一步理解抽象数据类型的意义
  • TC第21章
  • SB第2章
  • 算法分析的困难性
  • TC第21.1节练习2、3
  • TC第21.2节练习1、3、6
  • TC第21.3节练习1、2、3
  • TC第21章问题1
  • 编一个程序自动生成迷宫
6.17--6.21 2-18:图的基本概念
  • 掌握图的基本概念以及图论的基本证明方式
  • DW第1章
  • 图论应用的广泛性以及图论证明方法的独特性
  • 理解图与关系的联系
  • DW第1.1节练习4、5、10、14、16、31
  • DW第1.2节练习5、7、11、17、18、20、38、40
  • DW第1.3节练习1、10、14、15、18、61
  • DW第1.4节练习1、5、8、10、11、21
  • WS第11章项目3
  • WS第11章项目5
6.24--6.28 2-19:图的计算机表示以及遍历
  • 掌握在计算机中表示图的方式
  • 掌握图的深度优先与广度优先遍历方法
  • TC第22章
  • 图表示中形式与效率的关系
  • 不同遍历方法的算法意义
  • TC第22.1节练习3、8
  • TC第22.2节练习3、4、5
  • TC第22.3节练习6、7、8、9、12
  • TC第22.4节练习2、3
  • TC第22.5节练习5、7
  • 实现深度与广度遍历
7.1--7.5 2-20:树
  • 理解树的基本数学性质
  • 掌握用加权树建立数学模型的方法
  • DW第2章
  • 树的数学性质在计算机问题求解中的意义
  • DW第2.1节练习2、7、9、15、18、21、23、29、33、37、48
  • DW第2.2节练习2、6、7、8、10
  • DW第2.3节练习1、2、6、12、13、14、18、21
  • WS第14章项目10
  • WS第14章项目11
暑假自学 2-21:最小生成树算法
  • 理解贪心算法策略在最小生成树问题上的应用
  • TC第23章
  • 如何评价同一问题的不同算法
  • Prim和Kruskal算法
9.2--9.6 3-1:单源最短通路算法
  • 掌握单源最短通路问题的解决方法
  • 理解最短通路的数学性质并理解其在正确性证明中的作用
  • TC第24章
  • 贪心策略在不同算法中的不同体现
  • TC第24.1节练习2、3、4
  • TC第24.2节练习2
  • TC第24.3节练习2、4、7
  • TC第24.5节练习2、5
  • TC第24章问题2、3
  • Dijkstra算法
9.9--9.13 3-2:多源最短通路算法
  • 掌握多源最短通路问题的解法
  • TC第25章
  • 不同领域表面上完全不同的问题如何归结为同一个模型上的问题
  • TC第25.1节练习4、5、6、9、10
  • TC第25.2节练习2、4、6、8
  • TC第25.3节练习2、3
  • TC第25章问题2
  • Floyd-Warshall算法
9.16--9.20 3-3:图中的匹配与覆盖
  • 掌握图中匹配与覆盖的概念、关键问题与算法
  • DW第3章
  • 点与边、匹配与覆盖的对称性
  • 匈牙利算法
9.23--9.27 3-4:图的连通度与网络流
  • 理解图中连通度的概念与相关理论
  • 理解图中的网络与流的概念与意义
  • DW第4章
  • 连通性的意义
  • WS第17章项目10
9.30--10.4 3-5:最大流算法
  • 掌握网络最大流问题的算法
  • TC第26章
  • 最大流与最小割集的关系在算法正确性证明中的影响
  • 叠加式算法及其分析
  • Ford-Fulkerson算法
10.7--10.11 3-6:图论中的其它专题
  • 理解图论中一些著名的问题以及它们在计算机问题求解中的地位,包括图顶点着色问题、哈密尔顿回路问题与平面图
  • DW第5章第1节
  • DW第6章第1节
  • DW第7章第2节
  • 图模型应用的广泛性
  • Fleury算法
  • 用枚举方式解TSP, 观察到问题规模多大时代价便不可容忍
10.14--10.18 3-7:矩阵计算
  • 掌握矩阵计算中一些基本问题的算法以及其在线性系统中的应用
  • TC第28章
  • 线性系统及其在问题求解中的重要性
  • LUP decomposition
10.21--10.25 3-8:线性规划
  • 掌握线性规划的基本概念,问题描述方式以及基本算法
  • TC第29章
  • 线性规划的意义与适用性
  • Simplex算法
10.28--11.1 3-9:多项式与FFT
  • 掌握计算机处理多项式的基本算法
  • 掌握快速傅立叶方法的计算机实现
  • TC第30章
  • 多项式的表示如何影响算法设计与实现
  • 实现一个多项式相乘的算法
11.4--11.8 3-10:群与拉格郎日定理
  • 理解抽象代数结构的基本概念
  • 理解群的数学性质以及抽象代数典型推导方法
  • TJ第3、4、5、6章
  • 公理化系统的思想
  • WS第12章项目1
  • WS第12章项目8
11.11--11.15 3-11:环与域
  • 理解环与域的基本概念
  • 理解环与域的数学性质以及在计算机科学中的意义
  • TJ第16章第1、2、5节
  • 多个运算的代数系统的数学性质与推理方法
  • WS第15章项目10
  • WS第15章项目11
11.18--11.22 3-12:数论基础
  • 掌握数论的基础知识,理解典型的数论问题及其解决思路
  • TJ第2章
  • CS第2章第2节
  • 模算术的概念与处理方法在数论中的应用
  • WS第13章项目3
  • WS第13章项目8
11.25--11.29 3-13:数论算法
  • 掌握数论中一些基本问题的算法
  • TC第31章第1、2、3、4、5、8节
  • 数论算法的问题大小度量方式的特殊性
  • 实现解模线性方程组的程序
  • 实现两个任意长度整数精确相乘的程序
12.2--12.6 3-14:密码算法
  • 掌握公钥密码系统的基本原理
  • 理解其中核心的数论算法
  • TJ第7章
  • TC第31章第7、9节
  • 数论算法的核心作用
  • 实现Miller-Rabin算法
  • 如果有兴趣,尝试了解与实现ASK算法
12.9--12.13 3-15:代数编码
  • 理解如何能建立利于查错,纠错的编码系统
  • 理解抽象代数的应用意义
  • TJ第8章
  • 群的性质如何保证编码系统的性质
  • WS第16章项目6
12.16--12.20 3-16:群与对称
  • 理解群在处理对称系统中的应用,进一步理解群的应用意义
  • TJ第12、13、14章
  • 对称群的结构与基本理论
  • 在计算机中展示S_3与S_4子对称的几和表示
12.23--12.27 3-17:串匹配
  • 掌握最常用的字符串匹配算法
  • TC第32章
  • 匹配算法的原理及其适用性
  • KMP算法,比较普通文本与由5个符号组成的很长的串上效率的差异
12.30--1.3 3-18:计算几何算法
  • 理解计算几何中一些最基本的问题及其解法
  • TC第33章
  • 几何计算与计算机图形处理之间的关系
  • 距离最近点对算法