从程序设计到算法设计.pptx
《从程序设计到算法设计.pptx》由会员分享,可在线阅读,更多相关《从程序设计到算法设计.pptx(101页珍藏版)》请在课桌文档上搜索。
1、相关课程教学中的几点经验,3,ACM/IEEE-CS计算机科学课程体系2013,1,从程序设计到算法设计的课程体系,2,数据结构课程教学方法及在线教学平台,4,内 容 提 要,ACM/IEEE-CS计算机科学课程体系2013,1,Curriculum 68CC 2001 CS 2008 CS 2013,中国计算机学会和全国高校计算机教育研究会也组成研究组:CCC2006,AL Algorithms and Complexity AR Architecture and Organization CN Computational Science DS Discrete Structures GV
2、Graphics and Visual Computing HC Human-Computer Interaction IAS Information Assurance and SecurityIM Information Management IS Intelligent Systems NC Networking and CommunicationsOS Operating Systems PBD Platform-based DevelopmentPD Parallel and Distributed ComputingPL Programming Languages SDF Soft
3、ware Development Fundamentals SE Software Engineering SF System Fundamentals SP Social and Professional Issues,18个知识领域,1.1,计算机科学分支学科的知识领域,It is naturally tempting to associate each Knowledge Area with a course.We explicitly discourage this practice in general,even though many curricula will have som
4、e courses containing material from only one Knowledge Area or,conversely,all the material from one Knowledge Area in one course.We view the hierarchical structure of the Body of Knowledge as a useful way to group related information,not as a stricture for organizing material into courses.,很自然每一个知识领域
5、都与一门课程相关联。一门课程可以包含一个知识领域的部分内容或全部内容。但我们认为,将相关的信息组织成知识体层次结构是十分有用的,而不是狭窄地将内容组织进课程中。,提示:,计算机科学分支学科的知识单元,程序设计导论面向对象的程序设计高级语言程序设计,1.2,算法设计与分析数据结构,知识领域的重要性,1.3,涵盖的学校类型,社区大学,学院,教学型大学,研究型大学,1.4,程序设计语言,算法设计与分析,数据结构,从程序设计到算法设计的课程体系,2,进阶,进阶,程序设计,数据结构,算法设计与分析,注重变量定义,注重数据组织,注重控制流程,注重数据处理方法,强调程序设计,强调“好程序”的设计,程序设计,
6、数据结构,2.1,数据结构和程序设计课程的侧重点,掌握各种常用的数据结构,掌握各种常用的求解策略,数据结构,算法设计与分析,2.2,数据结构和算法设计与分析课程的侧重点,相关课程教学中的几点经验,高级语言程序设计,3,数 据 结 构,算法设计与分析,3.1,3.2,3.3,高级语言程序设计,定义变量:使用内存(纸张)运算符:使用CPU(笔),程序(大脑),3.1.1 计算机语言工具化的理念,3.1,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,示例:机器人环境,3.1.2 计算机语言提供的核心元素,提供的指令,I
7、nit(x,y):初始位置Up:上移一个位置down:下移一个位置Left:左移一个位置Down:右移一个位置Over:是否超界End:结束,控制语句,顺序语句:串行执行(冯诺依曼体系结构)条件语句:if/switch循环语句:while、do-while、for,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,为什么需要条件语句?,Init(2,7);,Right;,Right;,超界,条件语句,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6
8、,7,8,编程:从(2,2)移动到(7,6),Init(2,2);,程序1,Left;,Left;,Left;,Left;,Down;,Down;,Down;,Down;,Down;,End;,任务完成,循环语句,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,Init(2,2);,程序2,for(i=1 To 4)Left;,for(i=1 To 5 Down;,End;,任务完成,为什么要使用循环语句?,数学思路是人求解问题的过程,而程序设计思路是人指挥计算机求解问题的过程。前者是人求解问题的方式,后者是计算机
9、求解问题的方式。由于计算机的运行速度快,特别适合于求解简单重复的问题。所以将数学思路转换成设计程序思路时要充分利用这一特点,从问题求解中提炼出重复的步骤,用计算机语言中的循环语句加以实现。,3.1.3 数学思路和程序设计思路的关系,数学思维,计算思维,示例:从5位同学中选派4位同学在星期五、星期六、星期天参加公益活动,每人一天,要求星期五有2人参数,星期六、星期天各有1人参加,则不同的选派方法共有多少种?,从5人中选派4位同学有 种,再从选出的4人中选2人星期五劳动有 种,其余2人在星期六、星期天劳动有 种,所以总共有=60种。,数学思路求解:,程序设计思路求解:,为了统计所有不同的选派的情况
10、,用week数组统计每天安排参加公益活动的人数,week0表示星期五的人数、week1表示星期六的人数、week2表示星期天的人数,week3表示不参加公益活动的人数。week0week3的初始值均为0。设5人分别安排公益活动的星期号为ae,显然,0ae3。当某人参加某星期号(编号i,0i3,i=3时表示不参加任何公益活动)的公益活动时,weeki增1。,void main()int week4=0;int a,b,c,d,e,count=0;for(a=0;a=3;a+)weeka+;for(b=0;b=3;b+)weekb+;for(c=0;c=3;c+)weekc+;for(d=0;d=
11、3;d+)满足条件 weekd+;for(e=0;e=3;e+)weeke+;if(week0=2,线性化编程,指令1指令2指令n,3.1.4 程序设计基本方法,变量定义变量运算变量的输入和输出,知识点:,一个工业流程,一个模块,输出,输入,参数类型(输入型参数和输出型参数)从模块输入到输出的运算。,知识点:,模块,模块化编程,模块,模块的划分模块之间的关系,知识点:,模块1,模块2,模块3,结构化编程,3.1.5 程序设计涵盖计算机科学的各个分支,用户界面,数据处理,数据文件,可视化设计(窗体、网页),算法设计(基本算法、网络、编译等),DBMS,应用程序,应用程序的基本结构,3.2.1 为
12、什么学习数据结构课程:数据是有结构的,引子:万事万物都是有结构的。,微观世界DNA结构,数 据 结 构,3.2,宏观世界建筑物的结构,知识结构平面几何的5条公理,公理1:从任意的一个点到另外一个点作一条直线是可能的。公理2:把有限的直线不断循直线延长是可能的。公理3:以任一点为圆心和任一距离为半径作一圆是可能的。公理4:所有的直角都相等。公理5:如果一直线与两线相交,且同侧所交两内角之和小于两直角,则两直线无限延长后必相交于该侧的一点。,欧几里德的几何原本,公理1,平面几何知识体系,公理2,公理3,公理4,公理5,平面几何知识体系结构,公理5又称之为平行公理,这个公理衍生出“三角形内角和等于1
13、80度”的定理。在高斯(F.Gauss,1777年1855年)的时代,公理5就备受质疑,俄罗斯数学家罗巴切夫斯基、匈牙利人波约阐明公理5只是公理系统的一种可能选择,并非必然的几何真理,也就是“三角形内角和不一定等于180”,从而发现非欧几里得的几何学,即“非欧几何”。,如微分几何在现代测量学等领域应用广泛,公理1,微分几何知识体系,公理2,公理3,公理4,公理5,微分几何知识体系结构,数据结构的观点:,逻辑结构,存储结构,操作功能实现,用户视角,线性结构树形结构图形结构,数据的逻辑结构类型,数据,基本的数据处理算法,3.2.2 数据处理是有方法的:提炼通用方法,方法是旧的,问题是新的。,教学中
14、,突出通用方法的讲解!培养学生归纳的思想。,模块化,求递归模型的步骤:(1)对原问题f(s)进行分析,称为“大问题”,假设出合理的“小问题”f(s)(与数学归纳法中假设n=k-1时等式成立相似);(2)假设f(s)是可解的,在此基础上确定f(s)的解,即给出f(s)与f(s)之间的关系(与数学归纳法中求证n=k时等式成立的过程相似);(3)确定一个特定情况(如f(1)或f(0))的解,由此作为递归出口(与数学归纳法中求证n=1时等式成立相似)。,递归模型 递归算法,递归算法设计,递归算法的核心是数据和数据处理的递归性。,数据:D=瓜的集合运算:Op=种瓜递归性:Op(D)D,第一年种瓜,递归:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 算法 设计

链接地址:https://www.desk33.com/p-373858.html