20145208 《信息安全系统设计基础》课程总结
20145208 《信息安全系统设计基础》课程总结
每周作业链接汇总
- 第0周学习总结:虚拟机安装和Ubuntu的基本操作
- 第1周学习总结:Ubuntu终端下的C语言编写
- 第2周学习总结:gdb的基本操作,了解了计算机信息表示和处理
- 第3周学习总结:计算机中各种数的表示和运算
- 第5周学习总结:汇编语言
- 第6周学习总结:Y86处理器,ISA抽象
- 第7周学习总结:理解局部性原理和缓存思想在存储层次结构中的应用
- 期中总结:知识点总结
- 第9周学习总结:系统级I/O的内容,了解了函数的内在
- 第10周学习总结:系统级的I/O内容
实验报告链接汇总
代码托管链接和二维码:
-
二维码:
git log格式化日志截图
代码量汇总
代码驱动的学习做到没有?
- 代码驱动的学习在本学期初的时候只是大略的看了一遍,没有认真的去理解和学习,在每周的学习中都按照自己的习惯去管理、编写和编译代码,因为很少遇到问题而且效率方面自我感觉良好,所以一直没有重视代码驱动学习,但是在本学期中段的时候,我渐渐意识到了代码驱动学习的意义,也开始去学习代码驱动学习博客中规范的代码管理和编写编译的内容,使用cd命令的次数越来越少,以前经常用cd的命令或者鼠标切换文件夹执行相关文件,但是学习了之后开始利用相对路径的方法来直接执行相关文件,这样很明显的体现出命令行比鼠标操作的快捷之处。
- 一个规范的代码管理,可以通过规范的文件夹来让文件更有层次,一方面方便自己进行管理和使用,一方面在git之后方便其他人去理解整个代码的层次和体系结构的内容,从文件结构上增加可读性。
心得
- 在代码学习的过程中,一开始我的做法很简单,很多时候gcc一下再运行一下,如果对了就过,出错了才会去看代码,去纠错,这样的方式学习的速度很快,但是漏掉的东西也很多,后来,在老师的要求下,必须对代码中的内容进行分析,这之后,我发现了代码很多时候不是我看到的那样,我看到并不是全部,里面的头文件的内容也很丰富,各种函数调用的宏也很多,每个宏的意义通过grep和man来看一下会让我更好的理解这个函数的用法,从而更好的理解整个代码究竟要做什么,有是怎么做的,如果出错了又从哪方面入手去检查,这些东西都是必须去看代码去查函数和宏定义才能知道的,单靠gcc我们永远不会对代码有更深入的理解。
- 通过本学期对代码的学习,我最大的经验教训就是,千万不要对一个代码仅仅只是编译运行,这就相当于去参观画展,要做的不是走一遍看一遍,而是仔细去分析去理解每一个作品,会学习的人和会艺术的人跟普通人的区别都是差不多的,会学习的人可以通过深入学习一个代码而学到普通人编译运行一百个,懂艺术的人看一幅画看到东西胜过普通人看一个博物馆看到的东西。
第0周作业中的问题
整体评价一下第0周作业中自己提出的问题是不是抓住了学习重点
- 没有很好的抓住重点,一些问题在当时觉得重要现在看起来在那个章节中并非重点
回答一下第0周作业中自己提出的问题
- 处理器是如何实现多进程的运行和切换的?
- 通过上下文切换的机制;
- 浮点数在计算机中是如何计算的?
- 使用IEEE标准指定的规则计算
- 各种对数组的操作是如何实现的?
- 当初我问的这是什么东西?!真是……回答不上来
- 如何使用Y86指令集进行操作?
- 书中给出了一个指令集的图,利用设定的指令编码组合成相应的汇编语句。
- 优化程序性能需要注意哪些点?
- 消除循环的低效率;减少过程调用;消除不必要的存储器引用。
- 高速缓存的友好代码为什么友好?不友好代码又是哪里不友好?
- 友好的原因:让常见的情况运行的快;在每个循环内部缓存不命中数量最小;不友好的代码没有满足上面的条件甚者背道而驰。
- 动态链接共享库如何实现?
gcc -fPIC -c *.c
和gcc -shared -o lib*.so *.o
来实现动态链接共享库
- 在信号传递中如何规避错误风险?
- 通过同步流来避免并发错误。
- 局部性在虚拟存储器中有何意义?
- 局部性保证了在任意时刻,程序往往在一个较小的活动页面集合上工作。
- 我们该使用哪些I/O函数?
- open函数打开文件,close函数关闭文件,write函数写文件,read函数读文件;还有printf和scanf等执行带缓冲区的函数
- web服务器如何搭建?
- 通过socket编程实现。
- 如何提高并发线程安全?
- 每一个需要进入临界区的线程需要获取锁并且应该在随后的操作完成后释放锁。
项目加分
- 优秀作业
- 第2周学习总结
一些经验
- 对于加分项来说,最简单的就是博客加分,只要在每周写博客的时候多用心,基本上可以稳定的每周加一分,这也是为什么很多成绩好的学生早早就加分满了的原因。
- 至于如何博客获得加分的问题并不难,只要有足够的实践内容基本上都可以得到加分,单纯的摘抄是没有意义的也不会获得加分,反而浪费了大量的时间,当然这也并不是说实践节省时间,如果想要深入的理解实践的内容的话,需要付出的时间肯定比摘抄要多,只不过,实践会使我们的时间消耗的更有意义。
- 不光是博客加分,课程的其他加分项大多离不开实践,老师相比于让大家摘抄更倾向于让大家实践起来,学到更多的东西,当然结果往往是学的认真的人学到的东西越来越多,对本课没有兴趣的同学始终没有进行实践,这也是为什么获得加分的人往往分数会有所富余而加不上去,但是需要加分来满足及格的人总是缺少附加分的原因,我想这一点与老师设立加分项的初衷是有所出入的,虽然发现了更多学的好的同学,但是对于需要加分及格的同学却帮助比较少。
- 所以有一点很有道理,如果一开始是抱着及格的目标来学这门课,往往及格的路比较艰难,就像大多数时候人们总是做的比目标差一点一样。所以建议选了这门课的同学不妨把目标定得高一点,这样最后的分数也会相对理想,同样的道理也适用在工作和生活中,不妨目标也高一点,进取的心也强一点。
待及格管理制度的优缺点
优缺点
- 优点:
- 可以更好的督促待及格的同学,使他们跟上教学进程
- 缺点:
- 治标不治本,往往待及格同学本身对课程缺少兴趣,加压加负也很难带动积极性
- 建议:
- 可以挑选一些可以帮助学习理解教材内容的题目或者实践内容来作为额外加分项提供给待及格同学,这样既可以让他们学到内容,也可以脱离待及格,如果做了只是不扣分的话,可能积极性还是不够高。
课程收获与不足
自己的收获
- 学习本课,收获的不只是教材上的知识,还有学习的方法和习惯。
- 不得不说,本课程的教学内容很充实,知识点也很多很丰富,学习的压力比其他的课程真的要大不少,如果选了这门课,就意味着本学期的时间会过的很“充实”,其实是紧张,将近700页的书用14周学完,平均下来每周至少要学40页以上,而且还有很多代码需要去理解,耗时的不是敲代码或者编译运行,而是去理解代码,这些学习任务将会占据很多课余时间,如果有哪一周的内容多了难了的话,可能会因为这门课搭大半个周末。
- 不过,学习的虽然紧张而且辛苦,但是,如果真的坚持下来认真学习的话,收获也是很大的。也许过了一年时间之后,教材中很多东西都已经记不得了,但是实践过的东西还是会记得,就像git,像调试,像linux使用,这些都会变成技能,也许会生疏,但是稍稍用一下就会熟练起来。而且掌握的不仅仅是几个技能而已,更重要的是一种学习能力,一种自学的方法,一种理解问题的技巧;一学期的坚持让我有了不错的学习效率,更快的掌握一个新的知识的能力;本课几乎是靠自学,根据老师提供的资料来发掘可学习的内容,在其中找到自己认为的重点,将知识点串联起来变成知识网络,在自学中建立一张知识地图,同时在自学中掌握督促自己的能力;看到问题不要急着去问,先动脑思考,想问题的相关知识点,给自己几种可能,然后结合着实践来确定自己的猜想,再通过强大的互联网体系寻找自己需要的答案或者方法,这个过程中,真正宝贵是这个过程,而不是最后那个结果,所以如果一遇到问题就去问知道问题答案的人的话,得到的收获也是有限的。
自己需要改进的地方
- 自主学习的积极性:都说律人易律己难,这是很有道理的。一个人自学的时候难免会想着偷懒,会想着休息一会何必那么辛苦,既然没有人监督为什么要那么努力……这些都是人的惰性,不好但是合情合理,学习久了就会辛苦,主观能动性就会下降,而这个下降的幅度是和自己的目的有关系的,如果想着的是不要挂科,那么这是最低的能动性,下降的也是最多的,如果想着高分的虽然能动性不错,但是也会经常下降,我就是这样,虽然想拿更好的成绩,但是也会觉得有点自我满足的惰性;最理想的还是一种对自己未来负责的目标,不仅仅是为了一个高分,也是对自己有着很高的期望和要求,并为之努力不懈。
- 希望自己可以在以后的学习、生活和工作上,减少惰性,目标可以更大一点,对自己的要求更高一点,君子慎独,严于律己。
给开学初的你和学弟学妹们的学习建议
-
在开始学习课程前看看学长学姐的总结博客,对这门课有一个初始的认识,然后想一想学长学姐学习之后写出的心得和给出的建议,那会对学习这门课有很大的帮助。
-
与同学交互最多的和阅读量最多的是第零周总结。
往往越有借鉴意义的阅读量越多。就像第零周的总结 在安装虚拟机中遇到了问题 将自己的解决过程分享出来 那么遇到了同样问题也会参考一下。
经常写有价值的博客可以锻炼自己也可以帮助别人。自己可以思考的更多 学到的也更多。长此以往 自己经验变得丰富 而别人有了问题也会想着和自己交流。
如果重新学习这门课,怎么做才可以学的更好
- 每周一定要好好理解教材和代码等内容,不可以马虎带过,这样不仅学的不够扎实,还会直接影响到每周测试的成绩,比如高其同学之所以能拿100分,于他平时测验的优异成绩是离不开的,而他的成绩就源于他对教材和代码的理解以及动手实践的过程。
- 反复强调的就是动手实践,每个代码一定要自己看一遍,带着问题和猜测去走一遍,然后带着验证的心思再对照一下,这样可以帮助我们更好的理解一个代码,也是深入理解计算机系统,将那些都理解了,那么成绩自然不会差,90分以上很容易,100需要努力和细致。
问卷调查
- 你平均每周投入到本课程多长时间?
- 20个小时
- 每周的学习效率有提高吗?
- 学习中期有所提高,后期比较稳定。
- 学习效果自己满意吗?
- 大多数时候还是比较满意的,解决出问题的速度也还可以。
- 课程结束后会继续一周至少一篇博客吗?
- 希望自己可以坚持
- 你觉得这门课老师应该继续做哪一件事情?
- 每周考试和博客加分,以及试题解析
- 你觉得这门课老师应该停止做哪一件事情?
- 没想到什么需要停止的事情
- 你觉得这门课老师应该开始做什么新的事情?
- 我觉得可以让前十名同学和后十名同学自愿结对来帮助前面的同学深入理解也帮助后面的同学提高成绩
- 其他
- 有一些实践是一些同学自己想出来的,书上和老师都没有给,我觉得这样的实践应该给予表扬,当然如果参考别人的实践又做了一个类似的实践可以也表扬,但是如果只是单纯的重复做了一遍就没有什么意义了。如果对二者同样表扬的话,不仅对第一个做实践的人不公平,还会打击到愿意做实践的同学的积极性。
总结链接和二维码
-
二维码
posted on 2016-12-24 17:05 20145208蔡野 阅读(159) 评论(3) 编辑 收藏 举报