科学计算与程序设计(苏振鹏) 2025春 2024春 2023春 2022春 2021春 2020春 2019春 2018春 2017春 2016春  课程号:00731401
2025春 2024春 2023春 2022春 2021春 2020春 2019春 2018春 2017春 2016春  课程号:00731401
7.9(9人评价)
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:很多
选课类别:计划内与自由选修 教学类型:理论实验课
课程类别:本科计划内课程 开课单位:地球和空间科学学院
课程层次:专业选修   学分:3.0
课程主页:暂无(如果你知道,劳烦告诉我们!)
AI 总结 AI 总结为根据点评内容自动生成,仅供参考

教学内容与水平

苏振鹏老师的《科学计算与程序设计》课程主要涉及Fortran的科学计算和IDL的数据分析与制图。Fortran部分重点讲解结构化程序设计、数组与模块化编程,并行运算等,以及常用的数值算法,如求根、数值积分、Runge-Kutta方法等。IDL部分则关注数据读取与画图,课程要求掌握绘图步骤而不涉及具体计算。课程内容设置合理,但IDL教程资源有限,建议多方搜索学习材料。

考试与作业

课程评估包括三次实验和两次上机考试,考试比例灵活,由同学和老师讨论决定。作业主要针对Fortran和IDL的实践训练,涵盖日常编程任务和实验,整体工作量大,且逐年增加。上机考试具有较高不确定性,考察速度与准确性并重,特别需要考生在时间内完成代码编写和调试,注重平时积累和准备。上机考试题目一般为数值算法的应用,建议提前准备好常用的代码模块和文档模板。

给分情况

给分采用平时作业和考试结合评定,总评计算较为慷慨,平时多互动或有表现积极的同学还可以获得Bonus。优秀率在20%-40%之间浮动,具体取决于当年课程难度和学生整体表现。总体来说,只要认真完成作业和参加课上练习,取得不错的成绩并不困难。

学生反馈

课程被认为是空间物理等相关专业有价值的选修课,特别是对从事科学计算的同学有实际帮助。但也有同学反映上机考试的随机性较大,可能会影响最终成绩。在IDL教学方面,同学普遍希望得到更多资源支持。

选课建议

对于空间物理和相关专业的大三学生是必修课,计算机基础较好的大二学生也可以积极选修以提前掌握Fortran和IDL。课程对提升编程实用能力有所帮助,但不推荐给仅为刷绩点而选的学生,因考试策略可能不确定性较大。选课前需评估个人时间管理能力和对上机考试的适应能力。

排序 学期

评分 评分 9条点评

  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:很多
  • 难度:中等
  • 作业:中等
  • 给分:一般
  • 收获:很多

这门课主要教授用Fortran科学计算,以及用IDL数据分析(画图)

Fortran部分:前几章作业很少,基本是为了第十章的常用算法做铺垫,其中主要涉及了:数值积分,一元方程求根,RK4,偏微分方程数值格式。其中后三者考察的居多,建议写好通用性强的程序以便实验和考试时使用,偏微分方程数值格式要求看到求解格式的表达式能够转换为代码。并行运算那一章也比较重要,很有可能会让你写一个并行程序比较与串行执行效率差异。

这里附上我个人学习Fortran的一些网站:FORTRANFortran资源

 

IDL部分:相对来说比较简单,不要求用IDL做计算(因为很慢),只需要掌握如何画图就行了。我个人总结画图步骤就是这几点:1.读取数据,2.设置输出eps图像,3.设置色表,4.设置全局变量,5.画图,6.补充colorbar和图例等,7.关文件,结束。是一个非常套路的过程。

相对来说,IDL的网络学习资源较少,这里附上我个人学习IDL的一些网站:

http://www.idlcoyote.com/index.html,前IDL工程师的学习指南。

http://blog.sina.com.cn/s/articlelist_1984634525_11_1.html,国内一个博客,IDL代码库。

https://www.harrisgeospatial.com/docs/idl_programming.html,官方手册,直接搜索查代码含义。

https://malagis.com/search/IDL/,https://malagis.com/tag/IDL/,麻辣GIS网,分享GIS有关讯息的网站。


本学期三次实验和两次考试各占比50%,其实这个比例是同学和老师商量出来的,原定是三七开,老师还戏称商量的同学为“谈判专家”,总之在考察方式上面老师是有一定的灵活性的,同学们有什么要求和想法可以及时提出。平时有一些活动会有bonus,总评加1到5分的样子。(包括但不限于介绍其他语言,翻译并行程序手册等等)

但今年的优秀率只有20%左右,没有调分,卡绩也没有管。得知自己84的时候还是有一点难过,但是最后一次考试实在是挺崩的,而且这么一点小的差异平均来看影响也没那么大,每次被卡我都这样安慰自己(笑)。

如果有什么问题欢迎私信我,希望能够帮到你。:D

5 1 复制链接
somel我83
立即登录,说说你的看法
OYBDOOO 2023春
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:中等
  • 作业:中等
  • 给分:超好
  • 收获:很多

2023春学生。2024春助教。

个人认为这是地空本科最有价值的选修课。

顺带一提:在一个全是自己同班同学的班上当助教真是一种奇特的体验~

(最后修改于 4 0 复制链接
HyYu 2021春
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:很多
  • 难度:中等
  • 作业:中等
  • 给分:一般
  • 收获:很多

如其他同学所述,这门课主要讲述的是 Fortran 语言IDL 软件的使用,前者主要负责进行“科学计算”,后者主要用于读取数据&制图/视频等,考完试也来写一下自己的心得体会,希望能帮到有需要的同学。

 

课程内容-Fortran部分:

可以以分为几部分,结构化程序设计(基本语法、顺序、逻辑、循环结构)、程序数组化、模块化程序设计(函数与过程,模块的使用)以及解决实际问题(输入输出与文件,并行初步,求解问题时用到的一些方法——求方程的根、积分、极值、ODE-set【常用到Runge-Kutta 4】、PDE、插值),看老师的PPT即可,也可参考教材:彭国伦:《Fortran95程序设计》.中国电力出版社.

此处奉上我的 Fortran 复习笔记(字丑勿嫌弃):Fortran_Note.pdf

课程内容-IDL部分:

这部分主要就是读取数据与画图,课程主要分为 【起步(基本语法)】-【画图注意事项】-【读取数据方式】-【一些编程基础】,其中第一部分为基础,第二部分为重点,第三部分...就本课程而言会读取Fortran生成的无格式顺序存储的文件即可,第四部分...能看懂 pro 开头的过程(比如说老师和助教发的文件)其实也就可以了,这部分要求并不是很高(对比Fortran来说),实在不会的记得看Help手册(很有用!)

此处奉上我的 IDL 复习笔记(字丑勿嫌弃):IDL_Note.pdf

 

课程安排与作业:

课程是理论实践结合的,上课的进度基本上是4月中下旬 Fortran 就能讲完,然后三个星期左右 IDL 也就能讲完了的样子,上课会点一些同学回答问题(莫慌,问的问题不难,且老师还是很友善的,只是为了保证同学们不要走神而已)。

课程平时的作业也不多,一般是写一些以后可能用得上的Tool(如随机函数,正态分布函数等),以及课程上不时提到的一些问题(如调研如何利用语句生成文件夹、如何利用IDL制作.gif文件)。当Fortran讲得差不多的时候就开始安排上机实验,两次课为一次的上机实验,本学期一共3次上机,做了3个题目,是往年的一些考试题,有一些难度,比较考验Debug能力--但我认为这是科研工作上所必需的吧,起码对空物学生来说我觉得苏老师的题目难度适中,相关的要求也不高的。

 

课程考试:

学期初老师和同学们会商量考试形式,是笔试+机考,还是以机考作为考试成绩,以及机考的次数。本学期机考2次,都是开卷的,分别在6.16和6.20下午1:00-5:00考(日期&时间也是投票出来的,这一点非常好啊~可就是有点困了......),需要提交.f90(Fortran程序), .pro(IDL代码), .eps(IDL画的矢量图)以及 .pdf(报告)文件

老师对考试的要求是:准确度>=速度>=美观度,但假如大家都没做好,快一点交卷会有点优势(有点吧,但也不是很多)。本学期两次考试情况是,第一次的题确实有难度(后来我才发现我错了一个很沙雕的错误,比如说1.0/(4.0*5.0)我漏了个括号...看来对着公式直接码会有很大风险出错啊),第二题是并行求方程,给定alpha求lambda和给定lambda求alpha并将其对比。我觉得两次考试,第一次考难度,第二次考速度,所以其实难题当前,慢一点做稳一点就行,简单的题当前,就快一点比较好。

以下是我个人的考试建议(也是自己的做法)是:考前把相关的接口/Readme file写好,放在一个文件夹里,考试的时候直接copy改一些量用了,报告的话我是用latex写的,考前把模版准备好,考试写完程序就可以直接编译了。报告里还要简单写一下自己对题目的理解、编程的思路和结果的合理性分析,也就几句话吧,考试的时候留几分钟比较好。

另外还有Fortran和IDL的编程模版——Fortran就是Module Global(变量)+Module Routine(函数&过程)+Program Main(主程序),IDL就是设置变量-读取文件-转载颜色-画图(包括设置系统变量,这部分就是Plot语句和Contour语句及相关的关键字参数要设置好,用到就直接Copy然后稍微改一下)-关闭文件,Windows里面可以用GSview(助教会发安装包)查看.eps文件,Mac系统里面直接点空格键预览即可(因为需要调整边框及比例等)。

 

关于课程给分:

本学期的给分是:平时分30,两次考试40+30,不会调分(--其实考试有点压力),平时的话还会有回答问题&小测试比较快交的同学可得1~2分的Bonus,演讲介绍其他语言的同学也有1~5分的Bonus。最后,老师给的优秀率和去年差不多(也是20%左右),但反过来我会想真的是老师的问题嘛?--我看也不全是,毕竟...其实同学们平时编程的机会&实践也不多的(据我观察),这时候啊就会觉得是“早进组早搬砖早享福”--毕竟老板可能会让你码一下代码搞点东西,不知不觉编程能力就上来了(个人感想)。

欢迎有兴趣的同学和我交流~~

4 2 复制链接
自闭挂科人求指路idl是从哪里下载的(
HyYu回复 @自闭挂科人: 助教给的安装包,应该是网上的破解版(8.4版)
立即登录,说说你的看法
银光赤火 2025春
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:中等
  • 作业:中等
  • 给分:超好
  • 收获:很多

25春学期课程共有12周理论课+7节实验课+2节期末上机,含50理论学时+20实验学时,共3学分。本课程是地物/空物/空探的专业选修课程。Fortran需配置Visual Studio+Intel OneAPI或者VSCode+MinGW,Python/Julia自选IDE即可,IDL助教会发安装包和密钥。课程可以使用DeepSeek等AI大模型。

参考链接:

Intel Fortran配置:https://zhuanlan.zhihu.com/p/619167433

GFortran配置:https://zhuanlan.zhihu.com/p/618931548

Julia配置:https://zhuanlan.zhihu.com/p/694595054

eps文件读取:https://zhuanlan.zhihu.com/p/694593880

课程内容:包含2部分,前10章讲Fortran的基础变量+函数/选择循环结构/数组运算/输入输出+文件格式/子程序+模块/OpenMP并行运算/科学计算示例,课上示例部分包括二分/弦截/插值近似/数值积分/RK4求解微分方程组等;后3章讲IDL/Python/Julia基础+读取Fortran计算所得数据并绘图,相较于前几届课程绘图部分只有IDL,这学期课程绘图选择更为灵活。

平时任务与考试:作业5次,实验5次;上机2次。作业较为简单,就是简单的三维空间函数求值/RK4求解第I/II类边界条件方程/牛顿迭代求根/数值积分,但需要3种语言全部参与绘制图像。对于本学期作业中的绘图要求,大家更倾向于选择Python完成;Julia也还好,软件包类似于Python的库,但计算效率远高于Python,苏老师课题组目前也是全面转向Julia;至于IDL,关键字参数实是有些眼花缭乱,大模型也不太认识这门上古语言,当看到D老师和C老师半天转圈圈也想不出来的场景,合作写IDL作业的同学都沉默了。IDL部分对空物空探同学要求比较高,薛向辉老师的空间探测仪器原理与方法课程有读文件的要求,且在全校范围内,空物空探的部分组和天文系需要较进阶的IDL操作;对地物同学的要求不是很高,能够完成作业即可,而掌握Python用法是必要的,我们之后大多数应用场景还是scipy和obspy库处理DAS台阵/InSAR遥感地震数据,可参考地球物理程序设计地球物理数据处理和分析;大气科学的同学没事也可以来选选这门课,赵纯老师那门课比较基础,不讲串并行,这门课更进阶一些(而且得优秀的概率更大,每逢期末季jwc必卡大气优秀率)。绘图要求大致有2种,二维线图(及叠加)/平面等高线图;最后不要忘加colorbar。实验和期末上机选择一种语言绘图即可。由于Fortran是优化过的专门用于科学计算的语言,实验相较于杰哥的计算方法编程作业(强制要求C语言),其内容都是求解微分方程组,而难度大大减小。苏老师会在课件中给出模块化子程序,同学们可以直接搬运练习,而不用每次实验自编一套屎山主程序。期末上机难度挺大,第一次上机是归一化参数项后求复域多解问题,第二次是由边界条件得出复参数项后代入原方程求值。由于平时实验似乎都是实数域内的求解,很多同学第一次上机失手(不过本来难度也大)。

分数:平时50%+期末上机50%。平时作业和实验比较简单,每次作业10分,实验20分,总计150分,稍微认真写写就有130+,换算下来就是43分+的总评,所以这部分不调分,写完作业的同学总评都不错;量比较大,尽量不要堆积。2次上机是取平均值,相当于每次占总评25%,老师会按比例调分,所以不用担心上机太差,分数会调到理想的区间。总评区间可参考陶鑫老师电动力学,空物大多数老师给分都是很好的。这学期的优秀率40%,老师是给满了的。参与课上老师提问/分析代码的互动,或者提前完成课上任务的要求,都可获得一定的bonus。

这门课程实践环节贯穿始终。老师非常看重学以致用,会推荐大家在讲解过后现场敲敲代码,PPT上的代码也大都是模块化的,可以直接使用;同时推荐我们采用模块封装,这样结构更清晰,debug也更容易。作为新质生产力的一环,AI的使用也是实践的一环,课程全程(包括期末上机)可使用AI大模型。如果想用AI得到更好的分数,可以选择花140¥充值ChatGPT pro,但有同学反馈氪金后效果不是很好(?)据同学们实践来看,需要细化优化喂给AI的问题,至少不能一股脑全喂进去,否则不太可能得到想要的结果。

2 0 复制链接
苏杭之 2022春
  • 课程难度:中等
  • 作业多少:很多
  • 给分好坏:一般
  • 收获大小:一般
  • 难度:中等
  • 作业:很多
  • 给分:一般
  • 收获:一般

事实上,这是我第三年踏进这个班级了。

大二上的时候提前选修了这门课,然而后面学的一团糟放弃选修跑路了。

但是对于空间物理的同学来说本质是一门必修课,不然学分修不够(按照我们这年仍然如此)。

于是去年正常选了这门课,然而后面由于身体原因学期中休学回家,再次没上完。

今年复学办完手续进来看到老师他的第一反应是:我认识你!

很夸张。

说回课程,由于我连续修读了三年该课程,对于从20年至22年的发展是有一个大概认知的。既然前面的同学对于这门课的内容说的已经比较明白,我就不多加赘述了,单纯讲讲三年来的变化。

20年的课程作业量非常低,且没有助教,不知道是因为线上授课的原因还是因为没有助教工作量太大,当时前半学期的作业老师没有要求学生提交,最后上机次数也不算多。授课顺序是先讲完fortran再讲idl。

21年课程有了两位助教,作业略有提升,但总的来说也是从fortran部分第十章开始才成规模地要求提交作业,上机报告要求也并不严格。进行了三次上机两次考试。授课顺序与20年一致。给分应该是平时分30第一次考试40第二次考试30来给。但是21年最后给分并不好,听我的同学说最后优秀率不到20。

22年课程同样是两位助教,不过今年作业量大幅提升了。从fortran第一部分就开始要求提交作业,对于上机报告的提交也更为严格了。总的来说,今年大约交了11次作业和5次上机报告,每次作业由2到4段fortran和idl程序组成。作业量相对于3学分的课时来说是很大的。但是由于同学的要求,今年只进行了一次考试,最后给分是按照平时作业(含五次上机)40、考勤10、期末考试上机50的比例来给。按照老师的说法,今年优秀率约30,75以上约60。同时,今年调整了课程的顺序,可能是因为隔壁薛老师的空间探测前半部分会涉及idl的内容,所以今年再讲完fortran数组部分后就先讲了idl部分,有意思的是薛老师也收到了学生反馈,今年将idl放到了学期末讲,有点双向奔赴的意思。

感觉作业量上升像是大势所趋一般,今年所有课都比去年作业多了不少。

idl部分其实有很多还不错的工具书,优于老师提供的help文档,但是却不太好找,希望老师明年能给同学提供一些参考,感觉会好很多。可惜的是,这些工具书我也是考试前一天才发现的。

2 2 复制链接
十分响亮的名字学长球球idl工具书
苏杭之回复 @十分响亮的名字: 可以加我qq 2124937449
立即登录,说说你的看法
senzh 2017春
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:一般
  • 难度:中等
  • 作业:中等
  • 给分:一般
  • 收获:一般

本文采用fortran的注释方法23333

给八分吧。

!引言

这门课教的是fortran和idl

苏老师人非常年轻,也非常幽默2333333

但是考试经常考语文题(阅读理解

考试一不小心跪了一两次就会gg了2333

作业蛮多的,每周做的都挺痛苦,而且经常get不到助教的给分点Orz

!给分

给分不是特别好

班上70~人

只有一个4.3

两三个(三四个?)4.0

不过优秀率还是给满了,一大把3.7

所以只要认真学了,拿个3.7不是什么难事(我就是3.7)

!考试

考试是五次上机和一次笔试

考试是效率优先,就是谁先做出来谁分高……

所以随机性很大,哪天不小心脑抽筋了就玩脱了……

上机考试完全开卷,除了相互讨论干什么都行(包括上网查)(查到算我输——苏振鹏)(← ←我杜撰的)

平心而论考试不是很难,但是每次都很难get到苏老师的梗……所以经常要花很长时间理解……所以每次都很绝望……

于是我就跪了两次Orz

如果要拿4.0+的话考试最多只能跪一次……

emmmm

大家掂量一下吧2333

!关于选课

这是地空学院空间物理和大气物理专业大三下的专业课

建议大二选,因为这门课只需要用到计算方法和数理方程的一点点知识(不需要掌握,知道就好了)

就是runge-kutta算法和gamma函数什么的!其中计算方法比较重要

大二选说不定还可以考的好明年给同学做助教呢233

不建议大一选,因为计算方法和数理方程都没学

不过这学期有几个大一的dalao选了,而且拿了优秀,太强了……

!收获?

这门课收获不如想象中的大,不过还是不错的

掌握了一点点fortran和idl!并且让我忘了怎么写C了……

因为同时在上计算方法课,所以计算方法课的大作业也是用fortran写的,算是现学现用吧

!其他

平心而论考试不是很难,就是很难get到老师的点……

所以很气……

最后拿了3.7,也不算很差

就是有点不爽吧╮(╯▽╰)╭

1 0 复制链接
艾尔的利刃 2023春
  • 课程难度:困难
  • 作业多少:很多
  • 给分好坏:杀手
  • 收获大小:没有
  • 难度:困难
  • 作业:很多
  • 给分:杀手
  • 收获:没有

苏杭之让我打的。 还说我太短了

0 0 复制链接
随机过 2018春
  • 课程难度:中等
  • 作业多少:很少
  • 给分好坏:一般
  • 收获大小:很多
  • 难度:中等
  • 作业:很少
  • 给分:一般
  • 收获:很多

首先给分就是按开学说好的比例,到时候会根据实际情况调整,总体来说也蛮正常的。

作业的话呈逐年减少的趋势,稳步趋向正常水平。

考核只考各种数值算法,上机考试是看谁做得快,就算做出来但是很慢的话分数也还是很低很低,所以介意这一点的慎选。

个人而言,收获还挺多的,首先掌握了一门很古老的编程语言,讲道理,现在基本没有课专门讲Fortran了,但很多时候你必须学,因为有很多很优秀的古董代码是用Fortran写的。画图的话,听说下个学期开始强制使用IDL。其实IDL跟MATLAB差不多吧,就这门课而言,问题不大,还能学会一门冷门的制图软件,毕竟IDL的学习资源是非常少的,有人指导还是很好的。还有会讲一点并行程序设计,这挺好的,之前我一点都不懂,学了之后感觉很有帮助。

总之,空间物理的最好选,其他专业的看需求吧,只是想学数值算法,像计算物理等等会介绍更多的东西,没必要选,这门课讲的东西仅仅是用Fortran实现《计算方法B》这门课的东西,比较浅,像经典的有限差分、有限元方法都没讲,想刷成绩的慎重考虑,考试基本不比正确率和代码的高明,主要看速度,不确定性挺大的。

0 0 复制链接
2017春
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:一般
  • 收获大小:很多
  • 难度:中等
  • 作业:中等
  • 给分:一般
  • 收获:很多

大二选的这门课

学习Fortran语言和IDL绘图,感受科学计算和绘图的美妙

用处挺大的,收获很多

考试基本看五次上机考试,对,我就挂在上机考试上了

但是感觉作业比较多啊...貌似去年超级少的...评分我就折个中吧,明年可能会减少吧

0 0 复制链接

苏振鹏

教师主页: 暂无

其他老师的「科学计算与程序设计」课

未知 2017春

苏振鹏老师的其他课

FORTRAN语言 2015春 2014春...
磁层物理 2025秋 2024秋...