选课类别:计划内与自由选修 | 教学类型:理论课 |
课程类别:本科计划内课程 | 开课单位:数学科学学院 |
课程层次:专业选修 | 学分:2.0 |
张娜老师的《符号计算软件》课程主要以讲义为基础进行教学,上课基本是“对着讲义念”,对于初次接触Mathematica(MMA)的同学可以听听课,但讲解深度有限,有些同学评价“主要靠自学”。MMA作为一个强大的符号计算工具,功能涵盖广泛,但对于新手有一定的学习曲线,特别是对符号优先级和模式匹配规则的理解需要时间和练习。
该课程主要教授Mathematica的基本操作和编程应用,包括数据绘图、拟合、符号计算等。课程内容实用,适合日常计算和科学研究。MMA被评价为“非常强大、越用越爽”的工具,尤其在数据处理和科学计算方面展示了其优越性。学生作业和大作业的灵活度较大,可以结合自己的兴趣进行创作,从抽卡器到24点运算程序,各种创意层出不穷。
作业量较少,每周不超过10个编程题,大多数可以课上解决。作业给分一般都很高,助教也很认真负责。大作业要求灵活,没什么特别限制,可以发挥创意,给分也较为宽松,几乎都在15-20分之间。
期末考试是开卷,手写代码,题目难度中等,主要考察对MMA函数的熟悉程度和细节(如Number和Numeric的区别)。但一些同学反映考试中存在一些不常见的“坑点”,需要谨慎对待典型易错点。
给分方面存在较大争议。总评构成是30%平时(作业+点名)+20%大作业+50%期末,但实际执行中平时分和期末分占比可能会根据班级优秀率进行适当调整。有人反映高分段“卡得较严”,往年和今年在4.3分数段的同学都非常少,而4.0相对较多,因此对于“对GPA有高要求的人”需谨慎选课。总体上,“分数水涨船高”,有时助教的打分和调整也影响了最终成绩。
总体来说,《符号计算软件》课程工作量小、内容实用、给分相对友好,适合作为水学分课程选修。但如果对GPA要求较高,需谨慎考虑。MMA作为一个符号计算软件,对于科学研究和日常计算都有很大帮助。课程助教非常负责,课程设置合理,推荐同学们特别是对符号计算软件有兴趣或者需要水学分的同学选修。
下午刚出分这就赶着过来点评了。在开始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 搞得也不错,还被群友翻出来了,一起放过来吧:符号计算改良的分析化学去公式化方法
23秋的助教来写个不改变课程总分的评课
这门课的水是无可争议的,除去考前复习走马观花看讲义的4-8个小时和对总评影响并不算特别大的大作业之外,应该是平时每周至多只用花两个小时的课,我认为不会有比这个更好水学分的专业选修课。同时这门课虽然平时水,但我个人认为收获还算可以,像我现在日常生活也会用MMA去算一些东西,作为大型计算器他也是完全合格的。
今年评课社区和往年出现了截然不同的趋势,争议比较大的点在于给分,我来客观评价下今年的给分情况以及风评两极分化的原因,后来选课的同学要不要选这门课仁者见仁了:
首先张老师的给分标准是全班统一用比例给分,这个比例最初是带四舍五入的325(大概率不会比325给分更好),然后如果优秀率超了,就把平时分的比例挪到期末,比如变成226或者127这种。
我当年全班最高分是90分,据我身边统计学,拿到4.3的同学期末分数要么是89,要么是90,但是拿到4.0的同学则多了不少,因为当时只要期末85分就稳定4.0,而当时期末85分的人数其实还是比较可观的,我印象中是有20%左右。
而今年的比例大概是0.09 2 7,至于为何出现这种过于夸张的比例,主要原因在于两个机缘巧合。
第一个机缘巧合在于,在卷子难度和去年相当的情况下,老师突然决定加时半小时,作为一门开卷考试的课,其实大部分题都是找到对应的函数用法慢慢看就能做出来,这个加试半小时,我在监考的时候,是明显的感受到降低了大家的区分度的。我监考的考场有一位同学在考试本还有15分钟结束的时候本来还有40分没写(最后的四道大题),理论上这位同学极大概率就是六七十分了,但是老师加时半小时后,这位同学成功写完了卷子,并且在最后得到了一个89+的分数,而有些早就写完的同学最后分数和这位同学也是相当。我认为这种情况不在少数,毕竟我作为一个去年对讲义很熟悉的同学,我写完卷子也仅仅多出了5-10分钟,我相信对于大部分同学来说,这就是一张对讲义比较熟悉才能按时写完的卷子,所以是区分度毕竟合理的。但是加时的半小时抹去了这些区分度。
第二个机缘巧合在于,注意到我上面说的加时导致简单题区分度降低,于是最后的区分度只能是在于中档题。(有一个填空题正确率不到8%,以及一个给分点正确率不到5%,这两个点我就不讨论了),而中档题在我看来,就是卷子的最后两道题,本来靠着20分区分一下大家也是个比较美好的事情,但是问题就在于,卷子的倒数第二题和我在课程群里面发的作业答案的有一题非常像:作业答案是研究一个函数f[n]在n是奇数的取值,考试研究的是一个f在奇数和偶数的值,并且和作业不太一样,作业相比考试题目没有加最外层是0的限制,因此作业那题答案的做法,仅仅是在f[5]的时候和考试的那个f[5]一样,这也导致了很多同学的误解,然后直接在考试的时候抄这题的答案。(别的不说,光是mid=(n+1)/2,然后对a[[mid]]赋值就已经是巨大的错误了,因为n不一定是奇数)本来按照老师的说法,是需要用通过的测试样例个数来决定给分,不过最初这样执行的时候,一半抄作业答案的同学和不少硬钢但没考虑偶数的同学都会因此至少损失6-8分。(最初的测试样例给了三个偶数)
后来是综合考虑,不希望这种一眼看错的情况直接断送整个考试,才采取了之前某门随机过程课也采用的方法:截断制给分。(当时是有个15分的判断题玩了点文字游戏,为了不让被这个文字游戏坑的同学直接损失15分,最后给分标准是只看判断对不对,判断对给15分,判断错给12分,这次采取的是只看f[4]对不对,来给6或者10分,当然如果写的函数不完整或者压根白卷,那还是6分都没有的。)也就是唯二有区分度的题也因为一些各种考虑使得区分度仿佛是一个填空题而不是大题。
今年的巧合未来应该不太会发生。因为老师以后肯定不敢加半小时了,我目测也不是每个助教都会发全部题答案什么的。我们说回给分的话,我来提供一些内部数据吧。
选课人数123人
4.3 2人,对标期末>=94(1.6%)
4.0 32人,对标期末>=87(26%)
3.7 49人,对标期末>=82且大作业做的比较好的同学,优秀率是39.8%,但是期末大于等于82的人有55个,也就是(44.7%)
再往下的数据我就不算了,最开始我发到群里的分位数有一点点误差,因为程序写错了导致的(雾
这回的数据是拉excel获得的,应该不会有误
我个人认为这回的机缘巧合未来应该不太会发生,比例未来应该就是趋于正常了,从这个角度来说,这门课还是可以大胆选的。毕竟期末考90不会是一个特别难的事情。
前面两位点评做得大作业都好高级) 本人不才,写了一个没什么好截图展示的、由于语法树遍历方式很愚蠢导致效率几乎为0的MMA解释器(大概理解为用MMA写了一个可以运行MMA代码的工具(?)这种套娃行为),也算是表达一下对lc老师的爱(关于lc老师,详见之后会写的编译评课)
说回正题。平时任务很少,也很简单,不过有点名可能所以还是得去上课。大作业由于今年是第一年搞,没任何要求,大家可以自由发挥,然后我们就看到了助教截图发群里的抽卡模拟器和ikun画图。总体来说大作业给分应该不错,但还是给出了区分度[这点值得夸夸助教]。然后就是一个手写代码的开卷考试,个人觉得不难,但有些书上都未必能找到的坑点。
总体来说是较为轻松的一门课,水个学分开开心心x (另:我们的助教xgg很帅
平时作业满分,大作业满分,期末90应该在7/120排名左右,最后A,上面助教已经说了120人的班只给了2个4.3,这就很难受了(去年可能也就两三个4.3,刚好认识前两名的学长),但是对于4.0分段来说是比较友好的(32人)。
平时不用听课,老师自己也知道没人听课,就念一下讲义。写作业的时候如果自己写的话可以学到一些mma的使用技巧,作业内容不多可以课上写完,大作业给分也挺好的不用花太多时间。
本身mma是挺有用的一个工具,有实际作用不会学了用不到,学一下是不错的,比如我用mma改了线代B2的期中卷子(
这学期助教人很好也很负责,这分是看着助教给的。
总之强烈建议水学分,对gpa没有过高要求的人选,事情非常少,并且属于计算数学专业选修课程。如果对gpa有点强迫症的人谨慎,因为考试和大一的c语言很像,这东西比较坑,很难保证考一个足够高的高分(前一两名)。
作业迟交一次,106/110,大作业19/20,期末70/100(期末平均76),总评2.7,B-
我承认我是摆子,但是未达优秀不卡绩的情况下向下调分是我没想到的,还调了两挡
张老师应该是第一年教这门课,上课基本对着教材演示一遍,也会提示一些需要注意的点,作业老师挑着书上的布置(听说去年茂爷全要求了),经常需要复习网课和百度来找问题()
助教gg改作业挺认真的,答疑啥的都会细致的给建议(就是没啥人来),而且超帅的()
考核是作业3大作业2考试5,作业给分基本都是满的,大作业在15到20分之间,有一定区分度,我个人因为不想卷就画了个图17,整活似乎容易得到高分(指抽卡和ctrl),但有人写了个论文卷20,我的评价是:人和人是不一样的。考试开卷笔试,一写运行结果,二代码小题,三代码大题,建议把作业打印出来,书买一本或借一本,有较好的参考结果。程序助教都会酌情给分,所以能写就写。
最后,mma是相当实用的工具,对于其他科目的学习(数值代数:喵)乃至以后学习工作都很有帮助,这门课也很适合水学分()why not
水课,主要教你一些mathematica的基本操作,基本不用来上课,作业很简单,大作业区分度也不高,给分主要参考期末,但是这学期期末又比较杀,很多细枝末节的东西ppt上也没有。作为一门水学分的课程还是可以的,但是作为计算学生的专业核心选修是否有点?
这学期的助教非常非常负责,给满分
优秀率肯定没拉满。为什么这么说呢,因为成绩40%的同学问了好几个都是卡绩。
老师说大作业最后所有人都给满了,完全按照期末考试给分。 既然如此直接随便交个作业就OK
但是夏助教真的超好超负责
上课没听过,不好评价老师的讲课怎样,但是从上学期概率论的经验来看应该还是中规中矩的,这门课主要靠自学,平时作业看看书上的函数示例就能很快写出来。
老师这学期每节课之前都会把本节课作业布置下来,这点超级好评,课上就能把作业写完。
考试前花一天把讲义、书过一遍就行,平时不用学。这学期最后考试难度很小。
大作业只要不太水就给的不错,我觉得花个一天足够了
给分有点难受,平时作业全满,大作业18/20,考试90/100,算一下的话给4.0是可以接受的,但是考虑到期末90+就5个人,不给4.3还是让人难以接受
这门课事少,老师上课也就是演示一下讲义内容,作业基本上课就能完成,一些比较麻烦的题目,可以直接让gpt来写😋。考试基本靠考前一两天速通,而且在14周考挺舒服的,感觉挺适合水水学分,虽然今年期末卷出的呃呃,没什么区分度,给分有点小杀😥
对于想水一下课或者接触一下mma的大一大二学生,只要会一点微积分和线性代数就没什么问题
mma作为纯工具软件,给分实在是有点恶心,在这门课上花很多时间没什么道理,不花时间吧也就只能过,绩点还能被拉,建议大四再选
老师讲的不错,很细致。 mma也是很好用的计算软件,能学到很多。
唯一遗憾的是分数水涨船高,给分不是很满意。