选课类别:计划 | 教学类型:理论课 |
课程类别:本科计划内课程 | 开课单位:数学科学学院 |
课程层次:专业选修 | 学分:2.0 |
下午刚出分这就赶着过来点评了。在开始balabala之前还是得先拜一下我的
文末我会简单谈一下我对mma的看法。
总的来说还是相当推荐这门课的,任务量少,考试时间不在考试周,给分也还不错。无论是单纯为了蹭两个学分还是当成一门公选期望拿一个好成绩都很适合。日常上课老师主要是对着讲义念,如果是初次接触可以听听,如果之前接触过mma的话可以对着讲义和那本科大的参考书自学。作业是真的很少,每周平均不超过10个编程题,大多数都是一两个函数就搞定了(记得活用F1键),本学期的助教作业给分也很好,比个心。
总评构成是30%平时(作业+点名)+20%大作业+50%期末。大作业的话没有什么特别限制,想做什么都可以,然后有些同学就做了一些非常有意思的东西,例如抽卡器,还有画了个小黑子的(乐)。我自己的话是结合自己的专业相关知识做了一个磁镜加速的单粒子运动模拟,请看下面这个gif:
大作业给分的话,助教说的是基本上都是15-20分,还是给分很好的。期末考试是开卷,然后手写代码,题目难度中等,对相关函数这些有个大致印象即可,开卷反正可以翻书,就是需要注意一些典型的易错点,比如Number和Numeric的区别,函数定义加不加冒号的区别,等等。最后总评出来老师应该是往上抬了的,不然班上卷面最高才90,那基本上给不到几个满绩。总的来讲还是非常推荐这门课。
最后谈一下我对mma的一些个人看法。毫无疑问,mma在综合符号计算方面的能力应该是无出其右,无论是其遍布几乎常见所有科学领域的强大内置函数库(下图取自mma官方帮助文档的首页),
还是其优秀的交互性(例如C语言接口和LaTeX代码互转),在同类型的计算型软件中都可以称之为非常优秀。另外,mma本身自带的UI和文字排版系统体验感也极好,在此一并安利。我个人的评价是,mma只会
不过还是需要提醒一下,mma对于新手来说还是不太友好,因为mma会有很多易错的地方,比如符号优先级(特别是@,/.这些特殊符号一般的书上只会介绍功能不会介绍优先级)和模式匹配规则,以及mma在运行时不容易报错(这就容易造成不知道该从哪里出发debug),这些东西也只能是多多益善熟能生巧。如果只是平常使用的话,当成一个强大的计算器(比如算积分和联络系数)其实也基本上足够了。
Mathematica 画的图非常非常好看(比 Origin 和 MATLAB 画的好看多了),对于我这种经常要分析数据写实验报告的同学来说是一大杀器。特别是做拟合,用 LinearModelFit 和 NonlinearModelFit 简直不要太简单!
画图可以多修饰一下,比如像下面这样:
legend =
SwatchLegend[{{RGBColor[0.24, 0.3531726744018182, 0.6],
Opacity[0.7]}, Hue[0.12, 0.8, 0.8], Hue[0.17, 0.6, 0.5], Hue[
0.1, 0.83, 0.96]}, {"real data", "3 days", "5 days", "7 days"},
LegendMarkers -> Graphics[{EdgeForm[Black], Rectangle[]}],
LegendFunction -> (Framed[#, RoundingRadius -> 5] &),
LegendMargins -> 5];
linearresult =
ListLinePlot[{turnovernew, pre3table, pre5table, pre7table},
PlotLegends -> Placed[legend, {0.85, 0.75}], Frame -> True,
GridLines -> Automatic, PlotLabel -> "Linear Regression Result",
PlotRange -> {0.055, 0.65},
PlotStyle -> {{RGBColor[0.24, 0.3531726744018182, 0.6], Dashed,
Opacity[0.7]}, Hue[0.12, 0.8, 0.8], Hue[0.17, 0.6, 0.5], Hue[
0.1, 0.83, 0.96]}, FrameLabel -> {"( d )"}]
效果如下:
为了避免自己写的代码像 Cathematica ,薛定谔的大猫 同学给出了一些建议,这里也建议大家多用 Map(/@) 和 Apply(@@) 以及 ReplaceAll(/.) 三个函数,并且多用 Module 写自己的函数。无聊的时候写了个从四个正整数以四则运算凑 24 的程序,可以作为参考:凑24.pdf
不过,.nb 文件唯一不太好的地方在于不好观察代码行的缩进,有可能会在编写较复杂程序的时候造成一些麻烦。为了解决这个问题,可以保存成 Wolfram Mathematica 程序包 .m 然后再用 mma 打开,就可以用 tab 来缩进了。
期末有大作业:用 Mathematica 实现一个东西,不限字数。群里有做抽卡模拟器的、有做魔方的、有做 2048 的,还有画 ikun 图的,助教哥哥那天玩的一定很开心。
当然还有拿 mma 赚钱的:用符号计算软件研究股票.pdf
去年学分析化学I 的时候拿 mma 搞得也不错,还被群友翻出来了,一起放过来吧:符号计算改良的分析化学去公式化方法
前面两位点评做得大作业都好高级) 本人不才,写了一个没什么好截图展示的、由于语法树遍历方式很愚蠢导致效率几乎为0的MMA解释器(大概理解为用MMA写了一个可以运行MMA代码的工具(?)这种套娃行为),也算是表达一下对lc老师的爱(关于lc老师,详见之后会写的编译评课)
说回正题。平时任务很少,也很简单,不过有点名可能所以还是得去上课。大作业由于今年是第一年搞,没任何要求,大家可以自由发挥,然后我们就看到了助教截图发群里的抽卡模拟器和ikun画图。总体来说大作业给分应该不错,但还是给出了区分度[这点值得夸夸助教]。然后就是一个手写代码的开卷考试,个人觉得不难,但有些书上都未必能找到的坑点。
总体来说是较为轻松的一门课,水个学分开开心心x (另:我们的助教xgg很帅
张老师应该是第一年教这门课,上课基本对着教材演示一遍,也会提示一些需要注意的点,作业老师挑着书上的布置(听说去年茂爷全要求了),经常需要复习网课和百度来找问题()
助教gg改作业挺认真的,答疑啥的都会细致的给建议(就是没啥人来),而且超帅的()
考核是作业3大作业2考试5,作业给分基本都是满的,大作业在15到20分之间,有一定区分度,我个人因为不想卷就画了个图17,整活似乎容易得到高分(指抽卡和ctrl),但有人写了个论文卷20,我的评价是:人和人是不一样的。考试开卷笔试,一写运行结果,二代码小题,三代码大题,建议把作业打印出来,书买一本或借一本,有较好的参考结果。程序助教都会酌情给分,所以能写就写。
最后,mma是相当实用的工具,对于其他科目的学习(数值代数:喵)乃至以后学习工作都很有帮助,这门课也很适合水学分()why not