




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计思想与方法,LuChaojun,SJTU,2,LuChaojun,SJTU,2,2,教师信息,主讲:陆朝俊(电信学院计算机科学与工程系)邮箱:lu-cj资料:ftp:/登录用户/口令:lucj/publicftp:/:990/lu-cj办公室:电院群楼3-525助教:邮箱:作业上传:ftp:/登录用户/口令:,LuChaojun,SJTU,3,LuChaojun,SJTU,3,教材和参考书,教材程序设计思想与方法问题求解与计算思维高教出版社,2013.参考书PythonProgramming:AnIntroductiontoComputerScience.(电子版)HowtoThinkLikeaComputerScientistLearningwithPython.(电子版),LuChaojun,SJTU,LuChaojun,SJTU,4,LuChaojun,SJTU,4,教学方式,课堂教学教学周:1,2,3,4,6,8,10,12,14,15讲课,演示机房上机教学周:5,7,9,11,13完成当天上机作业并提交答疑,LuChaojun,SJTU,LuChaojun,SJTU,5,LuChaojun,SJTU,5,考核方式,期末考试笔试,占最终成绩的50%平时作业编一些小程序,邮件或ftp上传给助教,占最终成绩的20%大作业编一个大程序,期末提交,占最终成绩的30%,LuChaojun,SJTU,第1章计算与计算思维,计算机:硬件(1),计算机:硬件(2),中央处理器(CPU):执行指令.每条指令只能完成简单的操作!例如:加法,比较,移动,etc.但按一定的次序执行大量简单指令能完成复杂任务!存储器:存储信息(程序和数据).主存:CPU能直接访问,速度快但易失.次级存储器:速度慢但持久.输入/输出设备:人机交互,LuChaojun,SJTU,8,LuChaojun,SJTU,9,LuChaojun,SJTU,9,9,计算机:软件,计算机是信息处理机器,信息处理过程由预定的程序控制.单条指令是做不了什么事情的,需要大量指令组成一个逐步执行的指令序列,即程序.各种程序统称为计算机软件.没有软件的计算机毫无用处.,计算,计算:利用计算机执行程序来解决问题.不是狭义的数学计算!程序使得简单指令能完成复杂任务.问:只会加法的小学生能完成乘法运算任务吗?答:能!关键是编写合适的程序在纸上写下0,记住结果;给所记结果加上第1个n,记住结果;给所记结果加上第2个n,记住结果;给所记结果加上第m个n,记住结果;报告结果(即mn),LuChaojun,SJTU,10,通用计算机,计算机执行一个程序即可实现一个功能;换着执行不同的程序即可实现不同的功能.例如:word,mediaplayer,录音机,etc通用计算机:可以加载不同的程序来执行.与一些电器的比较电视机:功能单一洗衣机:功能较多(可加载多种洗涤程序)手机:功能更多,基本上就是计算机.,计算机科学,并非研究计算机!计算机之于计算机科学家正如望远镜之于天文学家.(E.W.Dijkstra)CS研究计算的基础,实现与应用.例如,CS的一个基本问题:什么是可计算的?本课程的目标:像计算机科学家一样思考.,LuChaojun,SJTU,12,程序设计,计算的关键是程序设计(编程).给定一个问题,利用计算机支持的简单操作,设计出一个操作步骤的序列,计算机执行这个序列从而解决问题.学习程序设计的好处:做计算机的主人提高问题求解能力本身是很有乐趣的智力活动,LuChaojun,SJTU,13,程序设计语言,问:用什么语言告诉计算机做什么?答:用精确无歧义的程序设计语言.精确的语法和语义(形式和意义)有不同层次的程序设计语言计算机的母语:机器语言例如:0000010000000001.是Intel8086能理解的一条指令.将机器语言用助忆符表示:汇编语言上例即:ADDAL,1.需要汇编器处理后机器才懂.适合人用的语言:高级语言如:x=y+1.需要编译器或解释器翻译后机器才懂.,LuChaojun,SJTU,14,编译vs解释,思考:为什么高级语言程序具有可移植性,即同一个程序可以在不同厂商的计算机上执行?,算法与编码实现,程序设计先用非形式化的语言将问题求解步骤表达出来算法;伪代码再用形式化的编程语言将上述算法实现程序.代码,算法例:欧几里德算法,欧几里德算法:求最大公约数.输入:自然数a,b输出:a,b的最大公约数步骤:第1步:令r为a除以b所得余数第2步:若r=0,则算法结束,b即为答案;否则置ab,br,转到第1步.,对算法的要求,算法的每个步骤必须是明确的,可行的.不明确:在菜中放点盐不可行:用青菜豆腐做出龙肝凤髓的美味每个步骤不必是最底层的琐细步骤,可以是组合的高级步骤.如:焯水算法的所有步骤必须在有限时间内完成.我们说的计算,即是指算法计算:用明确可行的基本步骤组成的序列来解决问题.,LuChaojun,SJTU,19,LuChaojun,SJTU,19,19,计算思维,计算思维(computationalthinking)是计算机科学家利用计算机(计算过程)解决问题时的思想和方法.计算机科学(CS)是关于“计算”的科学.如何像计算机科学家一样思考?,LuChaojun,SJTU,20,LuChaojun,SJTU,20,20,真的有计算思维吗?,人们在解决不同问题时有不同的思考方式数学思维:解数学问题工程思维:工程设计形象思维:文学创作.计算思维:建立在计算机的能力与局限之上.由于计算机的广泛应用,计算思维未来会成为人们的基本能力.与阅读,书写,算术能力一样!,计算思维例:问题表示,问题的表示(建模)抽象:将现实中的各种数量关系,空间关系,处理过程抽象为计算机的数据结构和控制结构例如:温度数据抽象为数值还是文字?不同抽象层次问题表示得合适与否直接影响问题的解法的发现和效率,LuChaojun,SJTU,21,计算思维例:算法设计,化难为易:分解,约简,嵌入,转换,模拟.分治法,递归法,贪心法,动态规划.递归地思考并行处理,LuChaojun,SJTU,22,计算思维例:编程实现,类型系统与类型检查结构化与模块化的思考编程范型:过程式,面向对象,函数式,.程序美学,系统设计的简洁与优雅,LuChaojun,SJTU,23,计算思维例:计算理论,算法复杂度分析问题的解法是有效率差别的有些问题是难解的寻求近似解问题的可计算性有些问题是不可计算的,LuChaojun,SJTU,24,计算思维例:其他,预取和缓存对最坏情况的预防,保护,恢复启发式推理时空等不可兼得要素的权衡,LuChaojun,SJTU,25,计算思维的特点,是概念化思考,而非编程是基本思考能力,而非机械的套用是人的思考,而非计算机与数学思维和工程思维相结合是思想,而非人造物人人皆有,处处皆是,LuChaojun,SJTU,26,生活中的计算思维,算法:小学算术中的长除法查找方法:查黄页是顺序翻找还是借助索引排序:整理扑克牌排队:先来先处理预取与缓存:书包存放当天上课用的书并行处理:烧菜,LuChaojun,SJTU,27,计算+X,计算数学,计算几何,自动定理证明计算物理学计算化学计算生物学,生物信息学计算经济学计算机艺术:电影特效,计算机作曲绘画书法,LuChaojun,SJTU,28,计算+X:十二五863计划,征集重大应用软件课题聚变与裂变能源数值模拟真实飞机外型全流场和优化设计数值模拟航天飞行器全飞行流域数值模拟新药研发与蛋白质折叠数值模拟真实感动漫渲染与创作大型工程设备结构力学分析复杂电磁环境数值模拟新型材料设计与性能评估,LuChaojun,SJTU,29,2013年诺贝尔化学奖,多尺度复杂化学系统模型:在多尺度模型的辅助下,化学家们让计算机“做帮手”来揭示化学过程.诺贝尔化学奖评选委员会:对化学家来说,计算机是同试管一样重要的工具,计算机对真实生命的模拟已为化学领域大部分研究成果的取得立下了“汗马功劳”.,LuChaojun,SJTU,30,本课程的定位,学习利用计算机解决问题的思想方法,应用于其他专业领域不是程序设计语言课程!编程是计算思维的实践坏消息:学习编程语言需要掌握非常繁琐的细节好消息:Python语言非常简单,易学易用不是算法和数据结构课程!会学习一些基本的知识,LuChaojun,SJTU,31,本课程的定位(续),LuChaojun,SJTU,32,计算机科学,程序设计语言,算法设计与分析,数据结构,理,化,生.,经,管,金融.,工程,数学,艺术,计算思维,可计算性理论,Python语言,荷兰人GuidovanRossum于1980年代发明.通用/跨平台/开源/自由(免费)简单易学,高度的可读性支持多种编程范型编译+解释:源代码先编译成字节码,再解释执行流行编程语言前10名之一.,LuChaojun,SJTU,33,Python安装与运行,版本:教材和上课都采用Python2.7与最新的Python3.x有不兼容的地方.安装后,启动Python解释器命令行GUI,LuChaojun,SJTU,34,第一个程序:HelloWorld,交互方式printHello,World!Hello,World!本课程的教学中常用交互方式演示新语句实际上很少用交互方式执行程序多次执行同一程序需要多次输入程序多行语句无法一次性执行,LuChaojun,SJTU,35,第一个程序:HelloWorld,程序文件将语句保存在纯文本文件hello.py中四种执行方式在IDLE中用RunModule菜单执行双击hello.py文件图标importhelloC:Python27pythonhello.py,LuChaojun,SJTU,36,printHello,World!,程序构件:数据,数据是被处理的信息有不同类型的数据字符串数据printHello,World!数值数据print3.1415,LuChaojun,SJTU,37,程序构件:变量,和数学类似:用一个名字表示可变的数据数学中多用单字母,程序中多用单词/词组标识符:Python命名以字母或下划线开头,后跟0个或多个字母,数字,下划线.区分大小写字母.合法:xxYzx_123_w3非法:3qx-123firstname良好的命名风格:有意义,风格一致,LuChaojun,SJTU,38,程序构件:表达式,表达式:能计算出一个值.字面值:3.14,“hello”变量数据+运算符(如)2+3*4-5运算符不同类型的数据有不同运算运算符有优先级良好编程风格:用空格,括号增加表达式的可读性.,LuChaojun,SJTU,39,程序构件:语句,输出语句我们用语句模板来给出正确用法printprint,.赋值语句x=3.14printx*10,LuChaojun,SJTU,40,程序构件:函数,多条语句构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025党政领导干部拟任县处级资格考试题及答案
- 2025临床执业医师资格考试模拟试题及答案解析
- 建筑施工合同签订前的合同主体资格审查与合规性审查
- 个人租房合同模板:带租赁保险条款的租赁协议
- 环保自主验收意见模板编制与审核流程合同
- 离婚协议书翻译与跨国离婚法律程序指导合同
- 离婚房产分割与共同财产分割及子女抚养权协议
- 公务员考试题及答案(逻辑推理)
- 知识产权保护与科技成果转化交流合作协议
- 个人股份转让协议书4篇
- 输液并发症静脉炎课件
- 综艺脱口秀节目创意策划及实施方案
- 浪浪山小妖怪-2025~2026学年美术开学第一课《浪浪山小妖怪》
- (2025年标准)盆景购销协议书
- 设计合同结算协议书范本
- 2025广东湛江市廉江市政协办公室等7个单位招聘政府雇员9人笔试参考题库附答案解析
- (2025年标准)婚后债务分离协议书
- 2025广东河源紫金县殡仪馆招聘编外人员2人笔试参考题库附答案解析
- 2025四川南充营山县医疗卫生辅助岗招募39人考试参考题库附答案解析
- 看守所巡控岗位课件
- AIGC艺术设计 课件全套 第1-8章 艺术设计的新语境:AI的介入 -AIGC艺术设计的思考与展望
评论
0/150
提交评论