导读:在这个充满机遇与挑战的时代,编程已成为连接现实与未来的桥梁。作为西南科技大学的一名本科生,我有幸参加了上海交通大学张斌老师主讲的C++/Python/Fortran编程课。我从Fortran入手,通过层层递进的案例学习,不仅掌握了扎实的编程基础,还激发了浓厚的科研兴趣。在后续的强化实战训练中,我通过不断学习,发表了2篇学术论文,获得了发明专利和软件著作权。这段经历不仅为未来的学术发展奠定了坚实基础,并且帮助我成功推免至上海交通大学攻读硕士学位。
一、机缘巧合踏入编程课堂
大二寒假,我在实验室老师的推荐下,踏入了张斌老师开设的编程课堂。当时,我们学习的语言是Fortran,通过编写JCP论文里的计算案例,从简单的1维案例到复杂的2维案例,从正向编程到反演程序,我一步步构建起了扎实的编程基础。每天晚上,张斌老师都会通过线上会议与我们交流,耐心解答我们遇到的每一个编程难题。在他的指导下,我逐渐掌握了编程的思路框架,学会了如何将复杂问题分解为小问题,逐步解决。同时,我也学会了调试和排查问题的技巧,能够迅速定位并修复代码中的错误。那个寒假,我在编程技能上取得了显著的进步,但更重要的是,我找到了对科研的浓厚兴趣。编程不再仅仅是枯燥的代码和算法,它成为了我探索未知世界的钥匙。于是,在暑假期间,我主动找到了张老师,请求进行更为深入的强化训练。二、编程实战训练-让我收获颇丰
在实战训练的第一个案例中,我接触到了分层旋流火焰的研究。通过学习Python语言,我反演了师兄之前的相关程序,并在老师和师兄的悉心指导下,开始了自己的研究。从确定研究方向和问题,到进行文献调研,再到整理火焰数据,我一步步深入,最终开发出了火焰特征识别程序。利用随机森林算法,我对不同工况下的分层旋流火焰进行了分类和特征预测,模型的精度达到了95%以上。这段经历不仅锻炼了我的科研能力,更让我收获了一篇第一作者身份的学术论文。在接下来的实战训练中,我又参与了两个富有挑战性的项目。一个是针对传统跨境物流运输中快递打包组合的问题,我们提出了一种基于分治思想的智能快递打包组合方法。这种方法可以快速预测包裹组合的计算时间和物流代价,给出最优的打包组合方式,大大提高了物流效率。最终,我收获了发明专利和软件著作权各一项。
另一个项目则是在燃烧领域的研究。燃烧反应动力学涉及复杂的化学反应和传热过程,其常微分方程组的求解往往面临非线性、耦合及高维度等挑战。我们团队通过深度神经网络学习高维多尺度化学动力学系统问题,实现了对燃烧反应动力学常微分方程组的快速求解替代。这种方法有望显著提高计算效率,特别是在利用GPU加速的情况下,反应速率的计算可以加速一到两个数量级。三、推免至上海交通大学攻读硕士学位
回顾这段经历,我衷心感谢张斌老师对我的教导和关怀。通过张老师的编程课和后续的强化实战训练,我不仅收获了编程能力的飞跃提升,更在科研道路上迈出了坚实的一步。这段经历不仅为我未来的学术发展奠定了坚实的基础,更助力我成功推免至上海交通大学攻读硕士学位。
现在,我怀揣着对科研的热爱,在航空航天领域不断探索、不断前行。我相信,只要勇于探索未知、敢于挑战自我,每个人都能实现自己的目标与理想。希望我的这段经历能够激励更多的同学加入到编程课的行列中来,一起开启一段充满挑战与收获的旅程!以下是张斌老师主讲的C++/Python/Fortran编程详细介绍。
四、高级编程人才训练营
2025年1月2日,由上海交通大学航空航天学院张斌教授组织《高级编程人才定制培养训练营——上海交通大学C++/Fortran/Python编程综合技能课程》又要开启了,让学习者 “先人一步”出国留学/保研升学/高薪就业。自2025年起,学习者可以在仿真秀官网和APP报名,长期招生。张斌,上海交通大学航空航天学院研究员,从事飞行器设计。拥有15年(2008-至今)传授本科生如何掌握科研编程技能,组织了一个约20人的编程教学研发团队(博士、硕士、本科),主开发了一套适合零基础学生掌握编程能力的教学方法;拥有大量科研项目中积累的实际编程教学案例。
张 斌 研究员 博导
博士,上海交通大学航空航天学院研究员、上海交通大学晨星学者,入选四川省天府“峨眉计划”。燃烧空气动力学专委会委员。研究方向:计算流体力学算法和少样本智能建模方法。在Journal of Computational Physics、Journal of Fluid Mechanics、Combustion and flame和Physics of Fluids等行业权威期刊上发表了80余篇SCI/EI论文,申请专利和软件著作权30余项。主持四川省融办重大项目、四川省科技厅重点研发项目、GF973子课题项目、国家自然科学基金面向上项目、国家自然科学基金重大研究计划培育项目、青年基金等20余项课题,作为技术骨干参与了“两机”专项重大项目、国家自然科学基金重大集成项目等。第一阶段教学大纲(基础班)
1、学习目标
2、学习方式
(2)每晚8-9点小组(学员+1个助教)线上讨论编程 bug和解决思路(3)每天导师会随机进入各个小组参与学员和助教的讨论 3、学习内容
(1)提供源代码、教学视频和教学资料
(2)Code1:C++ 编写1维标量方程(逆向编程)
(3) Code2:C++ 编写2维标量方程(逆向编程)
(4)Code3:C++编写1维标量方程+UNO 格式+源项(正向编程)
(5)Code4:C++编写2维标量方程+UNO 格式+源项(正向编程)
(6)Code5:C++ 编写2维标量方程+WENO 格式+龙格库塔格式(正向编程)
(7) Code6-10 Fortran把 Code1-5 重写一遍
(8)Code11-15 Python 把 Code1-5 重写一遍
注:进入第一阶段的学员,在2个月以内完成学习内容,讲师提供一对一服务答疑和指导服务 。未能完成学习内容的学员,满2个月以后不再提供答疑和服务指导,但是提供未完成内容程序和代码供自己练习 。 4、考核方式
(1)线上导师 1vs1 检查 code1-code15,询问编程格式、编程技巧和算法原理.(2)提交第一阶段编程 bug 集:什么 bug?什么原因?如何解决? 5、预期效果
(1)零基础学员具备完成学科类大作业能力
(2)本科毕业设计能力
第二阶段教学大纲(强化班)
1、学习目标
(1)通过实际问题强化学员的综合编程技能
(2)培养学员团队合作精神和高效沟通能力
2、学习方式
(1)依次进入各个强化编程培训小组:格式组、燃烧组、并行组、优化组、图像组、建模组、导弹组、界面组、烧蚀组、稀薄组。(2)每个组会在助教的协助下,完成一个实际问题的程序反演+1个新任务。(3)每周天晚 8 点定期小组(学员+1 个助教)线上讨论编程 bug 和解决思路。(4)每周天导师会随机进入各个小组参与学员和助教的讨论。(5)学员如果遇到助教也解决不了的问题可直接微 信联系导师。3、学习内容
格式组:反演 2 维 Euler 方程,编写增加源项程序。
燃烧组:反演氢燃料零维点火程序,编写乙烯燃烧程序。
并行组:反演 2 维标量并行程序,编写 3 维标量并行程序。
优化组:反演 Fortran 遗传算法程序,编写Python遗传算法程序。
图像组:反演圆孔图像特征识别程序,编写圆孔分类识别程序。
建模组:反演蒙特卡洛采样建模程序,编写自适应采样建模程序。
导弹组:反演 3 自由度导弹飞行轨迹程序,复现论文结果。
界面组:反演商飞任务 1 界面,编写商飞任务 2 界面。
烧蚀组:反演 1 维烧蚀传热程序,复现论文结果。
稀薄组:反应 0 维 DSMC 程序,复现论文结果。
注:(1)实际练习的程序会持续更新,且会大于10个。
(2)进入第二阶段的学员,在一年以内完成学习内容,讲师提供一对一服务答疑和指导服务 。未能完成学习内容的学员,满一年以后不再提供答疑和服务指导,但是提供未完成内容程序和代码供自己练习 。4、考核方式
(1)每完成一个任务导师线上 1vs1 检查,询问编程 bug 集和算法原理。(2)完成 10 个任务以上的学员,经过导师测评后可以进入第三个阶段。(3)如果导师认为学员具有极强的编程天赋,可直接进入第三阶段学习。5、预期效果
通过第二个阶段的学生具备大部分研究生毕业所需的编程能力。第三阶段教学大纲(实习)
1、学习目标
用前沿的工程问题或科学问题培养学生创新精神
2、学习方式
(1)进入到导师研究生小组,和博士生硕士生一起参与科研项目
(2)每周组会需按照研究生标准介绍科研进展
3、预期效果
(1)每个学员会分配到一个具体的需要用编程解决的科研任务,解决后根据任务难度获得 1000、2000、5000 元不等助研费。(2)每个学员会分配一个具体的研究生进行 1vs1 的科研辅导。(3)学员有机会线下(上海交通大学四川研究院)科研活动,并获得实习证明。 报销来回路费和住宿费。(6)学员可获得深造和就业相关信息,非常出色的学员可获得推荐出国或读研的机会。
注1:不太适合在校高年级研究生,因为需要投入足够多且连续的时间。注2:不太适合已经工作的工程师,因为需要投入足够多且连续的时间。
(四)报名咨询和试看
请识别下方二维码,购买课程或进入群里咨询老师,购课后进入编程训练营开启学习之旅。
(五)真实案例(持续更新中)
仿真秀读者福利
仿真秀,致力于为每一位学习者提供优质的仿真资源与技术服务支持,让您的仿真学习之旅更加顺畅,欢迎在公 众号对话框与我互动交流!以下资料供用户永久免费下载哦(见下图)。
下载地址在仿真秀APP公众 号菜单-资料库-资料下载-进入百度云盘群下载,不会失效,且永久免费更新。