Introduction
UT的R语言作业,比起上次的A1,这次的作业竟然要求画56张图,真是丧心病狂。
使用Data frames去读取数据,然后运算,然后写函数去运算,不能使用index而只能慢慢的去loop,效率低不说,这么大的数据量,卡是必然的。
每个图差不多都要运行5秒才能得出结果,画全套图得好几分钟才能完成。
UT的R语言作业,比起上次的A1,这次的作业竟然要求画56张图,真是丧心病狂。
使用Data frames去读取数据,然后运算,然后写函数去运算,不能使用index而只能慢慢的去loop,效率低不说,这么大的数据量,卡是必然的。
每个图差不多都要运行5秒才能得出结果,画全套图得好几分钟才能完成。
第二部分的作业,主要是共享和取消共享,需要实现共享链,比如Alice共享文件A给Bob,Bob也可以共享文件A给Carol。当Alice取消共享给Bob的文件A时,也会自动取消Bob共享给Carol的文件A。此外需要考虑各种各样的攻击,跑过包括上一次在内的全部测试集。
Insert Sort和Merge Sort是排序算法中两个最基础的算法,虽然实际中很难用到,但是作为排序的启蒙还是不错的。
此次作业要求写出Insert Sort和Merge Sort,并根据随机输入对比两个算法的时间复杂度。分别在最好和最坏以及平均的情况下,通过不同数据量的输入进行对比实验。
大数据作业,利用Hadoop去跑数据集,先是几个基本的MapReduce简单问题,当然也可以用Hive,然后是去计算TF-IDF,当然,数据集得自己下,Hadoop平台也得自己去搭。
一个21点的扑克牌游戏,作业提供了框架以及游戏引擎,不过UI库是学校内部的,需要学习成本。刨除UI部分,整体不难,无非就是deal, hit, stand三个按钮,然后label显示得分。
D3.js是Javascript中的一个利用Html5的SVG的图形库,主要用于数据可视化。用他画出来的网页的确是狂拽炫酷吊炸天,但是如果浏览器很差的话,或者计算机性能很差,或者数据计算量很大的话,会卡到死。
D3总体来说还是不错的,内置了jQuery语法,熟悉选择器的话,这个库上手很快。
但是,这个库要求有很好的HTML5基础,特别是SVG标签的用法。
Toronto的R语言作业,和Toronto的其他作业一样,属于难度不高,但是细心度要求非常高,稍有不慎就会丢分。另外规矩也是一大堆,comment/docs/coding style什么的仅仅是最基本的要求而已。
一共写6个函数,运行后需要画10张图,然后找其中最优的欧氏距离。
调试方面,R语言还是比较方便的,打印变量、画图等,不过相对的,由于没有方便的IDE支持,编程速度相比C/C++,Java,Python倒是慢了不少。