1. 信息系统及安全对抗实验中心首页
  2. 教育教学
  3. 学生评教

罗森林老师-计算机与网络课程设计-学习体会【2017级】

1.1        XXX

此次课程设计中,我们小组选择的课题是DNS协议实现及服务端研制(C/C++)。在此之前我只在前期课程中学习过DNS协议的功能,这次实际编程实现对我来说还是很有挑战的。我们小组先用了一天的时间查找有关资料和现有的DNS服务器程序进行学习。我们发现DNS协议实现的关键在于抓取请求包,根据请求构造响应包。我们使用了Wireshark软件进行抓包,对DNS请求包和响应包的结构进行了分析。Wireshark的抓包分析在我们后续的程序测试和验证中也起到了很重要的作用。经过数据包结构分析,我们确定了具体的实现流程,随后开始自己编程,在编程过程中虽然遇到了许多的问题,但最终都通过我们的讨论和尝试解决了,成功实现了基线要求和提升要求。

我认为课程设计对我的能力的提升是极大的,不同于做实验的时候有老师提前讲解实验流程,在课程设计中我们需要自己根据课题查找资料、设计实验方法及流程。课程设计这种形式对我们的能力提升是很大的,在自己查找资料的过程中可以学到更多的知识,在编程实现的过程中,对我们的逻辑思维和编程能力也是很大的提升。这次实验使我们第一次尝试DNS协议的实现,通过学习,我们了解了DNS服务器的工作原理和实现方法,对DNS协议有了更透彻的理解。在这次实验过程中,前期信息安全与对抗理论课实验中学习过的有关套接字的知识对我完成实验有很大帮助。应用程序通过套接字绑定DNS53号端口之后可以收到DNS请求包和DNS响应包,则是我们整个设计的基础部分。我们了解到套接字在大多数交互性网络协议的实现中都有应用,相信这次对套接字的学习对我以后深入学习信息安全与对抗专业也会有很大帮助。

在实验过程中,老师和学长学姐的答疑帮助我们明晰了课题的具体要求,清晰准确的理解是我们最后实现课题要求的重要基础,在此要感谢老师和学长学姐对我们的帮助。在课程设计的最后答辩中,其他小组的同学也分享了他们的设计成果,在这个交流的过程中,我也了解了许多这次课程设计中我们小组没有接触到的网络协议和设计方法。我认为这种小组间的成果交流是一种非常宝贵的快速学习的机会,可以在短时间内了解到他人总结的经验和学习成果,是一种非常好的学习方式。从其他同学的分享中,我也总结出了我们小组的一些不足,比如没有实现本地缓存更新,没有设计UI界面等。如果以后还有类似的实验机会,我相信我可以做得更好。

1.2        XXX

可以毫不夸张地说,计算机与网络课程设计是上大学以来学习的课程设计中,深度最广,难度最大的一门课程设计,但是在坚持完成这次课程设计以后,我发现自己在这门课程设计中学习到的东西也是最多的,提升的能力也是其他课程设计所不能比拟的。

首先我们组的课题为:检测局域网内存活主机(Python),乍一看这个题目我只感觉到茫然,但是茫然过后就必须要抓紧时间去学习,先是从零开始学习Python的语言和数据结构,值得庆幸的是有C语言的基础,学习Python的过程没有那么的艰难,然后在熟悉了Python之后,我和我的组员又开始恶补局域网以及相关的协议方面的知识,比如TCP/IP体系,ARP协议。然后学习完相关的理论知识后我们就开始着手编译代码了,一开始没有太多的思路只能上网拓展思路,在CSDN博客上我们浏览了一些前人编译的思路,发现大多都是Ping命令,虽然Ping命令被禁止使用,但是我们还是在Ping命令的基础上学习到了很关键的思路,从而拓展出现在的三种方法。

虽然本次课程设计的难度很高,但是同时也锻炼了我们的各种能力,两个人一组的团队协作是完成这次课程设计的关键,两个人的合作大大提高了工作效率,在合理安排工作的情况下,得以完成此次课程设计。然后从零开始的实验设计也是之前前所未有的,很多东西我们之前没有接触过,这也是对我们自学能力的一种提升。而最后的答辩交流环节也让我受益匪浅,每位同学都在这次课程设计中花费了大量的心力,通过听别人答辩我学习到了很多以前没有接触过的知识,同时听与我课题相似的答辩的过程中,我还能吸取别人的长处,改正自己不足的地方,而在我自己的答辩过程中还能锻炼我自己的表达交流能力。所以说这次课程设计对我而言是一次全方位的能力提升。

在课程设计的过程中做了虚拟仿真实验,听了罗森林教授的网课,我也收获了很多有关信息安全方面的知识,提高了我对信息安全方面的意识。

总体而言,这次课程设计难度是有的,还很大,但是收获同样的是非常多的,一分耕耘一份收获,这次课程设计充实了我这一周的时间,对我的全方面的能力都有了提升,也学习到了很多以前没接触到的知识。

1.3        XXX

通过本次为期一周的计算机与网络课程设计的学习,我收获颇丰,首先我学习了Python这门编程语言,以及其pyqt5等库函数的使用,学会了使用这些库函数来设计GUI界面。这次的课程设计我们组选择的题目是课程管理系统的研制,要求实现的功能是课程的查询、成绩的查询以及成绩的记录,在完成的过程中,我们经过询问老师具体的要求,选择Python来读取Excel文件中的信息,实现对所需要的信息的输出以及相关信息的登记修改。设计的时候主要任务是GUI 界面的设计,以及相关的按钮函数编写。只进行相关功能时还是比较简单的,因为没有涉及到复杂的算法,只是相关数据的读取与输出,只需简单地进行选择即可。

完成本门课程以后,最大的心得体会就是短时间内“快速学习”的魔力,在短短的五天内,我们从C语言都不是很熟练到Python语言的较为熟练的应用,这中间是多么大的一个提升啊!若不是这次课程设计,很难想象我会完成这么有挑战性的任务,一直以来我对于编程就不太感冒,可能是没有这方面的天赋吧,而同学们的情况与我所差无几,但是就是这么艰难的情况,我们迎难而上,都纷纷拿出平时所不具备的能力来完成了一个个高大上的课题,这也正是老师所希望看到的效果。

我是一个学习能力并不强的人,通过这次课程设计,我更加认清了自己的实力,的确编程对我来说是有些太难了。但是我的耐心以及包容心态得到了前所未有的加强,我变得更加成熟了,各方面的能力都得到了锻炼,这是尤其难能可贵的一件事情。所以我特别感谢这次课程设计,感谢悉心教导我们的罗森林老师,他不仅是我们这门课程的老师,同时也是我的学术班主任、大创指导老师,可以说他对我的教导影响非常大,教会了我很多东西,我非常感谢他。

1.4        XXX

一、自信是源源不断的动力

在过去,从来没有接触过这种相对比较大的课程设计,往往都是老师让做什么,自己就做什么。而这次课程设计,老师给了我们最大的自主权,从选题,到思考整体架构,到选择语言、学习语言如何使用,到最后程序及UI设计全都由我们自行决定、完成。突然面对如此大的工作量和紧促的时间,我开始时有些手足无措。感谢老师把这种方式放入我们的必修课,否则不敢相信靠两个人的力量在短短几天内能够学到如此多的知识,入门了一个系统的设计。如果这是一门可选的课程的话,如果没有这周的经历恐怕我的畏缩会让我与综合性这么强的课程失之交臂。在完成这个课程设计的过程中,我主要经历了从自我质疑到逐渐自信的过程,虽然在快速学习的过程中会发现越学越多,但确实也是越学越有底气,会常常想着去验证、测试或者实现一下自己的所学,一旦实现了某一项功能,就会受到一定的激励,进而变得自信,而自信又会促使自己去学习更多的技能、实现更多的功能。所以说,这次课程设计让我意识到了自信是源源不断的动力,在未来的学习生活中,要保持适度的自信,才能取得一些自己应得的收获

二、要加强身体锻炼

身体是革命的本钱,在刚结束了上周的课程设计之后又紧接上持续五天的计算机网络课程设计,到第四天的时候身体状态有些下降,虽然咬咬牙坚持下来了,但还是影响了课程设计的效率。可以想象,未来参加工作后,在为社会主义事业作贡献的时候,会有更加繁杂的工作量,如果身体不好的话大概率也会吃不消。这份经历告诉我要改变过去只顾学习的观念,要加强锻炼,提高身体素质方能提高学习工作的效率,“磨刀不误砍柴工”说的就是这个道理。

三、要提高合作意识

在过去的绝大多数时间里,都是习惯于一个人做事,因为错误地认为一个人做事效率更高。的确有的时候一个人做事可以排除外界干扰,但在做像课程设计这样的系统性工程时,需要的知识量相对比较大,也需要十分丰富的技能,而人无完人,往往一个人的知识量和技能都没有到达完成系统设计的需要,如果一个人想要实现系统的设计,就需要花大量的时间进行学习,学习更多的知识和技能本身没有错,但是做事要审时度势,有限的时间内需要做更多的事,就需要加强合作,此时优势互补、各取所长显然是一个更加高效的方式。

总而言之,本次课程设计极大地丰富了我的知识量,丰富了我的技能,并且在心理素质上受到了磨砺,引发了许多对课程学习和观念的思考。经历了本次课程设计,我的知识、技能、心态以及思维方式四丰收,在我自己看来达到了课程设计的目的。

1.5        XXX

本次课程设计的内容是关于计算机与网络的,之前我便对这方面的内容很感兴趣,但是由于各种原因一直没有时间好好的学习这方面的内容,但这次课程设计给了我这一个宝贵的机会用来接触、学习并自己完成一些有关内容的设计,这对于我的学习能力的提升有着很大的帮助。

由于我之前看过很多介绍爬虫的文章,所以我对于这种能够自动获取网页信息并绕过检测机制的爬虫程序很感兴趣,再加上早已听说过python语言的优美与简洁,所以当我看到这次的研究课题中有淘宝爬虫这一题目时,便毫不犹豫地选了这个题目,希望可以自己亲自动手来体验一下python以及网络爬虫程序的编写,感受一下python的强大以及编写爬虫的实战过程。

本次课设历经五天,由于之前没有接触过python,所以在前期的准备过程中我首先学习了python的基本语法以及编程方法,并且充分的查阅资料来了解爬虫的工作原理,以便我们之后的程序编写工作。

其实整个课程设计的过程还是很艰辛的,光是搭建python的环境就花了一天的时间,从不断地报错到报错逐渐减少直至成功运行程序,从这个过程中我也明白了很多道理,那就是办法总比困难多。从零开始学习一件事情并自己可以亲自运用于实践并不是一件简单的事情,但老师与学长的帮助以及团队齐心协力的合作下,我们解决了一个又一个的问题,提出了一个又一个可行的解决方案并付诸于实践,最后成功的实现了本课题的任务要求,虽然最后的程序还有很多可以提升改进的地方,但这次的课程设计时间紧迫,我们并没有时间来完善代码,只是可以初步的实现功能,但这次课程设计激起了我对于python以及爬虫的兴趣,在这次寒假中,我一定会抽出时间来进一步完善我们的程序,使其具有更多更好的功能。

在这次课程设计中,我们不光学习了python以及爬虫,而且还通过答题学习了有关很多网络安全的知识,让我们了解到了网络安全的重要性以及一些防范措施。通过网络安全的学习,我体会到了很多,网络的迅速发展给我们带来了很大的便利,但也给我们带来了巨大的安全隐患,现在的网络协议以及计算机有着很多的漏洞,尽管我们有着各种各样的防范措施,但仍然会有不法分子利用漏洞来侵害我们的权益,甚至危害整个公司乃至国家的安全,所以维护网络安全刻不容缓,这需要我们每个人去努力,不给犯罪分子留下任何的机会。

期间我们还完成了虚拟实验,这个实验很有意思,实验中我们扮演一名黑客,利用伪基站获取受害人的手机中的信息并据为己有,这个实验也警醒了我黑客攻击无处不在,我们要加强防范意识,例如不要随便将不明的U盘插入自己的电脑中,因为这有着很大的安全风险,通过这次虚拟实验,我学习了一些有关伪基站的基础知识,并对于伪基站的基本操作及功能有了一定的了解。

最后,感谢老师可以给我们这次课程设计的机会,让我们了解并学习了很多新的知识,提升了我们的学习能力,并且也学习了很多有关网络安全以及信息对抗方面的内容,通过这次课程设计,我们受益匪浅。同时,也感谢老师和学长在课程设计中给我们提供的帮助,正是因为这些帮助,我们才找到了一个又一个可行的解决方案,最后成功完成本次课程设计,希望之后还有机会参加此类课程设计,让自己得到更大的进步。

1.6        XXX

20191171023分,我们小组基本完成了计算机与网络课程设计,长叹一声浊气,一份强烈的成就感油然而生,回望这一星期我们小组所做,所感,不仅震惊也为自己的收获而骄傲,此次课设,受益匪浅,不仅专业知识的收获,感觉更多的是对自己的历练,很高兴在此次课设中自己又成长了许多

此次课设,是本人认为相比于前两个课设而言是工作量最大的也是最“偏”的,甚至在选题方面,我和搭档都陷入了迷茫,对于很多专业名词都不懂,更不清楚选题难度系数高低的难点体现在哪?就这样在半懵的状态下选择了此次课题——FTP协议实现(C/C++),C语言是我们在大一上学期所学语言,而随着专业深入,已经很久没有编写过C语言了,而FTP协议更是完全不懂。我们就在几乎“白纸”的情况下开始了我们的课设。

一开始,就是对我们的信息收集和快速学习能力的考量,我和搭档都希望在最短的时间内弄懂FTP协议以及重温C语言的编写,而进入学期末,人心之浮躁,时间之仓促,抱着与世隔绝的心态,我们互相监督终于彻底了解了FTP协议。

接着就是最难也是最核心的编程,此次编程问我主要负责上传,列表,加密功能的开发,王云川负责下载,命令行界面,以及代码整合和优化方面。对于Socket的学习,RSA算法的学习,当着手这一切才发现时间是最大的敌人,以至于我们每天近12小时的工作量。但功夫不负有心人,我们终归是完成了系统的编写和设计,并且成功完成。

此次课设在知识方面收获颇丰,更好了理解计算机网络结构,更好的理解了应用层在计算机网络中的作用和地位。了解了FTP协议的具体内容,相关响应码,和各个指令集。更是对C有了更强大的编写能力,学会了对Socket的灵活运用。不仅如此,更是学习到了密码学中对称算法和非对称算法的优缺点,完成了RSA算法的编程,理解RSA加密解密过程,以及单向函数的重要性。而回望过去,我都不敢想象这是我四天就学到并且成功实现的东西。开始渐渐明白此次课设的意义。

除此之外,我认为收获最大的是我自身的成长。

  • 快速学习能力,我和搭档通过书籍,网络,大量查找关于FTP协议的文章进行学习,并在一天内完成对FTP协议的了解,并开始编程。
  • 问题解决能力,编程过程是问题最多的时候,不论是功能开发还是代码整合,所处代码总是不能满足我们的需求是,此时就不得不进行讨论,商量,并且一个一个试错,从而找出问题所在,和最终完成问题的解决。其中的过程是漫长复杂并且折磨人的,我们只有冷静,耐心,并且逻辑清晰才能一一破解。曾经我们在RSA加密和解密程序(已经编写好的)整合到系统时,就花了半天时间。现在看来一切值得。
  • 敢于挑战的自信,此次课设我们几乎从0开始,而通过100小时的工作时长,我们成功实现,这对我和我今后的路来说,一切皆有可能。有了这份自信,什么挑战我都相信我能克服。

此次课设,如凤凰涅槃,自己收获很多,也成长很多,对自己未来的路无一是坏处,也逐渐理解老师和学校的良苦用心。此次课设也咨询过学长学姐很多问题,自己十分感动,在此衷心感谢学校,感谢老师,感谢学长学姐们!

1.7        XXX

可以说,计算机网络课程设计是小学期三个设计中最复杂,耗时最久,却也是最有收获的一个课设。我们小组选择的课题为基于python的内网穿透系统研制,在此之前,我们并不如计算机学院的同学一般具有计算机网络的相关知识和技能,也没有经过类似信息安全与对抗的训练。在这样的条件下,我们并没有气馁,提前一个周的周五就确定了选题,当即开始对于课题的研究。我在研究的过程中时常碰壁,为了搞清楚服务端和客户端的区别,套接字的工作方式,我甚至早晨六点半起床在图书馆查阅各种资料,翻阅各类文献,工作到晚上才回宿舍休息,连午饭也没有顾上吃。花了一天的时间,虽然代码一个字符都没有敲,但是却对内网穿透系统的整体构建有了更好的理解,剩下的两天时间,在有所参考的情况下,较为顺利的将基线要求编写完成。

在这次的课程设计中感受最深的就是当系统完成时的成就感,以及在整个过程中获得的满足感,开始时的确觉得遥不可及,可当整个工程完成以后长舒一口气回头看,却也不是多么复杂。这大概就是所谓心境的变化吧。

基本功能完成,我们还增加了可视化界面,提高了系统的友好度,但也存在许多的不足吧,比如没能很好地解决GUI和多线程、多进程之间的冲突,也没能实现比如穿透北京理工大学所建立的局域网,或者穿透任意一个内网系统的工作。我对这个工程的期望大概是想将其发展成一个能够开机自我运行的木马程序,并且在法律允许的范围内进行测试工作,打算在寒假的时间进行进一步的学习研究。

总的来说,踽踽独行,未来可期,收获很大,感谢罗森林老师和各位研究生学长,感谢课程设计提供的平台支持,在答辩的过程中我也受益匪浅。

1.8        XXX

通过这一周时间的《计算机与网络课程设计》的学习实践,我收获满满,无论是知识上、个人能力上以及对信息安全、对编程的兴趣都有了质的飞跃。

在这一周的时间里,我的小组所选的课题是《网络文件嗅探系统研制》,原题目是不限定编程语言。经过综合考虑,我们选用了Python语言,通过调用requests等爬虫类第三方库实现爬虫功能。

在实验中,我们遇到了许多难题。例如网易云音乐网站并不提供直接下载的功能,导致我们并不能直接找到音乐的下载链接。后来我们通过学习,学会了从网页的源代码中分析提取信息,从而实现在网易云音乐播放页面中查找到需要下载的音乐的播放地址和下载地址。其次,从网页数据的提取信息并不是一件容易的事,在实验中,我曾经尝试过吧把整个网页页面存储为一个字符类型变量,进而通过对这个字符串进行操作实现信息提取。很快我的这种方法就成为了阻挠我突破的重大问题,因为许多网页往往需要加载非常多的资源,从而使得网页信息非常多,如果一成不变地用这种字符串处理的方法,在遇到一些加载非常多资源的大型网页的时候很有可能会效率很低。后来我还自学了正则表达式的相关内容,学会了利用正则表达式进行匹配从而实现信息提取,这大大提高了开发效率和准确率。

其次,爬取网易云音乐的mp3文件是我们尝试爬取的第一种文件类型,但是由于网易云音乐设定了只能通过网易云客户端下载音乐,要在网页下载音乐是不允许的。但是我们不难会这样想,既然网页能播放音乐,那就一定加载进来了音频文件,为了验证这个想法,我自学了html网页设计等相关内容,大概了解了网页设计的基本框架,学会了从网页源代码中查找信息。

后来在爬取万方数据库的文献的时候,我遇到了更大的难题——万方数据库的下载链接是经过加密的。为解决这个难题,我想了很多办法,做了很多尝试都没能解决。后来我换了一种思路,因为我们学校的校园网环境是可以免费下载文献的,那么我大可不必把精力集中在如何破解被隐藏的下载链接,我只需要想办法让程序实现自动帮我批量下载文献就可以。因此,我后来使用了selenium自动控制谷歌浏览器实现自动点击下载。

总的来说,在完成这次课程设计过程中遇到的种种难题,都迫使我要在短时间内想方设法去解决,这也无形中锻炼了我的快速学习能力,纠错能力以及优化程序的能力。我坚信,这些能力的提高才是课程设计的精髓所在,我们通过这次课程设计所学习到的本领将会受用一生。最后,再次感谢罗老师和几位学长的悉心指导,老师们辛苦了!

1.9        XXX

通过为期一周的《计算机与网络课程设计》的学习与实践,我感到很有收获。在这一周里,在确定了选题后,我们小组两人分工合作,从了解课题背景与相关知识、明确课题目标与核心任务,到具体地编写代码、调试代码、制作界面,一周的课程设计紧凑而充实,让我们学习了知识、提升了能力。

首先,本课程锻炼了我快速学习的能力。我们在一周内完成一个系统的设计,其中用到的知识和方法我们大多之前没有学习过,需要在这几天的时间中进行快速学习。对于我们大学生而言,之前的课程在学习过程中往往都是跟着老师授课的进度学习,而对于自主学习,特别是自主快速学习,锻炼得很不够。通过本课程的学习与实践,我有效地锻炼了自己快速学习的能力。在十分有限的时间当中,面对需要快速掌握并立即投入应用的知识,我做好计划,抓紧时间学习,较快地把握住了知识的要义和应用的方法,实现了较快地学习与应用知识。

第二,本课程让我增长了计算机与网络方面的知识。之前学习编程类型的课程,如《C语言程序设计》、《数据结构与算法设计》和《Python语言程序设计》,编写的代码往往篇幅较短、实现功能较为简单和基础,但通过本课程的学习与实践,我对编程实现规模稍大一些、更加贴近实际应用的项目的实践有了的体会,以研制与编写系统为目标导向,学习了与之相关的知识。在本课程的学习与实践中,我学习了网络爬虫的相关知识,对网络爬虫的概念、原理和典型实现方法有了掌握,对网络源代码、网址和保存路径等概念有了更深层次的认知。同时,通过本课程的学习,我也对信息系统安全与对抗技术有关知识有了一定的了解,提升了自身的信息安全意识。

第三,本课程增强了我沟通合作的能力。在本课程的学习与实践中,我和同组同学良好沟通,通力合作,共同制定计划、划分任务和调试代码。在这个过程中,我增长了与他人高效沟通与合作的方法,锻炼了自己与他人沟通、合作与共同学习的能力。我深知,在今后的学习生活中,会有更多的与团队成员一同合作完成的任务,特别是团队合作来完成一些具有挑战性的、不熟悉的和难度较大的任务,因此沟通合作的能力十分重要。

一周的课程设计紧张而充实,我感到自己不仅增长了知识,更提升了技能,锻炼了能力,收获非常大。感谢罗森林教授对本课程的精心设计与指导,感谢各位指导老师的启发与辅导!

原创文章,作者:BFS,如若转载,请注明出处:https://www.isclab.org.cn/2020/07/26/%e8%ae%a1%e7%ae%97%e6%9c%ba%e4%b8%8e%e7%bd%91%e7%bb%9c%e8%af%be%e7%a8%8b%e8%ae%be%e8%ae%a1-%e5%ad%a6%e4%b9%a0%e4%bd%93%e4%bc%9a%e3%80%902017%e7%ba%a7%e3%80%91/