您的位置:首页 > 其它

20145311 《信息安全系统设计基础》课程总结

2016-12-24 21:07 585 查看

20145311 《信息安全系统设计基础》课程总结

每周作业链接汇总

第0周作业

·了解课程上课方式、做好心理预期、快速翻阅一下课本、使用虚拟机VirtualBox安装Linux系统,安装Ubuntu或/各Federa、预习Linux基础入门



第1周作业

·了解Linux操作系统、掌握核心的Linux命令:find/locate/cheat/grep/which/whereis,熟练应用“搜索”进行举一反三的学习、使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等



第2周作业

·熟悉Linux系统下的开发环境、熟悉vi的基本操作、熟悉gcc编译器的基本原理、熟练使用gcc编译器的常用选项、熟练使用gdb调试技术、熟悉makefile基本原理及语法规范、掌握静态库和动态库的生成与调用方法、理解C程序中模块的概仿,模块分解的“高内聚,低耦合”的原则、了解链接的概念



第3周作业

·理解二进制在计算机中的重要地位、掌握布尔运算在C语言中的应用、理解有符号整数、无符号整数、浮点数的表示、理解补码的重要性、能避免C语言中溢出,数据类型转换中的陷阱和可能会导致的漏洞、进一步理解“信息=位+上下文”



第5周作业

·理解逆向的概念、掌握X86汇编基础,能够阅读(反)汇编代码、了解ISA(指令集体系结构)、理解函数调用栈帧的概念,并能用GDB进行调试



第6周作业

·了解ISA抽象的作用、掌握ISA,并能举一反三学习其他体系结构、了解流水线和实现方式



第7周作业

·了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等)、理解局部性原理、理解缓存思想、理解局部性原理和缓存思想在存储层次结构中的应用、高速缓存的原理和应用



期中总结

·复习 Linux常用命令、复习 教材1-7章



第9周作业

·掌握系统编程和系统调用的概念、掌握系统编程错误处理的方式、掌握Unix/Linux系统级I/O:open close read write seek stat、掌握RIO、掌握I/O重定向的方法



第10周作业

·掌握系统编程和系统调用的概念、掌握系统编程错误处理的方式、掌握Unix/Linux系统级I/O:open close read write seek stat、掌握RIO、掌握I/O重定向的方法



第11周作业

·了解异常及其种类、理解进程和并发的概念、掌握进程创建和控制的系统调用及函数使用:fork,exec,wait,waitpid,exit,getpid,getppid等,理解数组指针、指针数组、函数指针、指针函数的区别、理解信号机制:kill,alarm,signal,sigaction、掌握管道和I/O重定向:pipe, dup, dup2



第12周作业

·第九周代码检查、第十周代码检查、第十一周代码检查、项目



第13周作业

·掌握三种并发的方式:进程、线程、I/O多路复用、掌握线程控制及相关系统调用、掌握线程同步互斥及相关系统调用



第14周作业

·理解虚拟存储器的概念和作用、理解地址翻译的概念、理解存储器映射、掌握动态存储器分配的方法、理解垃圾收集的概念、了解C语言中与存储器有关的错误



实验报告链接汇总

实验一 开发环境的熟悉

·熟悉linux开发环境;学会基于 S3C2410 的 linux 开发环境的配置和使用;使用linux的armv4l-unknown-linux-gcc编译;使用基于NFS方式的下载调试,了解嵌入式开发的基本过程;正确使用连接线等实验仪器,并注意保护实验箱。



实验二 固件设计

·掌握程序的烧写方法;能够实现Bootloader;实现密码学中常见算法的固化



实验三 实时系统的移植

·掌握uC/OSII(uCLinux…)的移植过程;掌握C语言,汇编的混合编程。



实验四 驱动程序设计

·掌握实时系统应用和驱动程序的编写、选择某个接口电路



实验五 网络通信

·掌握在ARM开发板实现一个简单的WEB服务器的过程。学习在ARM开发板上的SOCKET网络编程。学习Linux下的signal()函数的使用。



代码托管

·链接:https://git.oschina.net/wyxversus/IS20145311

·二维码:



·git log截图:



·代码统计:



代码驱动的学习做到没有?

一开始几周我还是会积极主动地去敲代码,推测运行结果、编译运行,观察结果是否与预想的相同,思考原因,再反过来去理解代码,通过修改代码不断地去理解,但是到后来,尤其是最后几周就变得松懈了,可能只是简单地运行看一下结果,思考一下原因,省去了好多思考的步骤。总的来说,基本上做到了,这种学习方式也帮助了我更好地去学习这门课

加点代码,改点代码是理解的最好方式,谈谈你的心得

这真的是一种非常好的学习方式,远比编译运行代码有意义多了,其实最好的还是先猜测代码运行结果,再运行,然后与预期相比对,再通过修改代码来看看是否达到了你所预想的某些结果,思考其中的原因,在不断地修改代码的过程中真的能够深入理解代码、理解原理,从而弥补自己不知道的或者理解有偏差的地方。

实践上有什么经验教训

千万不要懒,这是最大的敌人,我有时候也会觉得麻烦,还要打开虚拟机,而且运行起来特别的慢,所以就不想弄了。绝知此事要躬行,这句话一点也不错。再有就是实践也要讲究方法,方法就是上面那些,思考是最主要的。遇到问题要学会利用各种资源,善用搜索引擎,毕竟搜商也是需要慢慢培养的,其实当你通过自己的努力解决了一个问题后还是比较有成就感的。

回答一下第0周作业中自己提出的问题

第一章:计算机系统是如何在硬件上起作用的,也就是如何控制硬件的,计算机系统又由哪些部分组成

  计算机通过操作系统OS来控制硬件,进而发挥作用。计算机系统由硬件和软件组成。
第二章:计算机中浮点数也是用补码表示的吗

  不是,浮点数分为整数与小数部分,抓换成二进制的方法不同
第三章:一条程序语句执行究竟要经过怎样的过程

  建立栈帧,从中取出指令执行
第四章:处理器的结构

  控制单元、存储单元、运算单元
第五章:有哪些方法可以优化程序

  利用好局部性原理
第六章:存储器的结构

  上一级存储器作为下一级存储器的高速缓存
第七章:程序通过什么实现链接

  链接器
第八章:异常的判断

  利用异常处理函数
第九章:虚拟存储器真的是虚拟不存在还是说是动态的吗

  虚拟存储器通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换
第十章:I/O接口的作用

  计算机与外设进行交互的接口
第十一章:网络编程的两种方式

  利用Socket接口是一种,里面又分为tcp、udp两种方式
第十二章:并发编程就是多线程吗

  不一样,并发是指在一台处理器上“同时”处理多个任务,多线程则是在一个进程中有多个线程

你有什么项目被加分,谈谈你的经验

加分的项目好像不多,总结、项目和教程都没有做过,竞赛今年倒是参加了密码技术竞赛,进了决赛,目前还不知道结果。扇贝单词也坚持了有一段时间了,还是比较喜欢英语的,所以愿意去认识更多的单词,以前听过一句话,“据说单词量超过一万的人能看到一个不一样的世界”,虽然有些夸张,还是挺有感触的,真的通过一门语言能够了解到好多不一样的东西,尤其是当你主动去学习一门语言的时候,在生活中的任何时候你都会主动去学习它,这个过程本身就很有意思。

优秀作业
第2周作业



第6周作业




第7周作业



期中总结



第10周作业



第11周作业



你有什么项目被扣分,谈谈你的教训

好像最后一两周有些懒了,有些地方没有实践,惰性总是常有,还是要克制住,让优秀成为一种习惯。

课程收获与不足

自己的收获(投入,效率,效果等)

收获了挺多的,不仅仅是这门课的相关知识,还有就是学会了很多软件的使用,最有感触的一个就是everything这个软件,这个在学习java的时候就安装了,这学期更是帮了很多忙,经常有些文档、ppt或者以前的一些资料找不到时,我就使用everything来搜索,很快就能够找到;包括版本控制的git虽然目前还没能完全感觉到它的好处,但是它确实能够帮助我们解决丢东西这个问题,将来必定能排上大用处。再有就是学习方法,和java一样,这种老师引导学生自学的模式还是比较有效的,自学是一种非常有效的方法,但是一定要有刻苦钻研的精神,利用好各种学习资源也是挺重要的。

这门课的投入我个人感觉其实还不是很多,效率在前十几周的时候还是挺高的,最后几周可能有些疲倦了,就有点懒,再加上书上的内容有点繁琐,不是很想看,总的效率只能说算的过去吧。可以改进的就是实践的内容还不够,博客有时候尤其是后期写的不太认真,有些复杂的问题钻研得还不够。

给学弟学妹们的学习建议

首先是要看书,但是不是让你每个字都去看,要善于抓住重点,可以看看娄老师的每周内容的重点,结合那个指导去学习课本。书上的练习题可以看看结合答案理解一下,同样抓住重点的题目。

接下来就是实践的环节,书上的代码、老师给的代码敲一敲,其实敲不是重点,又不是练打字的(当然要练也可以),别人的代码拿过来直接用,然后就是按照上面说的那些步骤,思考、编译运行、比对结果、修改调试运行,真正做到深入理解代码。

还有就是我觉得自己做的还不够的,对一些较复杂的问题要多一些探索精神,利用各种学习资源去把一些困难的问题(例如gdb调试汇编代码、还有一些复杂的代码等,包括装虚拟机遇到的问题和怎样配置git等等)解决一下,多做了这么一点你可能就超过大部分人许多,解决完还可以写一篇博客总结一下,毕竟还是有加分的哈哈哈。

问卷调查

你平均每周投入到本课程多长时间?

  大致在6、7个小时左右

每周的学习效率有提高吗?

  效率感觉有点成正态分布,中间那段时间效率比较高。

学习效果自己满意吗?

  还是学到了好多东西的,学习效果其实只能说过得去,这不能怪别人,还是自己不够努力。

课程结束后会继续一周至少一篇博客吗?(如果能做到,毕业时我把你的博客给你集结成一本书)

  以后会尽力去每周写博客,不知道能否坚持到毕业,但会尽力的,这种东西应该是要积累到一定量才能够体会到它的好处。

你觉得这门课老师应该继续做哪一件事情?

  继续这种翻转课堂的教学方式。

你觉得这门课老师应该停止做哪一件事情?

  停止上课讲考试的错题,自己看就好了,没必要用课上的时间。

你觉得这门课老师应该开始做什么新的事情?

  对代码应该多一点指导,例如这个代码的功能,某些关键代码行的功能,以及如何改进代码实现某某功能,从而引导学生进一步去思考代码。

本文链接和二维码

http://www.cnblogs.com/1152wyx/p/6212659.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: