2016-2017-1 《信息安全系统设计基础》第九周课程总结

2016-2017-1 《信息安全系统设计基础》第九周课程总结

本周开始学习Linux系统调用。《深入理解计算机系统》第十章「系统级I/O」,让我们深刻理解了三大抽象「文件、虚存、进程」之一的文件。Unix/Linux中把I/O设备都抽象成「文件」了,对设备的操作跟普通磁盘文件一样,都是通过open(2),read(2),write(2),close(2).

Unix/Linux中创建一个进程时都会打开三个文件:标准输入(fd=0)、标准输出(fd=1)、标准错误(fd=2),可以简单理角标准输入默认打开键盘文件,其他两个默认打开显示器文件。标准输入(fd=0)、标准输出(fd=1)、标准错误(fd=2)是可以重定向的。

Linux系统调用就是库函数,单纯学习非常枯燥,我们课程提倡「做中学」,我为此写了一篇学习指导博客别出心裁的Linux系统调用学习法。这是多年前我的学习过程,很有效。我希望同学通过实践来学习,通过实现Lwho,cp,ls,ls -R,tree,pwd等inux命令来掌握系统级I/O.

问题:

  1. 本周学习内容用到的csapp.h不该放/usr/include中,应该放项目的include目录中,并且编译时用gcc -Iinclude 指定。
  2. git add, git commit 应该完成一个功能就做一下,-m注释要精细,不能一周的代码提交中的注释都一样。
  3. 学习参考一下别出心裁的Linux系统调用学习法,通过实践来学习
  4. 没有代码链接,或给出的链接打不开
  5. 代码组织太乱,参考代码驱动的程序设计学习

学习中多思考,多动手才有收获,,博客内容中我最看重的是「问题与解决方式」一节就是想培养同学们问题解决能力,解决问题的能力是从事任何工作都需要的能力。这种能力不是凭空来的,要训练的。本周高其同学的博客是个典范。

多实践,多思考,这带来的是一生受益的学习能力:read(2)你认为简单吧?读个大文件,读个小文件,读个文本文件,读个二进制文件,写多个程序读一个文件,写一个程序读多个文件...,试一下收获大不一样。

了解学生的基础和学习情况在教学中非常重要,教学是要经常反馈的。上学期的《Java程序设计》,我对教材的学习指导详细到每段代码如何读,我认为上课没什么讲的了,但通过调查发现我错了,同学们不少就不看,没办法,上课再讲一遍,即使是把博客内容复述一遍,效果就好很多。

学生交了作业,不知道自己做的对错是个大问题。缺少了学习过程中的重要一环:反馈。我们每周考试,考完答案就公布了。我觉得同学们对一下答案查漏补缺就行了,实际上很少人这么做,更多的人懒得这么做,这让我很无语,但也得尊重这个事实:

了解学生的实际情况,实际需求,才能取得更好的教学效果,一切还都在路上,还要不停的实践、改进...


欢迎关注“rocedu”微信公众号(手机上长按二维码)

做中教,做中学,实践中共同进步!

rocedu



如果你觉得本文对你有帮助,请点一下左下角的“好文要顶”和“收藏该文


posted @ 2016-11-16 07:04  娄老师  阅读(335)  评论(2编辑  收藏  举报