前言
你会在黑暗中看到光明,你会对这一切有一定的了解[1]。
光学是一门“赋能科学”,有着无数的应用。“光学和光子学技术无处不在: 它们负责制造智能手机和计算设备上的显示屏、携带互联网信息的光纤、先进的精密制造、增强的国防能力以及大量的生物医疗应用,如诊断工具。光学和光子学带来的机遇有可能在未来几十年产生更大的社会影响,包括太阳能发电和新的高效照明,这可能改变世界的能源格局,以及新的光学能力,这对于支持互联网的持续指数增长至关重要[2]。”事实上,如果20世纪是电子的世纪,21世纪就是光子的世纪。因此,对光学的理解对于每一个物理和工程专业的学生来说都是必不可少的。
本书起源于2013年,当时我们中的Vasudevan Lakshminarayanan与一名本科暑期实习生Ritambhar Burman先生(现在是迈阿密大学生物医学工程系的研究生)合作,使用开源编程语言Python开发了一套关于光学各个方面的计算模块[3]。同时,我们决定将最初的尝试进一步扩展为一套更完整的程序和仿真。该项目的第一份报告于2015年在法国波尔多举行的国际光年光学和光子学教育和培训会议上发表。这已经得到了进一步的扩展,部分成果在本书中提供,并且项目得到进一步扩展,本书也提供了部分成果。
为什么要进行仿真?作为教育工作者,我们关心的是让学生理解,一般的物理学,特别是光学,不仅仅是一套数学关系式,这些数学关系式只是描述物理现象的速记。对学生来说,学习关系式背后的概念至关重要。这些概念可以在实验室学习。考虑到没有实验室设施(许多发展中国家都有这种情况),或时间有限而无法进行实验室练习的情况,简单的办法是在计算机上做仿真,以便学生看到在特定情况下改变各种变量的效果。Lakshminarayanan等的论文[4]对此有详细的讨论。可以说,仿真是主动学习教学法的重要组成部分; 有大量证据表明,主动学习教学法优于传统教育方法[5]。
第二个目的是使学生能够适应编写和分析计算机代码的任务,从而具备计算机知识。物理科学或工程专业的学生必须具备一些编程知识,这是现实中的必需要求。考虑到语言的多种多样,显而易见的问题是选择“哪一种”?
我们选择Python的原因有很多。
Python是一种解释性的、交互式的、面向对象的编程语言。它是开放源码的,易于学习。此外,它有一套非常简单和优雅的语法。初学者会发现其简洁的语法和缩进结构很容易学习。像许多其他脚本语言一样,它是免费的,甚至出于商业目的,它几乎可以在任何现代计算机上运行。Python程序由解释器自动编译成独立于平台的代码,然后进行解释。完全相同的源代码被不同的操作系统以相同的方式理解,确保了完美的跨平台兼容性。Python目前已经开发了大量的专业模块或应用程序。使用Python的其他优点将在其他部分讨论[4,6]。
最后,我们要感谢出版商CRC出版社/泰勒和弗朗西斯对本书的大力支持。特别感谢Ashley Gasque女士的最初努力,以及随后Marc Gutierrez先生的努力。对多学科和应用光学系列的采购编辑诺拉·科诺普卡女士也致以谢意。与这些人一起工作是一件非常愉快的事情。
[加拿大]瓦苏德万·拉克希米纳拉亚南
[突尼斯]哈桑·加利拉和艾哈迈德·阿马尔
[印度]拉马纳塔姆·斯里尼瓦萨·瓦达拉贾南
前言参考文献
[1]The Police.“Secret Journey” in The Ghost in the Machine,Track 10.A&M Records,1981.
[2]National Research Council.Optics and Photonics Essential Technologies for our Nation.National Academies Press,Washington,DC,2013.
[3]Vasudevan Lakshminarayanan and Ritambhar Burman.Optics tutorials with Python. Technical report,University of Waterloo,Canada,2015.Technical Report.DOI: 10.13140/RG.2.1.2940.2325.
[4]Vasudevan Lakshminarayanan,Hassen Ghalila,Ahmed Ammar,and Srinivasa Varadharajan.Role of simulations in optics education.Proc.SPIE 9946,Optics Education and Outreach IV,doi: 10.1117/12.2236159.
[5]Scott Freeman,Sarah L Eddy,Miles McDonough,Michelle K Smith,Nnadozie Okoroafor,Hannah Jordt,and Mary Pat Wenderoth.Active learning increases student performance in science,engineering and mathematics.Proc.Natl.Acad.Sci.(USA),111(23): 84108415,2014.
[6]Vasudevan Lakshminarayanan.Scientific Computation with Python,Book Review,Contemporary Physics.http://dx.doi.org/10.1080/00107514.2017.1312543,2017.
