Skip to content

本科生模拟教学——四位资深教师的四问

  • Academic

挑战

作者:Jeffrey S. Smith(奥本大学)、Christos Alexopoulos(佐治亚理工学院)、Shane G. Henderson(康奈尔大学)和 Lee Schruben(加州大学伯克利分校)

在 2017 年冬季模拟大会上发表

这篇论文和相应的小组会议重点关注本科工业工程/运营研究相关仿真课程的教学。这种形式汇集了四位经验丰富的讲师,讨论涉及课程结构和主题大纲、使用的印刷和软件教材以及一般教学方法/理念的四个问题。希望为新教师和即将成为教师的人员提供一些基于经验的教学信息,并引起仿真教育界的讨论。

1.1. 引言

本文及相应小组会议的目的是讨论本科工业工程/运筹学相关仿真课程的教学问题。我们选择的机制是让四位经验丰富的教师回答关于他们的课程、教材和教学方法/理念的四个常见问题。在回答问题的同时,我们还简要讨论了我们的个人经验(包括好的和坏的)--毕竟经验是最好的老师。虽然在论文中无法实现,但我们也希望这些问题能激发听众参与小组讨论。本文的编排方式是,四个问题各为一个主要部分(第 2-5 节),每位与会者的 "回答 "为问题部分下的一个小节。最后,我们做一些总结。

解决方案

2.您的课程是什么形式的,主要涉及哪些主题?

2.1 史密斯

我们的课程(模拟)每周 2 课时+3 实验课时,学期 16 周。在过去几年中,我们开始引入视频片段来补充讲座和实验。主要内容包括

  • 队列网络基础--在随机运筹学的先修课程中,学生们将学习到大量的单服务器队列分析。通过介绍 M/G/1,并将各种服务分布与 M/M/1 结果进行比较,我们主要侧重于分析杰克逊网络和可变性的影响。随后,我们将使用仿真模型重温这一概念,并扩展到涉及非马尔可夫分布和宽松排队假设的网络分析。
  • 蒙特卡罗模拟 - 我们将介绍蒙特卡罗的基础知识,并通过几个示例模型进行分析。我们从实用的角度介绍随机变量的生成。我们使用单输出蒙特卡罗模型,在仿真建模的背景下介绍/重新介绍抽样、参数估计和抽样误差的概念。我们使用 Barry Nelson 的 MORE plot(Nelson,2008 年)来讨论误差与风险的基本原理。
  • 离散事件仿真 - 我们介绍了事件、系统状态、事件日历和样本路径生成/分析的基本概念。学生将在实验练习中手动生成和分析一个简单队列系统的样本路径。
  • 面向过程的仿真和 Simio - 我们讨论面向过程的观点及其在 Simio 中的实现。
  • 输入分析 - 我们将介绍单变量输入、分布拟合和参数估计以及拟合评估的基本内容。
  • 输出分析和实验 - 我们重点介绍评估和控制抽样误差、基本排序和选择以及实验策略和实践。最后,我们将介绍使用 OptQuest 插件进行基于模拟的优化。

2.2 阿列克索普洛斯

佐治亚理工学院的所有仿真课程(本科生和硕士生)都完全基于讲座。在过去三年中,硕士课程与本科高级课程联合开设。在 20 世纪 90 年代中期之前,本科生课程包括每周两小时的讲座和一次三小时的实验。这种方法比现在每周三个课时的方法效果更好,但教授也要负责实验课的教学,而且没有额外的学分。这一变化发生在从季度制改为学期制的过程中。

本科生和硕士生课程涵盖了 Banks 等人(2009 年)和 Law(2015 年)经典文本中的所有理论主题,但实验设计和方差缩小技术除外。这两门课程的骨架都由杰夫上述清单中的项目组成,但每个主题的覆盖范围取决于班级。在此,我想指出,在输入数据分析的教学过程中,我会用 60-90 分钟介绍独立数据集的核密度估计 (KDE)。随着具有多种模式的 "大数据 "的出现,这一主题变得更加重要。通过 Matlab、Python 和 R 中的大量函数,可以非常容易地处理 KDE 的拟合,同时还可以有效地从拟合的密度中进行采样,例如通过 Hörmann 和 Leydold(2000 年)第 3 节中的算法。排序和选择方法通过一小部分幻灯片以及 Kim 和 Nelson 在 Arena 和 Simio 中的 "插件 "进行讲解,而基于仿真的优化则通过 OptQuest 插件进行 "即时 "讲解。本科生的课程涵盖了大量建模主题,包括车辆系统和传送带的仿真。对建模的重视是非常重要的,因为我们的高级设计课非常严格,其中的项目往往涉及大量仿真建模和分析的结合。

2.3 亨德森

康奈尔大学的 ORIE 4580 仿真建模与分析是蒙特卡罗和离散事件仿真的入门课程,前提条件是大二水平的概率/统计学和第二门编程课程。该班人数众多,约有 200 名学生,其中 110 人为本科生,90 人为硕士生。这门为期一学期的课程包括每周两次 75 分钟的讲座和一次 2 小时的背诵(实验)。其中五次讲座与学习如何使用特定的离散事件仿真软件包有关,是 "翻转式 "的。课程可分为上下两部分,上半部分涵盖蒙特卡罗仿真的基本知识,下半部分继续学习离散事件仿真。上半部分从回顾概率概念开始,通过终止仿真的输出分析、随机数生成、随机变量生成、随机过程生成、输入分析进行,最后是方差缩小(反求法)。下半部分从回顾排队理论开始,通过手工模拟、使用模拟软件包建模(授课内容翻转),花一些时间比较替代系统,最后讨论验证、确认、认证和项目管理。

2.4 斯鲁本

我在康奈尔大学和伯克利大学教授的本科模拟课程都采用相同的形式:每周 2 到 3 次讲座、一次实验/复习练习、两次考试和一个学期产品。两所学校都有学期课程。我只教过一次季度课程(在佛罗里达),但并不顺利。我的总体目标是挑战学生,让他们认识并提出有理有据的问题,并找出答案背后的假设。他们还要学会评估每个假设是趋于乐观还是悲观,并尝试通过敏感性分析找出其重要程度。
在结构上,我的课程是艺术、科学和技术的混合:

  • 艺术:在我的本科课程中,大约有一半的时间我们都在探索不同的动力学建模方法。我认为,我的学生能够从不同的视角看到系统如何随时间变化,这一点非常重要。在高层次上:他们从驻留实体(资源或服务器,如机场登机口)和瞬时实体(如机场乘客)的角度来定义系统。对于许多工业工程系统(如排队网络或供应链)来说,这两种视角都很自然。它们在数学上是双重视角(利特定律将服务器所看到的时间平均值(其队列)与每位客户所关心的计数平均值(其等待时间)联系起来)。学生们将学习如何从居民实体的角度,用非常小和快速的模拟来为非常大的系统建模。在这门课程的建模 "艺术 "部分,我们使用了三种不同类型的图形和大量图片(可应要求提供)。对于离散事件模拟,我们首先使用事件图(Schruben,1983 年)将系统视为基本事件关系,然后使用随机 Petri 网(Haas,2002 年)将系统视为居民-实体活动交互,最后使用实体流图将系统视为瞬态实体流过程,实体流图使用了 GPSS 的 7 个基本模块(生成、终止、排队、出发、前进、抓取发布和测试);我喜欢 GPSS 的形状,它们为学生提供了视觉强化(让他们以后看到现代软件时会更加欣赏)。使用这三种图形工具可以为同一个系统建立不同的模型,每个模型都有不同的优缺点。在教授建模艺术时,从不同的角度和世界观来看待系统,图片比软件重要得多。没有一种单一的范式能理想地解决他们在职业生涯中会遇到的所有问题。
  • 科学:这是我们研究随机性建模(输入建模)和模拟数据分析(输出分析)的地方。我们将介绍有关伪随机数、随机变量生成和过程的常规材料,重点是依赖性和非平稳性建模。然后,我们将介绍批量平均值、运行初始化和控制、方差缩小技术和体验式设计,重点是模拟响应优化和灵敏度。其中最受欢迎的是,我向他们展示了如何在只知道三角形和矩形面积公式的情况下,应用 cdf 反演来优化 "新闻供应商问题"(有机会边喝啤酒边问我)。为了活跃气氛,大卫-戈德曼(David Goldsman)曾经给我发过一个 VBA 程序,做得特别好,也很有趣。萨姆-萨维奇(Sam Savage)给我发了一个有独立边际变量的 excel 程序,其散点图是一张快乐的脸。我曾尝试用游戏和竞赛来减少枯燥,但都不奏效,除非我抛出我的双头硬币来证明抛 3 次硬币和抛 3 次硬币是不一样的(这是一堂比听起来更深刻的课)。
  • 技术:就像我教给学生 3 种图形建模世界观一样,我也向他们介绍了 3 种软件包。对于事件建模(我已经使用了 Sigma,但正在转向 Tao--我希望在本次会议上介绍它。)我让他们使用 Bio-G.com(免责声明,我是联合创始人之一)的 RTMS 建立超大规模活动模型模拟。他们了解如何使用 Simio、Automod、GPSS、Siman、Slam、Flexsim、Arena 和/或 Promodel 模拟瞬时实体流模型。我最近一直对 Simio 感到满意,主要是因为它不需要我做任何工作,而且上课时间也不多。我只需将助教指向 Jeff Smith 的在线资源(http://jsmith.co/node/26)。一旦我的学生学会了如何使用事件图建模,就会很容易想到这些图是由居民实体活动周期或流程路径组成的--每个例子大约需要半小时。我之所以教学生 3 种世界观和至少 3 种软件实现,是因为就像生活中的所有事情一样,如果一个人只知道两件 "事情"(政治、宗教、模拟),他只能看到不同之处;他必须知道至少三件事情,才能看到相似之处(不止一件事情,才能看到任何事情)。对于新教师:我在课程中投入的艺术细胞越多,我的教学评价就越高。我不知道是学生太喜欢艺术,还是他们不喜欢科学(枯燥?我的课程评价中位数从并列本系第三差到每项都是满分不等。

3.您使用哪些书籍、论文和其他学习材料,您对这些材料满意吗?

3.1 史密斯

我使用我们的教科书(Smith 等,2017 年)作为本科生和研究生入门模拟课程的主要教材。此外,我还使用了大量来自 Law (2015)、Banks 等人 (2009) 的补充材料,以及我在教学生涯中收集的几篇 WSC 论文和相关资源。在过去的 5 年中,我开始使用大量的视频模块来补充我们的讲座和实验课程。这似乎产生了很大的影响--尤其是当我们的本科生班级规模增长到 90-110 人时。面对如此多的学生,我发现在授课过程中进行任何重要的建模都是无效的。无论我们是用 Simio、Arena、Excel/@Risk、Python 还是 Matlab(我们的学生所学的编程语言)建模,我都发现了同样的效果不佳问题--因此我确信,这种现象并不是某种语言/工具所特有的。

对此,我的目标是将建模的大部分 "机械 "内容转移到视频模块中。这样,学生们就可以按照自己的节奏来学习(希望能学会)这些材料。理想情况下,这样可以腾出讲课时间,集中讲授概念、哲学和有关主题的一般性讨论。我有限的经验表明,如果学生在考试/作业前使用视频模块,这种策略会非常有效。

我对现有材料的内容基本满意,但如果能有一本涵盖这些材料的书就更好了。作为一名教师,我一直在寻找一本能够充分涵盖我所使用的理论和实践/工具内容的书籍。作为教科书的合著者,我以为这很容易编写,但这种想法是完全错误的--因此我仍然使用混合教材。

3.2 阿列克索普洛斯

我们使用上述班克斯等人(2009 年)的教科书已有 30 多年,但现在这本书已经老化,看不到即将进行的修订。也有将理论概念的基本覆盖范围与语言/软件包相结合的教材,如《Arena》和《Simio》,但我个人认为这些教材在理论主题的覆盖范围上略显不足。目前,在本科课程中,我使用的是 Smith 等人(2017 年)的课文以及从佐治亚理工学院门户网站上获得的大量幻灯片演示。硕士课程则以 Law(2015)的文本和上述 Simio 文本为基础。在过去几年中,我还广泛使用了 Joines 和 Roberts(2015 年)的工作手册。

使用 Simio 作为建模工具的课文存在一个问题,那就是软件经常更新,对象定义和属性不断增强。我需要指出的是,随着 Simio 的不断成熟,这种更新频率在去年有所降低。尽管有这些变化,但这两本基于 Simio 的教材都非常有用,对主要建模概念和软件组件进行了适当的介绍。Jeff Smith 提供的教学视频也非常有用。在过去,我作为教师的生活比较稳定,因为我教授的 GPSS、Arena 和 AutoMod 都非常成熟。

3.3 亨德森

我主要使用自己编写的课程包,其中一些材料改编自多位名人,特别是 Peter Glynn 和 Barry Nelson 分享的笔记。我还将 Law 的 "仿真建模与分析 "作为推荐阅读书目,但不是必读书目,我还在图书馆提供了许多其他标准书籍的桌面拷贝,顺便说一下,这些书籍很少被使用。我还使用一套长期开发的实验室。它们是课堂书面问题和计算机问题的混合体。

希望学生在进入这门课之前,已经学过大二水平的概率论和统计学,以及第二门编程课程。对于康奈尔大学运筹学本科专业的学生来说,这些背景知识都是最近才学习的。对于其他学生,包括本科毕业于其他大学的工程硕士生,他们的背景则各不相同。那些概率/统计学背景较弱的学生在课程的第一个月会比较吃力。如果能有一套,比如说 100 道选择题,让学生对自己的课程准备情况进行自我评估,那将是非常有帮助的;而对于那些没有这种背景的学生,则可以通过某种形式的辅导来帮助他们获得必要的背景知识。这种教程将与概率论和统计学的本科教科书密切相关,不过可能会有相当的选择性。目前,我只是向学生推荐一本书,并建议他们学习其中的一些章节。这种解决方案似乎并不理想。

3.4 施鲁本

Choi 和 Kang(2013 年)的教科书对我的本科课程来说是天赐之物。我只讲了第一节,因为这本书内容详尽、密度大,但写得很清楚,数学水平也很简单。我可以布置这本书的阅读和练习,而不用 "照本宣科"。有了这本书,我的学生就好像已经上了一门模拟课程。他们的问题和讨论都有了质的飞跃。我还参考了 Law 的经典文本(Law,2015 年)中的章节,我在研究生课程中也使用了这本书。同样,我不必照着 Law 的课本讲课,而且可以把我的研究生当作已经上过模拟课程的先修课程来授课。我从来没有 "照本宣科 "过,但如果有一本好的教科书,我几乎可以把两门课的内容挤进一门课。

4.您使用哪些软件工具和编程语言?

4.1 史密斯

我在离散事件仿真课程中使用 Simio,在蒙特卡罗课程中使用 Excel、Python 和 Matlab。我们的本科生在学习仿真课程之前会先学习基于 Matlab 和 Python 的编程课程。我们在 ISE 部门教授 Python 课程,并在该课程中讲解蒙特卡洛的编程方面--这让我们在学生学习仿真课程时能够一蹴而就。今年秋季,我计划将 @Risk 作为蒙特卡罗和输入分析课程的一部分。

几年前,我们还根据 Law (2015) 中的论述,使用 C 和/或 Java 进行了面向事件的仿真,但随着班级规模的扩大,我放弃了这一练习。我仍然认为这是一个很好的学习工具,能增强学生对离散事件仿真机制的理解,但在大班授课时,编程部分的开销实在太大。

4.2 阿列克索普洛斯

过去 6 年多来,我一直在使用 Simio。在过去 20 多年中,我还使用过 Averill Law and Associates 公司的 ExpertFit 进行输入数据分析。我们确实需要脚本语言知识,如 Matlab 或 Python。虽然我的学生们学习了这些语言的必修课程,但我经常发现他们的培训并不充分。

在过去两年中,我还采用了 www.probabilitymanagement.org 的 Excel 版 SIPmath Modeler 工具来教授与仿真实验中的风险和误差相关的估算问题。我在所有仿真课程开始时都会使用这些工具,并发现它们对基于电子表格的蒙特卡罗仿真实验非常有用。虽然巴里-尼尔森(Barry Nelson)提出的 (S)MORE plot 在 Simio 中解决了这一基本课题,但 Excel 的全局覆盖性以及进行实验和观察随机性对风险和误差估计的影响的能力,使这一工具具有无价之宝的价值。对于可以使用电子表格建模的系统,这些工具对于基于独立重复的稳态均值和定量估计的教学也很有用。

4.3 恒基

如上所述,学生们应该已经学习过第二门编程课程。这种背景超出了实际需要,因为任何编程都仅限于通常只需几行就能完成的非常小的家庭作业问题。我们要求学生学习第二门编程课程的原因之一,只是为了能够依赖算法思维方式,这种思维方式本质上是支持学习和理解仿真的第二根支柱。

学生通过 "原始 "电子表格建模,在单行中放置单个复制,然后 "向下填充 "以获得多个复制,从而学习蒙特卡罗的基础知识(模型逻辑、多重复制、置信区间)。只有在掌握了这些思路之后,我们才会转向 @Risk 电子表格插件的使用。在家庭作业中,我可能会要求学生完成一个简单的编程任务,例如为在行上生成非均质泊松过程的稀疏算法编码。在离散事件仿真课程的后半部分,我们使用 Simio。课程包括 5 次讲座,学习 Simio 建模的基础知识。这些讲座都是翻转式的,在计算机实验室而不是阶梯教室进行。每次授课时,我都要求学生在观看杰夫-史密斯(Jeff Smith)的优秀系列模块课程中的一个模块后再来上课,然后我会给他们布置一个建模练习。在这段时间里,我们还将继续进行背诵(实验),这样学生们就基本上得到了 "双份 "的实验,而不是通常的讲座加实验的形式。

4.4 施鲁本

如前所述,我从 3 种不同世界观的角度向学生展示了 3 种工具,这样他们就能看到相似之处,而不仅仅是不同之处。多年来,我使用的软件不断变化。我总是从 Sigma 开始,它简约、强大、稳定(我在三十年前就开始开发它了)。它专为教授三种世界观的基础知识而设计,学生可以在 30 秒内学会有关事件图的所有知识,他们喜欢这样。我非常自豪 RTMS 能够用于大型复杂的活动-交互模型(十年前我与他人共同创立了 Bio-G,但没有参与任何开发工作)。多年来,我一直在众多商用瞬态实体流语言中徘徊,但最近一直在使用 Simio。不过,我建议定期更换语言,以保持与时俱进--或者每当世界科学大会(WSC)讨论某些重大创新时(很少有这种情况)。就教学目的而言,这些语言都非常相似,而高级细节则是易逝的知识--在学生能够专业使用之前,这些知识就会发生变化。我建议每个人在工作中使用任何商业软件之前,都参加供应商的短期课程,即使我刚刚教完它。

5.讨论您的基本教学理念、策略和方法

5.1 史密斯

模拟需要具备以下一般领域的技能:(1) 概率和统计;(2) 编程;(3) 建模。在我教学生涯的早期,我认为学生通过先修课程(两个学期的概率与统计、两个学期的编程、两个学期的程序设计)已经掌握了上述各领域的必要知识,我只需将这些知识整合到仿真课程中即可。在最初的几年里,我逐渐发现(最不幸的是,我花了这么长时间!),学生们需要大量的 "先决材料 "强化/复习,然后才能有效地将这些一般主题/工具应用到仿真中。因此,与我职业生涯初期相比,现在我的课堂上与模拟相关的 "新 "材料大约少了 1/3。从教学理念的角度来看,这意味着我需要花费大量的时间和精力来整合三种基本技能,而这往往需要回到学生在先修课程中已经学过的基本材料,这样我们才能以模拟的形式将这些材料视为一个完整的 "整体"。

如前所述,我认为在计算机实验室中以 "跟着我学 "的方式带领学生进行建模/编程练习并不是特别有效。学生们在计算机应用/编程方面的技能和舒适度差别很大(而且往往与他们的 GPA 无关)。因此,无论我的教学进度如何,班上都会有 1/3 到 1/2 的学生在这种环境下感到无聊或迷失方向。相反,我发现将重点讲座与相同主题的视频模块相结合会更有效。举例来说,我用这种方法讲授以下三个相当不相关的主题:

  1. 使用(我提供的)Python 模块 "解决 "杰克逊网络;
  2. 开发和应用标准置信区间;以及
  3. 开发串联排队系统的 Simio 模型。

对于其中的每一门课程,我都会在讲座中介绍相关材料,并告诉学生"放下你们的笔,关上你们的笔记本电脑,只管看--有一个我进行完全相同的开发的视频模块,你们以后可以按照自己的进度观看和重新观看"。这样做的目的是让他们先专注于概念和全局,同时知道他们不会丢失考试和/或作业所需的细节。目前,我在整个学期中使用了 8-10 种类似的讲座+视频组合(此外还有一些基于视频的实验作业)。虽然我没有做过对照实验,但轶事证据表明,当我使用这种方法时,学生们的表现明显好于他们试图做详细笔记和/或在电脑上跟着我学习时的表现。我将继续开发这些模块,所有这些模块都可以在http://jsmith.co/node/26 上免费获取(请注意,我很惊讶,而且仍然有点尴尬,因为我的小组成员在本文中突出提到了其中一些模块--这绝对不是我发起小组讨论时的初衷!)。

最后,我发现学期项目非常重要,绝对可以将学生在一学期中学到的所有与模拟相关的主题清晰化。我尝试过多种方法,从使用年度 Arena 和 Simio 学生竞赛,到使用从咨询项目中开发的案例研究,再到让学生选择自己的项目主题,所有方法都被证明是有价值的(尽管学生往往会发现选择自己的项目比他们预想的更难)。随着班级规模的扩大,我将现场 "期末演讲 "改为上传到 YouTube 的视频演讲。虽然这与学生在包括同龄人在内的现场观众面前进行演示的体验不同,但一旦某个班级的项目组超过 10-15 个,我就找不到一种切实可行的方法来进行现场课堂演示。

5.2 阿列克索普洛斯

为了解释我的理念,我必须谈谈我的背景和模拟训练。1984 年,我参加了乔治-菲什曼(George Fishman)的研究生课程。这门课要求使用 Simscript II.5 建立离散事件模型,而我们建立的唯一模型就是著名的非洲港口模型,该模型至今仍出现在 Law(2015)的文本中。我们建立了两个变体,第一个基于事件调度机制,第二个使用过程交互范式。为了了解其中的差异,我们必须报告大型计算机上的编译和链接时间。事实上,我们使用的是同一种语言,这让我们体会到了两种建模范式之间的本质区别。我们使用 Fishman(1978 年)著作中的子程序对模拟输出进行了分析:第一个子程序使用的是再生方法,而第二个子程序使用的是批量均值算法。乔治非常认真地给手写报告打分,如果没有对结论和建议清单进行优先排序,就会被扣分(当然,他能这样做是因为班上只有 12 名学生)。乔治强调,在估计稳态均值和定量时,他更倾向于采用长期运行而不是多次短期重复。总之,他的教学和学术建议塑造了我的理念。

当我来到佐治亚理工学院时,我发现杰里-班克斯(Jerry Banks)、戴夫-戈德曼(Dave Goldsman)和吉姆-斯温(Jim Swain)在本科生教学中使用 GPSS/PC,而在研究生教学中则使用劳和凯尔顿(Law and Kelton,1982 年)的教材中的 Simlib 软件包。我记得在学习 Thom Schriber(1974 年)的 "红皮书 "时,GPSS/PC 可以通过突出显示活动的 GPSS 块来实现 "动画"--这可以通过便携式 PC 和三光束投影仪来实现,但我可以确定,这种粗略的动画可以让学生们体会到实体的运动。另一方面,Simlib 软件包基于事件调度机制,是用 Fortran 编写的(实际上,在 C 代码出现在第三版教材之前,我的一个学生用 C 重写了该软件包)。我们在 20 世纪 90 年代初改用 GPSS/H(没有使用证明动画),直到 20 世纪 90 年代末才采用 Arena。我在本科和硕士课程中一直使用 Arena,直到 2008 年左右才改用 AutoMod 大约两年。我发现 AutoMod 非常吸引人,因为它有嵌入式仿真语言、出色的图形界面、能够以适当的细节对仓储系统进行建模,而且还有杰里-班克斯(Jerry Banks)撰写的介绍性文本,该文本仍包含在安装程序中。2011 年 1 月,我最后一次改用 Simio,直到现在,我仍然是它的 "忠实用户"。

在我的职业生涯中,建模和理论之间的教学组合一直保持稳定,只是在过去三年中发生了两个变化:(a)早期使用电子表格来说明误差和风险的概念。我在门户网站上上传了巴里-尼尔森(Barry Nelson)在 2008 年世界科学大会论文集上发表的论文,并反复测试学生解释直方图、经验分布函数以及均值和定量置信区间的能力。(b) 更加重视输入数据分析和分布拟合,以及 "拟合错误 "对模拟输出质量的影响。我发现,如何在模拟建模和分析之间取得完美平衡是一项真正的挑战!对仿真数据进行扎实的统计分析的能力是运筹学分析师和工业工程师的有力工具;在我看来,这正是他们与计算机科学家的区别所在,后者可以提供出色的代码/模型,但统计能力却相当有限。

我认为,没有实验课的软件教学是一项巨大的挑战。为了克服单节课的时间限制,我通常会将一个中间模型上传到班级门户网站,要求学生学习相关部分的文字(也可能提前学习),然后在课堂上继续构建完整模型的其余部分。上述挑战的部分原因是学生普遍拥有苹果笔记本电脑;这通常需要登录到虚拟桌面并使用苹果键盘。我知道这并不等同于实验教学,但在我们每节课人数大约在 40 到 80 人之间的大班教学中,这是我能做的最好的办法。

最后,我想谈谈学生们最近只学习电子材料的习惯。我劝他们购买硬拷贝课本,但大多数学生不仅不听我的劝告,甚至不把电子文档保存在本地。我想,在可预见的将来,情况不会好转,我们都必须采纳。

5.3 亨德森

这些想法也许最好以子弹的形式呈现:

  • 学生需要对概率论和统计学有深刻理解,才能成为有效的模拟用户。理想情况下(在我看来),他们可以同时学习仿真和概率/统计,但康奈尔大学的课程设计不可能做到这一点。我的课程非常强调这些方面。
  • 不要在讲座中建立模型。学生很难看到建模过程中发生了什么,许多能力较强的学生很快就会失去兴趣。这就是实验室的作用。我曾经在讲课时建立模型,很快就意识到这不是一个理想的方法,但包括惰性在内的一系列因素意味着我有一段时间没有重新设计课程的这一部分。
  • 对于每个新概念,直觉是第一位的,数学(或任何需要的背景)是第二位的。例如,通过反转生成具有分布函数 F 的随机变量是一个非常直观的概念,涉及到均匀随机变量的拉伸或压缩。
  • 尽量减少课程结束时的工作量--将其视为与其他课程的方法 "相反"!为此,我们会在最后一两堂课讨论 VV&A 和项目管理,而且没有关于这些材料的家庭作业。我从冬季模拟大会的项目管理教程中获得了 Deb Sadowski 的幻灯片,并逐字逐句地使用这些幻灯片,再加上我自己的评注。此外,在学生们参与了一个非同小可的团队项目之后再讲授这些内容,他们的反应就会从 "这是显而易见的 "转变为 "我希望我们在会议上做了会议记录!"
  • 课程包括一个团队项目,需要建立模型、分析数据和撰写报告。给报告打分是个噩梦,但我认为这种努力是值得的。校友们经常提醒我,我们过去做过的项目引起了他们的共鸣(或让他们感到恐惧)。我还没想出如何避免项目交接日期基本上就是学期结束的情况(参见前面关于工作量的观点)。有什么好办法吗?

5.4 施鲁本

我曾经教过学生,"模型 "是一个名词,是你建立并用于分析的工具。在我的咨询工作中,我主要是边做边学,现在我把 "建模 "作为一个动词来教,一个带直接宾语的主动动词。我们在生活中的方方面面都要进行建模,以构建我们的思维和交流想法。因此,我的课程大纲不再是线性的,按照教科书上的 "模拟研究步骤"。现在,我的课程大纲就像我的专业工作一样,是由图 1 所示的同时互动的循环组成的(注意这里有 "开始",但没有 "结束")。看着我的学生从简单的线性思维者成长为富有创造力的艺术家,我感到非常高兴。

5.4.1 好点子
  • 学期产品:在过去的十年中,我一直要求学生团队制作一个模拟产品。将术语项目的中间两个字母改为术语产品,效果大不相同。我强烈推荐这样做。他们的产品是自己创造的,旨在解决一类具有可识别市场的通用问题。他们的最终产品展示是 YouTube 视频,包括产品原理、演示、市场分析和销售宣传。请搜索(YouTube:Berkeley Simulation IEOR131)了解一些示例。学生们在简历中使用了这些视频,并因此找到了工作;有几个视频甚至为学生赚了些钱。我从用视频取代产品报告中学到的第一个经验是将视频长度限制在 5 分钟以内!他们还把产品的用户手册也变成了视频。四年前我犯过一个错误,那就是让各小组竞相设计相同的模拟产品。竞争非常激烈,有些团队至今都不愿意互相交流,也不愿意和我交流,因为优胜者是我选出来的。
  • 大学先修课程:伯克利大学不要求听课,但我想出了一个保证高出勤率的办法。我在不事先通知的情况下,当堂出一些简短的 "大学先修课程"(AP)问题。学生的 AP 分数会以单独的曲线加到他们的下一次考试分数中,然后他们会得到最好的考试成绩。由于 AP 不能降低他们的成绩,因此出勤率仍是可选项。我的讲座出勤率几乎是满分(学生缺席讲座时甚至会给我发邮件找借口!)。如果有几次讲座我没有提供这些课程,学生甚至会要求我提供更多的 AP 课程。提示:如果你尝试这样做,千万不要称之为突击测验。学生反感突击测验,但他们喜欢 AP(在我重新命名后,我的教学评价大幅上升)。
  • 创建自己的模拟软件:这是个好主意,但我不一定推荐。如果你能做一些别人做不到的有价值的事情(比如在 DOS、16 位 Windows 或互联网浏览器中建立仿真引擎!),你就能赚钱。不过,正如艾伦-普里茨克(Alan Pritsker)和丹尼斯-佩格登(Dennis Pegden)都告诉我的那样,你不可能既经营一家成功的软件公司,又成为一名成功的大学教授。
5.4.2 坏主意(当时看起来不错):
  • 百万分考试:我厌倦了学生乞求部分学分的做法。他们觉得获得
    1000 分加分,直到他们走到走廊的一半。这种怨恨永远不会消失。
  • 同伴评分:康奈尔大学削减助教预算时,我让随机配对的学生盲评彼此的作业,然后再盲评评分者(使用课程编号而非姓名--好主意)。为了避免串通,谁也不给谁打分。在课程评估中,我询问学生是否认为自己的评分是公平的(所有人都认为是公平的),是否认为自己的评分是公平的(没有人认为是公平的)。那一年是我教学评价的低谷。
  • 带负分的考试题:有一次,我的期末考试题目是 "真/假 "题,错选的负分相同。一个错过考试的学生超过了平均分。
  • 编写软件模拟器:Sigma 下载 (www.sigmawiki.com) 包括 GPSS 工具包、Arena 工具包、SIMAN 工具包、Simio 和 Petri 网仿真器以及 PERT 图表和连续时间仿真示例。技术支持非常糟糕。如果你试用过这些工具包,千万不要给我发电子邮件要求提供新功能。

业务影响

6.结论

大多数工业工程和许多定量商业课程都开设了模拟课程,这些课程的教学方法也多种多样。本文(以及会议小组讨论)集中讨论了四位经验丰富的教师的教学方法、经验和方法/理念。虽然我们并不声称对所有问题都有完美的答案或最佳的方法,但我们希望其他教师和未来的教师会发现其中的一些信息是有用的。