猜你喜欢
科学计算基础编程——Python版 (第五版)(面向新工科专业建设计算机系列教材)

科学计算基础编程——Python版 (第五版)(面向新工科专业建设计算机系列教材)

书籍作者:汉斯.佩特.兰坦根(Hans ISBN:9787302549437
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:7078
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书通过数学和自然科学中的计算例子来讲授计算机程序设计。选择语法简单紧凑且功能强大的Python语言作为编程语言。本书关注于问题的计算求解过程,而不是程序语言细节,书中使用了大量的案例,并专注问题定义、分析和程序求解以及程序正确性验证。通过本书的学习,读者将能使用程序员的方式进行思考,并能写出正确优质的程序。

作者简介

张春元,国防科技大学计算机学院副院长,博士,教授,博士生导师,计算机体系结构专家,学术带头人,著有《计算机体系结构》等教材。 毛晓光,国防科技大学计算机学院计算机系副主任,博士,教授,博士生导师,著有《离散数学》等教材。

前言

译者序

使用全书内容的课堂教学时间约为90h左右,包括全书第1章到第9章的内容和附录的全部内容。这90h分解为40h+50h两个部分,前40h主要关注有效解决问题,后50h重点放在高效解决问题上。

前40h建议完成本书第1章到第5章,同时把附录A、附录B、附录C作为案例纳入教学活动,不单独作为课堂系统讲授的内容。以下章节可以不作为必须讲授的教学内容: 第1章的1.6节和1.7节,第4章的4.3节和4.4节,第5章的5.7节~5.12节(如果同期或先期开设了“线性代数”课程,可以讲授5.8节和5.9节)。这部分内容的教学目标: 通过少量代码,解决多个专业领域的计算和数据处理问题,不求高效,但求有效。

后50h的课堂教学时间可以完成教材其他内容的教学。这一部分的教学重点是解决问题的方法、技巧、工具和案例,通过大量编程实践,提升学生编程效率和利用程序求解问题的效率。学习类、面向对象、高性能计算、CPU和存储器效率分析等,训练编写和使用较大规模的软件的能力,使学生在后续的学习和工作中不再担忧计算机编程,包括C/C++、Java、FORTRAN等。这一部分课程的教学目标是复杂计算和数据处理问题的高效求解。

无论教学时数是多少,附录F和附录H都是教师需要阅读和实践的内容。

一个一直有争议的话题是: 选择Python 2还是Python 3?由于历史原因,本书使用Python 2。这些年我们在教学实施过程中,课堂讲授按照Python 2进行,课后实训和作业采用Python 2和Python 3混合模式,考试采用Python 3,效果比较令人满意。其实本书第1章到第5章中Python 2和Python 3的差异很容易理解,学生通过40h左右的训练,对这种计算机语言的差异也渐渐习惯了,这对于学生跨越计算机语言心理障碍是非常有益的。

本书特别强调编程实践。根据这些年的教学实践,课堂教学时间中有一半左右用于课堂实践,边讲边练。课后更要有充分的作业,开展编程训练,课内外时间比例应不少于1∶1,实际上,不少学生达到1∶3。如果有较好的在线训练平台,可以提升教学效果。我们的很多教学活动就是通过学院教师研制的educoder网站(www.educoder.net)开展的。

教学活动的效果不仅取决于教材、教师、作业、考试,更取决于教学活动实施者对课程教学目标的理解。以往的教学突出计算机相关知识的学习和理解,导致学生的主要学习活动是完成较高比例的记忆训练。这些年,我们有组织地深入学习和研究教育学的理论,把已经证明有效的教学法逐步运用在本课程的教学活动中,全程采用参与式教学、形成性评价、做中学、无标作业、群组学习、游戏化作业、跨学科问题求解等一系列方法,把能力训练作为课程产出,来保证本课程教学目标的达成。

最后,我从国际工程教育专业认证(Washington Accord)的角度来简单分析这门课程,供感兴趣的教师和教学管理者参考。我认为,对于所有专业的本科生,本书都是实施以学生为中心、以成果(产出)为导向(OutcomesBased Education,OBE)教学原则的理想教材。针对国际工程教育专业认证中毕业要求的12个指标点,这里按照“支撑”“弱支撑”(不系统、不深入支撑标点中的内容)、“部分支撑”(不全面支撑指标点中的内容)和“不支撑”4个支撑强度进行简单分类,这门课程对12个指标点的支撑可以描述如下:

(1) (支撑)工程知识。能够将数学、自然科学、工程基础和专业知识用于解决复杂工程问题。

(2) (支撑)问题分析。能够应用数学、自然科学和工程科学的基本原理,识别、表达并通过文献研究分析复杂工程问题,以获得有效结论。

(3) (弱支撑、部分支撑)设计/开发解决方案。能够设计针对复杂工程问题的解决方案,设计满足特定需求的系统、单元(部件)或工艺流程,并能够在设计环节中体现创新意识,考虑社会、健康、安全、法律、文化以及环境等因素。

(4) (部分支撑)研究。能够基于科学原理并采用科学方法对复杂工程问题进行研究,包括设计实验、分析与解释数据,并通过信息综合得到合理、有效的结论。

(5) (支撑)使用现代工具。能够针对复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对复杂工程问题的预测与模拟,并能够理解其局限性。

(6) (弱支撑)工程与社会。能够基于工程相关背景知识进行合理分析,评价专业工程实践和复杂工程问题解决方案对社会、健康、安全、法律、文化以及环境的影响,并理解应承担的责任。

(7) (不支撑)环境和可持续发展。能够理解和评价针对复杂工程问题的工程实践对环境、社会可持续发展的影响。

(8) (弱支撑)职业规范。具有人文社会科学素养和社会责任感,能够在工程实践中理解并遵守工程职业道德和规范,履行责任。

(9) (部分支撑,如果课程中设计了分组作业和讲评)个人和团队。能够在多学科背景下的团队中承担个体、团队成员以及负责人的角色。

(10) (弱支撑)沟通。能够就复杂工程问题与业界同行及社会公众进行有效沟通和交流,包括撰写报告和设计文稿、陈述发言、清晰表达或回应指令,并具备一定的国际视野,能够在跨文化背景下进行沟通和交流。

(11) (不支撑)项目管理。理解并掌握工程管理原理与经济决策方法,并能在多学科环境中应用。

(12) (支撑)终身学习。具有自主学习和终身学习的意识,有不断学习和适应发展的能力。

大学新生通过本课程的学习,在以后的数学、物理学、自然科学和本专业等课程学习中,既可以深化对本课程知识的理解和应用,例如“概率与统计”课程可以直接采集网络数据进行大数据统计分析,更可以促进专业课的深化训练,例如“人工智能”课程可以直接使用多种深度学习算法对特定应用领域的数据进行训练。这些年的实践让教师深刻地体会到: 引导+放手,给学生信任,学生一定会还给你惊喜。

计算机技术按照摩尔定律发展,计算机专业老师的压力是持续存在的,各方面对计算机公共基础课程教学的要求越来越高。我很庆幸找到了一个能够说服自己并且可以实施的教学改革方案,很庆幸学院有一支特别热爱教学的教师队伍,很庆幸学校和学院领导以及相关部门给予我们的政策、财力和物力的保障。

本书翻译由张春元负责组织多位老师合作完成: 前言、第1章、附录A、附录B、附录C、附录F、附录G由张春元完成,第2章、第6章、附录H由陈立前完成,第3章由周会平完成,第4章由李暾完成,第5章、第8章由毛晓光完成,第7章、第9章、附录D由刘万伟完成,附录E由多位老师联合完成。

原书作者有一套教学课件,为使用本书的教师提供指导性素材。刘万伟老师结合自己的教学,把这些课件翻译成中文,并对其中少量内容和错误做了订正,作为配套教学资源提供给读者。

由于参加翻译工作的老师都承担了繁重的教学、科研和管理工作,本书的翻译工作持续了两年多时间,特别给等待本书中文版的同仁们致歉。

感谢Knut Martin教授为本书中文版撰写了序言。

感谢清华大学出版社为本书翻译版权、出版和发行所做的大量细致工作。

本书的作者Hans Petter Langtangenhttp://hplgit.github.io/homepage/cv.pdf。教授(1962—2016)因病英年早逝。后来我才知道,在我们交流的后期,他已经确诊身染重病,我们多次邀请他来学校交流,他均未成行。本书中文版也是对这位勤奋、和蔼、开放、有责任感、有造诣的科学家的纪念。

限于译者的学养,译文中不当之处在所难免,欢迎同行和读者批评指正。

“大学计算”课程仅仅是CSE教学改革计划的开始,我校在部分专业的“大学物理”课程中已经开始CSE教学改革计划的后续试点工作,已经有专业开始着手在后续的工程类专业课程教学中推进试点。

祝大家顺利!


张春元

2019年夏于长沙国防科技大学计算机学院


产品特色