选课类别:基础 | 教学类型:理论课 |
课程类别:研究生课程 | 开课单位:天文学系 |
课程层次:硕士 | 学分:4.0 |
《天文应用软件与编程技术》由王宇老师和王春成老师授课,主要教授Linux系统(以Ubuntu为例)的使用和IDL语言的基本操作。前半学期着重于Linux的基本操作、文件和目录管理及Shell脚本编写,后半学期则是IDL语言的基础语法、数据处理和绘图。对于零基础或想用IDL进行数据处理的新手来说,这门课程是很好的入门选择;而有一定Linux经验和编程基础的学生可能收获有限。
王宇老师的讲课风趣幽默,对课堂氛围的把握较好,学生互动积极。王春成老师则声音沉稳,讲课详实,例题演示细致。两位老师都注重实践,鼓励学生带电脑上课,以便实时操作和学习。
课程没有作业,但老师建议课后多加练习。期末考试为开卷考试,包括判断、选择、编程等题型。编程题主要考查Shell和IDL脚本的编写,要求程序能够在老师的电脑上正确运行。对于没有基础的同学,带上打印的PPT复习即可应对考试。
评分包括考试成绩和平时分,平时分涉及三次点名。总体给分较宽松,按时出勤且考前认真复习的同学普遍成绩较高。
课上无作业压力使学生较为轻松,且课堂氛围融洽。推荐天文学相关专业的学生选修此课程。对于选课的学生,建议在课前提前安装软件并随课堂进行实践操作,有助于更好地理解和掌握课程内容。
关于上课:两位王老师讲课都非常非常详细(所以知识密度就有点低了),并且在讲解过程中辅助有代码展示和运行,课堂氛围比较轻松,课间还会讲一些有趣的事情。
关于作业:没有作业,但是老师建议大家课后多动手练一练。
关于课程:这门课内容不多,主要是用来督促自己自学Linux(转码),包括添加/删除程序及软件包管理、用户管理、文件和目录管理、系统管理、硬盘管理、进程管理、网络管理、Shell脚本等等,都是实际科研过程中会用到的。一学期下来Linux从零起步到可以写一些简单的脚本,收获很多,非常不错。参考书的话可以看看《鸟哥的LINUX私房菜》,cover了课程大部分内容(实际上没有必要,因为课程本身不难)。
关于考试:期末开卷,不难,大部分时间真就是抄讲义🤣,只有最后的四道编程题可能拉得出差距。四道编程题两道是写简单的脚本,不难;另外两道IDL,一道白送5分(PPT有源代码),另一道关于画图的不是太会(毕竟IDL我还没有复习完orz)但是凭感觉写完了。
关于给分:直接出总评,卡94,难受😣
整理了这门课的复习资料,等修订完了放上来,比翻ppt快。
Linux系统与天文软件包IDL第一部分.pdf(24.7MB,password:ustc1958)
-----------------------------20230808更新第二部分-----------------------------
Linux系统与天文软件包IDL第二部分.pdf(14.5MB,password:ustc1958)
(剩下的等有时间再说了orz)
-----------------------------20231228更新编程题--------------------------------
只列出我写的 shell 脚本的答案,都很短小(现在来看实际上还可以更简单),具体功能不难看出,就不说了。IDL理论上会有一道 PPT 上的原题,另一个应该就是画图,但是我没复习到那里orz。
需要注意的是,老师上课反复强调编程题的判分标准是看你写的脚本在他自己的电脑上能否跑出正确结果,如果可以就给满分,而且并没有限定必须使用上课讲的命令(毕竟这是一门实用课,能解决问题就行),所以如果你知道一些高级的或者上课没讲的命令,也是可以直接用的(至少截至2022年秋是这样)。当然这也意味着编程题要写工整。
第一题:将目录里面指定文件的内容全部输出到一个文件里。
#!/bin/bash #this script... a=`ls f*` touch file for i in $a do cat $i >> file done
第二题:给定一个data文件,将其中的每一行的指定部分输出到一个文件里(split(https://linux.vbird.org/linux_basic/centos7/0320bash.php#split)不是必须的,也可以用课上讲的命令完成)。
#!/bin/bash #this script... split -l 1 data splitdata a=`ls splitdata*` touch datasplit for i in $a do cat $i | cut -d ":" -f3 | sort >> datasplit done
前半学期由王宇老师讲授Linux系统(以Ubuntu为例)的安装与使用,后半学期由王春成老师讲授IDL语言的使用。
这门课的名字,应该叫做《Linux系统与IDL语言入门》更为准确,毕竟这里并没有大家想象的各种python实用天文包、source extractor、scamp之类的……
如果已经有了一定的Linux系统使用经验,并且至少熟悉一种高级语言、比较清楚面向过程编程套路的话,选择这门课的收获就不会特别大。但如果是新手的话,这门课还是非常推荐的,老师会讲的非常详细,学习起来也不会有太大的障碍。
王宇老师上课非常有意思,对学生的宽容度也很高。我记得有一次上课摸鱼,做了个结印的动作,然后老师就在讲台上把我结印的动作学了一遍【捂脸】。而王春成老师的声音则非常地富有磁性,听起来很沉稳。
考试是开卷考试。同样地,如果已有一定的基础,考试的时候大半的时间都不需要翻阅资料,基本上能提前大半个小时交卷(选择题可能需要看一下概念,填空题大多数靠经验就能写出,代码题按照自己平时编程的习惯,照着ppt给出的语法直接写就好)。
好课可水,没有作业,点3次名给15分,零基础不听课,考试的时候把ppt打印下来,带本图书馆的《IDL可视化工具入门与提高》现查就能拿优秀
一门研究生课,本科生也可以选(尤其建议天文系同学选)。(本人大四为了学分选这门课,上了觉得挺值。)
教学内容:Ubuntu 系统的使用、IDL 的基本用法。如果将来想使用 IDL 作为数据处理工具的话,上这门课是一个很好的入门方式。
作业:无。(如果没有安装 Ubuntu 系统,最好抽空安装,一边学一边实践操作有比较好的学习效果。IDL 同理。)
考试和给分:开卷考试,可以打印好 ppt。给分还行,一学期没怎么学(在忙其他事),最后三天看了一遍课件,最后考试应该错得不多,总评 92,中规中矩。平时会有点名(大约三次)。
没有作业,三次点名都是王宇老师的部分,而且王宇老师会提前说哪几次点名,一般第一节课,课中,他的最后一节课点名。
课程不难,考试找PPT应该问题不大,最后,89,卡绩,应该是真不调
非天文学专业的代培生,因以后的工作要用到天文观测数据选了这门课。
关于课程:
本课程主要内容是讲Linux以及IDL两门高级语言,Linux部分会讲Ubuntu的安装使用、文件管理目录管理等等的基本命令以及shell脚本的编写和应用;IDL则会讲基本的语法、数据读写以及绘图等内容。在技术层面没有涉及过于高深的东西,讲授的内容也非常实用,对零基础接触两门语言的同学十分友好。如果先前对于这两门语言非常熟悉的话,学习这门课可能就不会有太多的收获。
今年王宇老师讲授Linux以及IDL基本语法的一部分。个人非常喜欢听王宇老师讲课,讲授非常细致,除过PPT的内容外还会补充一些细节知识,上课最好能带上电脑,跟上老师节奏基本就能掌握这些内容。一学期听完从小白到能上手写一些shell脚本,个人的收获还是蛮大的。老师性格也很温和,向他请教他会很耐心地进行解答,是很好的老师。
王春成老师负责了IDL程序编写还有绘图的部分,老师讲课十分地沉稳,课件上的例子老师会一一地详细演示,很负责任。这部分内容同理也是建议大家能带上电脑跟着老师来实践,基本在课上就能很好地掌握讲授的内容。
关于考试以及给分:
这门课是开卷考试,可以带打印的课件和其他纸质资料。今年题型有判断、单选多选、填空以及编程题,除编程题外的内容基本都能在课件上找到。四道编程题两道是脚本语言两道是IDL语言,这部分的评分标准是写出能在电脑上运行的符合要求的程序。脚本的编程涉及了文件内容的读取,需要综合讲过的内容来写;IDL有一题能在课件上找到类似的编程示例,另一题则是绘图题目,都很简单。
课程有平时分,学期会有三次点名,不要缺勤就好。平常认真听课,考前看课件复习,考试应该没错太多,最后成绩95,给分也很不错。
课堂氛围很好,上传资源多且丰富
开卷考试,别错太多,就可以90+
老师很认真很负责,很敬重王老师