本科生毕业设计(论文)外文资料译文
( 2020届)
|
论文题目 |
Python课程教学网站设计与实现 |
外文资料译文规范说明
|
一、译文文本要求 1.外文译文不少于3000汉字; 2.外文译文本文格式参照论文正文规范(标题、字体、字号、图表、原文信息等); 3.外文原文资料信息列文末,对应于论文正文的参考文献部分,标题用“外文原文资料信息”,内容包括: 1)外文原文作者; 2)书名或论文题目; 3)外文原文来源: □出版社或刊物名称、出版时间或刊号、译文部分所在页码 □网页地址 二、外文原文资料(电子文本或数字化后的图片): 1.外文原文不少于10000印刷字符(图表等除外); 2.外文原文若是纸质的请数字化(图片)后粘贴于译文后的原文资料处,但装订时请用纸质原文复印件附于译文后。 |
|
指导教师意见: 指导教师签名: 年 月 日 |
一、外文资料译文:
C、MATLAB和Python作为工科教学语言的比较
关键词:编程语言,Python,教学
摘 要
我们描述与比较C、MATLAB和Python作为工科学生的教学语言。在将一个给定的问题转化成一个可以提供解决方案的计算机程序的过程中,我们区分两个不同的阶段:(i)找到一个算法的解决方案(ii)用一个特定的语言实现。有人认为,对学生的理解最重要的是要执行第一步,而在编程语言中实际实现对于学习解决问题的技术则具有第二的重要性。因此,我们建议选择一种结构清晰的教学语言,该语言应提供清晰直观的语法并允许学生快速表达他们的算法。根据我们在工程计算方面的经验,我们发现MATLAB比C更适合于此任务,但是在语言的清晰度和功能方面,最佳选择是Python。
1 介绍
计算机在工程和科学中越来越多地用于各种目的,包括控制,数据分析,仿真和设计优化。 因此,对于工程专业的学生来说,对计算有深入的了解并学习如何编程变得越来越重要。在第2节中,我们建议在计算机编程的算法解决问题部分与使用特定编程语言实现算法的效果之间进行区分。在第3节中,我们描述并比较了MATLAB,C和Python作为潜在的教学语言,并在得出结论之前在第4节中的工程部门中介绍了它们的经验。
2 教学目标
我们理解“计算”这一主题可以广泛地代表使用计算机和数值方法来解决科学和工程问题。 在课程中,我们的目标是超越专用软件包的使用范围,使学生能够编写自己的计算机程序,以深入了解他们可能会遇到的任何软件的功能(至少在原则上)。 在本节中,我们导出对用于教育的编程语言的要求。
通用编程构建块:为了分析编程过程,我们列出了任何计算机程序的主要组成部分(可以更正式地完成,但这里足以满足我们的目的):(i)执行某项操作的语句(例如,将两个数字相加, 执行傅立叶变换,读取传感器),(ii)语句块,(iii)重复块的循环(for循环,foreach循环,while循环,重复直到循环),(iv)条件语句块的执行( if-then语句,case,switch)和(v)将块分组为模块(函数,过程,方法)。
它列出了足以描述顺序算法的一组命令,并且通过将语句分组为模块,可以在此框架内编写大小适中且结构良好的程序。[1]几乎所有的编程语言都提供与所列项目相对应的构造。
解决问题的过程:计算机程序通常用于解决给定的问题。 我们将编写计算机程序的过程分为两个部分:
1.查找算法解决方案(我们将其称为“算法问题解决部分”)和
2.以特定语言实现算法(“实现部分”)。
- 用一些伪代码写成的算法解决方案:
- 用某种编程语言表达算法解决方案的实现。例如,图1显示了执行计算的MATLAB代码[2](对于f(x)= exp(-x2)且a = 0且b = 1)。
尽管在此示例中,算法问题的解决是相对简单的(因为问题是以方程的形式提出的),但总的来说,这是学生面临的主要挑战:将用自然语言模糊地和非正式地描述的问题转换为一系列指令,就是把问题打碎成许多小的部分以便计算机随后解决。实现部分可能很复杂且很耗时,但不(或至少不应该)包含重大的智力挑战。
当然,算法问题解决与实现之间的界限并不明确。但是,很明显,使用不同语言的问题解决算法的不同实现共享相同的基础算法(在这里,我们将其用作算法问题解决部分的定义)。在教学实践中,算法问题解决和实现任务常常很纠结,因为学生需要通过实现它以测试他们发明的算法。
计算中的教学目标:我们认为计算教学的主要目标是使学生能够将工程问题转换为伪代码。 这是一项艰巨的任务,需要分析性思维和创造力。 将伪代码转换为用一种编程语言编写的程序具有次要的重要性,因为从原理上讲,这是一种算法过程,并且所需的知识较少。
因此,教学语言的选择应取决于哪种语言能为学生完成问题解决任务的执行部分提供最好的支持。 (本文的其余部分解决了这个问题。)一旦学生对算法问题解决部分充满信心,他们就可以根据需要学习新的编程语言,以将算法解决方案移植到当前的工作环境中。
3 所用的编程语言的概况
C语言:C语言[1]是一种低级编译语言(有时被归为第三代语言),在学术界,工业界和商业界广泛使用。 Fortran属于同一类别,但是尽管Fortran仍在学术界中经常使用,但在许多工业应用中似乎已被C(和C )所取代。 C 提供了与C不同的编程范例,但是出于这项工作的目的,C 与C的相似性大于与MATLAB或Python的相似性。 编译的底层语言的主要优点是它们的执行速度和效率(例如,在嵌入式系统中)。
MATLAB: MATLAB编程语言是商业MATLAB软件[2]的一部分,该软件通常在研究和行业中使用,并且是高级“脚本”或“第四代”语言的示例。与C语言和其他编译语言最显着的区别是,代码在执行程序时被解释(解释器程序逐行读取源代码并将其即时翻译为机器指令),即无需编译。虽然这降低了执行速度,但使程序员摆脱了内存管理,可以进行动态键入和交互式会话。值得一提的是,用脚本语言编写的程序通常比用编译语言编写的等效程序要短得多,并且花费的代码和调试时间也要少得多。简而言之,在执行时间(对于编译语言而言较小)与开发时间(对于解释语言而言较小)之间需要权衡。
用于教学目的的重要功能是MATLAB(和其他解释语言)进行交互式会话的能力。用户可以在命令提示符下键入一个或多个命令,并在按回车键后立即执行这些命令。这允许对代码的一小部分进行交互式测试(不因编译而引起任何延迟),并鼓励进行试验。使用交互式提示,解释型语言也比编译后的可执行文件更易于调试。
MATLAB软件包随附用于矩阵运算,通用数值方法和数据绘制的复杂库。大学可能必须获得许可,这可能要花费数万英镑。
Python: Python[4]是另一种高级语言,乍一看与MATLAB非常相似:它是解释型语言,具有交互式提示,允许动态键入并提供自动内存管理(并带有内置复数)。
我们将Python包含在这项工作中是因为它在教学方面比MATLAB具有多个优势:(i)Python具有非常清晰,明确和直观的语法,并使用缩进对语句块进行分组。 (ii)Python的命令核心很小,几乎可以提供初学者所需的所有功能。 (iii)Python可以用作完全面向对象的语言,并支持不同的编码样式。 (iv)Python解释器是免费软件(即容易获得),几乎所有平台(包括Windows,Linux / Unix,Mac OS)都存在Python解释器。
值得注意的是,尽管Python诞生仅约十年,但它是一种相对稳定的语言,并且在行业和学术界(目前包括飞利浦,谷歌,NASA,美国海军和迪斯尼等组织)越来越多地使用。它还提供了用于创建和管理大型模块化代码的框架。常用的扩展模块提供对已编译库的访问,其中包括高性能计算[5]和可视化工具。
4 教学经验
在本节中,我们为每种所涉及的语言提供一个简短的程序,该程序执行第2节中的方程式中给出的数值积分。所显示的源代码既未注释,所显示的源代码既未注释,未针对速度和优雅进行优化,也未探讨相应语言的高级功能。这是为了节省空间并代表学生最初使用的编码样式。 然后,我们报告和讨论在一年级和二年级的工程学本科生以及来自不同背景的研究生中教授这三种语言的经验。
使用C:图2显示了一个C语言程序,该程序执行与图1中所示的MATLAB程序相同的计算。与MATLAB程序相比,此代码更长,并且携带大量开销(例如include语句,将主代码包装到主要功能和返回退出状态)。在执行任何语句之前,必须声明变量及其类型。最终,学生需要先编译代码(并链接到数学库),然后才能执行代码。
学生在用C编程时遇到的典型问题是:(i)for循环(和其他块)和范围(由花括号定义)的缩进不一致,因此for循环执行不正确的命令。(ii)缺少分号、大括号、if语句周围的括号,再加上编译器发出的中等有用的错误消息,将停止编译过程。(iii)在函数调用中传递错误类型的值或使用错误格式的标识符标记打印数字;这两个问题都会导致错误的数值结果,学生很难理解和纠正。
尽管对于经验丰富的程序员而言,这些挑战并不是特别困难,但是可以看出,初学者遇到这种框架时会感到困难,而当他们开始使用MATLAB或Python时,困难就大大减少了。
使用MATLAB:图1显示了示例程序。我们通常发现,与使用C相比,学生使用MATLAB进行编程要容易得多,因为MATLAB解决了上面提到的许多问题。
优良作法是在可能的情况下,将代码拆分为小的功能单元,以对程序进行模块化,并能够将其功能分别用于不同的项目。学生在使用MATLAB学习编程中经常遇到的问题之一是约定仅在文件中存储一个(全局可见)函数。这可能会导致大量文件,并且最初学生会觉得使用功能适得其反:必须显示几个文件才能同时查看所有源代码(因此很难遵循屏幕上的程序流程)。一个相关的问题是,在MATLAB中,源文件中指定的函数名称应与包含该函数的源文件的文件名称相同。 (文件名决定了该函数的全局可见名称。)这通常被(学生)忽略,并且是许多错误的来源。
使用Python:图3显示了积分问题的Python实现。通过在第一行中导入数学模块,可以很好地演示名称空间的使用。[3]
第7行中的range命令返回一个整数列表(范围从1到n,但不包括n),i在后续迭代中引用。这里使用的for循环实际上是for-each循环,因为对于整数列表中的每个元素,都会执行循环的主体。通常,for-each循环比for循环更为强大,尽管此处未加以利用。 (请注意,尽管这里的语法使这种情况不太明显,但MATLAB中的for循环也是for-each循环。)
在教学程序设计中,for-each循环主体中的语句块仅受缩进限制是非常有益的,因为花了很多时间鼓励学生确保实际的块定界符(C中的大括号{}, MATLAB中的for和end关键字)与所选缩进一致(因为我们对程序结构的感知是由缩进引起的)。两者之间的任何分歧都可能表示错误。
Python提供了一个环境,该环境解决了我们在讲授C和MATLAB时观察到的大多数问题。在开始使用Python进行编程以及在直观环境中进行欣赏和实验时,学生遇到的问题相对较少。
高级例子:解释Python之所以普遍成为第一门编程语言的原因,超出了本文的范围(例子参见[6])。 取而代之的是,我们介绍了Python中积分程序的一个逻辑扩展的实现,并将其与C和
剩余内容已隐藏,支付完成后下载完整资料
本科生毕业设计(论文)外文资料译文
( 2020届)
|
论文题目 |
Python课程教学网站设计与实现 |
外文资料译文规范说明
|
一、译文文本要求 1.外文译文不少于3000汉字; 2.外文译文本文格式参照论文正文规范(标题、字体、字号、图表、原文信息等); 3.外文原文资料信息列文末,对应于论文正文的参考文献部分,标题用“外文原文资料信息”,内容包括: 1)外文原文作者; 2)书名或论文题目; 3)外文原文来源: □出版社或刊物名称、出版时间或刊号、译文部分所在页码 □网页地址 二、外文原文资料(电子文本或数字化后的图片): 1.外文原文不少于10000印刷字符(图表等除外); 2.外文原文若是纸质的请数字化(图片)后粘贴于译文后的原文资料处,但装订时请用纸质原文复印件附于译文后。 |
|
指导教师意见: 指导教师签名: 年 月 日 |
一、外文资料译文:
C、MATLAB和Python作为工科教学语言的比较
关键词:编程语言,Python,教学
摘 要
我们描述与比较C、MATLAB和Python作为工科学生的教学语言。在将一个给定的问题转化成一个可以提供解决方案的计算机程序的过程中,我们区分两个不同的阶段:(i)找到一个算法的解决方案(ii)用一个特定的语言实现。有人认为,对学生的理解最重要的是要执行第一步,而在编程语言中实际实现对于学习解决问题的技术则具有第二的重要性。因此,我们建议选择一种结构清晰的教学语言,该语言应提供清晰直观的语法并允许学生快速表达他们的算法。根据我们在工程计算方面的经验,我们发现MATLAB比C更适合于此任务,但是在语言的清晰度和功能方面,最佳选择是Python。
1 介绍
计算机在工程和科学中越来越多地用于各种目的,包括控制,数据分析,仿真和设计优化。 因此,对于工程专业的学生来说,对计算有深入的了解并学习如何编程变得越来越重要。在第2节中,我们建议在计算机编程的算法解决问题部分与使用特定编程语言实现算法的效果之间进行区分。在第3节中,我们描述并比较了MATLAB,C和Python作为潜在的教学语言,并在得出结论之前在第4节中的工程部门中介绍了它们的经验。
2 教学目标
我们理解“计算”这一主题可以广泛地代表使用计算机和数值方法来解决科学和工程问题。 在课程中,我们的目标是超越专用软件包的使用范围,使学生能够编写自己的计算机程序,以深入了解他们可能会遇到的任何软件的功能(至少在原则上)。 在本节中,我们导出对用于教育的编程语言的要求。
通用编程构建块:为了分析编程过程,我们列出了任何计算机程序的主要组成部分(可以更正式地完成,但这里足以满足我们的目的):(i)执行某项操作的语句(例如,将两个数字相加, 执行傅立叶变换,读取传感器),(ii)语句块,(iii)重复块的循环(for循环,foreach循环,while循环,重复直到循环),(iv)条件语句块的执行( if-then语句,case,switch)和(v)将块分组为模块(函数,过程,方法)。
它列出了足以描述顺序算法的一组命令,并且通过将语句分组为模块,可以在此框架内编写大小适中且结构良好的程序。[1]几乎所有的编程语言都提供与所列项目相对应的构造。
解决问题的过程:计算机程序通常用于解决给定的问题。 我们将编写计算机程序的过程分为两个部分:
1.查找算法解决方案(我们将其称为“算法问题解决部分”)和
2.以特定语言实现算法(“实现部分”)。
- 用一些伪代码写成的算法解决方案:
- 用某种编程语言表达算法解决方案的实现。例如,图1显示了执行计算的MATLAB代码[2](对于f(x)= exp(-x2)且a = 0且b = 1)。
尽管在此示例中,算法问题的解决是相对简单的(因为问题是以方程的形式提出的),但总的来说,这是学生面临的主要挑战:将用自然语言模糊地和非正式地描述的问题转换为一系列指令,就是把问题打碎成许多小的部分以便计算机随后解决。实现部分可能很复杂且很耗时,但不(或至少不应该)包含重大的智力挑战。
当然,算法问题解决与实现之间的界限并不明确。但是,很明显,使用不同语言的问题解决算法的不同实现共享相同的基础算法(在这里,我们将其用作算法问题解决部分的定义)。在教学实践中,算法问题解决和实现任务常常很纠结,因为学生需要通过实现它以测试他们发明的算法。
计算中的教学目标:我们认为计算教学的主要目标是使学生能够将工程问题转换为伪代码。 这是一项艰巨的任务,需要分析性思维和创造力。 将伪代码转换为用一种编程语言编写的程序具有次要的重要性,因为从原理上讲,这是一种算法过程,并且所需的知识较少。
因此,教学语言的选择应取决于哪种语言能为学生完成问题解决任务的执行部分提供最好的支持。 (本文的其余部分解决了这个问题。)一旦学生对算法问题解决部分充满信心,他们就可以根据需要学习新的编程语言,以将算法解决方案移植到当前的工作环境中。
3 所用的编程语言的概况
C语言:C语言[1]是一种低级编译语言(有时被归为第三代语言),在学术界,工业界和商业界广泛使用。 Fortran属于同一类别,但是尽管Fortran仍在学术界中经常使用,但在许多工业应用中似乎已被C(和C )所取代。 C 提供了与C不同的编程范例,但是出于这项工作的目的,C 与C的相似性大于与MATLAB或Python的相似性。 编译的底层语言的主要优点是它们的执行速度和效率(例如,在嵌入式系统中)。
MATLAB: MATLAB编程语言是商业MATLAB软件[2]的一部分,该软件通常在研究和行业中使用,并且是高级“脚本”或“第四代”语言的示例。与C语言和其他编译语言最显着的区别是,代码在执行程序时被解释(解释器程序逐行读取源代码并将其即时翻译为机器指令),即无需编译。虽然这降低了执行速度,但使程序员摆脱了内存管理,可以进行动态键入和交互式会话。值得一提的是,用脚本语言编写的程序通常比用编译语言编写的等效程序要短得多,并且花费的代码和调试时间也要少得多。简而言之,在执行时间(对于编译语言而言较小)与开发时间(对于解释语言而言较小)之间需要权衡。
用于教学目的的重要功能是MATLAB(和其他解释语言)进行交互式会话的能力。用户可以在命令提示符下键入一个或多个命令,并在按回车键后立即执行这些命令。这允许对代码的一小部分进行交互式测试(不因编译而引起任何延迟),并鼓励进行试验。使用交互式提示,解释型语言也比编译后的可执行文件更易于调试。
MATLAB软件包随附用于矩阵运算,通用数值方法和数据绘制的复杂库。大学可能必须获得许可,这可能要花费数万英镑。
Python: Python[4]是另一种高级语言,乍一看与MATLAB非常相似:它是解释型语言,具有交互式提示,允许动态键入并提供自动内存管理(并带有内置复数)。
我们将Python包含在这项工作中是因为它在教学方面比MATLAB具有多个优势:(i)Python具有非常清晰,明确和直观的语法,并使用缩进对语句块进行分组。 (ii)Python的命令核心很小,几乎可以提供初学者所需的所有功能。 (iii)Python可以用作完全面向对象的语言,并支持不同的编码样式。 (iv)Python解释器是免费软件(即容易获得),几乎所有平台(包括Windows,Linux / Unix,Mac OS)都存在Python解释器。
值得注意的是,尽管Python诞生仅约十年,但它是一种相对稳定的语言,并且在行业和学术界(目前包括飞利浦,谷歌,NASA,美国海军和迪斯尼等组织)越来越多地使用。它还提供了用于创建和管理大型模块化代码的框架。常用的扩展模块提供对已编译库的访问,其中包括高性能计算[5]和可视化工具。
4 教学经验
在本节中,我们为每种所涉及的语言提供一个简短的程序,该程序执行第2节中的方程式中给出的数值积分。所显示的源代码既未注释,所显示的源代码既未注释,未针对速度和优雅进行优化,也未探讨相应语言的高级功能。这是为了节省空间并代表学生最初使用的编码样式。 然后,我们报告和讨论在一年级和二年级的工程学本科生以及来自不同背景的研究生中教授这三种语言的经验。
使用C:图2显示了一个C语言程序,该程序执行与图1中所示的MATLAB程序相同的计算。与MATLAB程序相比,此代码更长,并且携带大量开销(例如include语句,将主代码包装到主要功能和返回退出状态)。在执行任何语句之前,必须声明变量及其类型。最终,学生需要先编译代码(并链接到数学库),然后才能执行代码。
学生在用C编程时遇到的典型问题是:(i)for循环(和其他块)和范围(由花括号定义)的缩进不一致,因此for循环执行不正确的命令。(ii)缺少分号、大括号、if语句周围的括号,再加上编译器发出的中等有用的错误消息,将停止编译过程。(iii)在函数调用中传递错误类型的值或使用错误格式的标识符标记打印数字;这两个问题都会导致错误的数值结果,学生很难理解和纠正。
尽管对于经验丰富的程序员而言,这些挑战并不是特别困难,但是可以看出,初学者遇到这种框架时会感到困难,而当他们开始使用MATLAB或Python时,困难就大大减少了。
使用MATLAB:图1显示了示例程序。我们通常发现,与使用C相比,学生使用MATLAB进行编程要容易得多,因为MATLAB解决了上面提到的许多问题。
优良作法是在可能的情况下,将代码拆分为小的功能单元,以对程序进行模块化,并能够将其功能分别用于不同的项目。学生在使用MATLAB学习编程中经常遇到的问题之一是约定仅在文件中存储一个(全局可见)函数。这可能会导致大量文件,并且最初学生会觉得使用功能适得其反:必须显示几个文件才能同时查看所有源代码(因此很难遵循屏幕上的程序流程)。一个相关的问题是,在MATLAB中,源文件中指定的函数名称应与包含该函数的源文件的文件名称相同。 (文件名决定了该函数的全局可见名称。)这通常被(学生)忽略,并且是许多错误的来源。
使用Python:图3显示了积分问题的Python实现。通过在第一行中导入数学模块,可以很好地演示名称空间的使用。[3]
第7行中的range命令返回一个整数列表(范围从1到n,但不包括n),i在后续迭代中引用。这里使用的for循环实际上是for-each循环,因为对于整数列表中的每个元素,都会执行循环的主体。通常,for-each循环比for循环更为强大,尽管此处未加以利用。 (请注意,尽管这里的语法使这种情况不太明显,但MATLAB中的for循环也是for-each循环。)
在教学程序设计中,for-each循环主体中的语句块仅受缩进限制是非常有益的,因为花了很多时间鼓励学生确保实际的块定界符(C中的大括号{}, MATLAB中的for和end关键字)与所选缩进一致(因为我们对程序结构的感知是由缩进引起的)。两者之间的任何分歧都可能表示错误。
Python提供了一个环境,该环境解决了我们在讲授C和MATLAB时观察到的大多数问题。在开始使用Python进行编程以及在直观环境中进行欣赏和实验时,学生遇到的问题相对较少。
高级例子:解释Python之所以普遍成为第一门编程语言的原因,超出了本文的范围(例子参见[6])。 取而代之的是,我们介绍了Python中积分程序的一个逻辑扩展的实现,并将其与C和
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[273426],资料为PDF文档或Word文档,PDF文档可免费转换为Word
您可能感兴趣的文章
- 饮用水微生物群:一个全面的时空研究,以监测巴黎供水系统的水质外文翻译资料
- 步进电机控制和摩擦模型对复杂机械系统精确定位的影响外文翻译资料
- 具有温湿度控制的开式阴极PEM燃料电池性能的提升外文翻译资料
- 警报定时系统对驾驶员行为的影响:调查驾驶员信任的差异以及根据警报定时对警报的响应外文翻译资料
- 门禁系统的零知识认证解决方案外文翻译资料
- 车辆废气及室外环境中悬浮微粒中有机磷的含量—-个案研究外文翻译资料
- ZigBee协议对城市风力涡轮机的无线监控: 支持应用软件和传感器模块外文翻译资料
- ZigBee系统在医疗保健中提供位置信息和传感器数据传输的方案外文翻译资料
- 基于PLC的模糊控制器在污水处理系统中的应用外文翻译资料
- 光伏并联最大功率点跟踪系统独立应用程序外文翻译资料
