计算机毕业论文选题方向简单
一、比较好写的计算机毕业论文题目:
1、计算机专业本科毕业设计现状的分析与对策研究
2、提高毕业论文(设计)质量的教学管理方法之研究——以兰州商学院长青学院计算机科学与技术专业为例
3、高职院校计算机类专业毕业设计教学中需要注意的几个问题
4、计算机模拟在材料成型及控制工程专业毕业设计中的应用
5、土木工程专业学生在毕业设计中合理利用计算机问题探讨
6、毕业设计中计算机应用能力培养的研究
7、关于提高计算机专业毕业设计质量的探讨
8、计算机专业毕业设计教学改革与学生创新能力培养
9、基于CDIO的计算机专业毕业设计教学模式研究
10、提高开放教育计算机专业毕业设计质量的探索
11、提高学分制下计算机专业的毕业设计(论文)质量的思考和策略
12、建筑工程专业计算机辅助毕业设计的教学改革
13、适应计算机技术的发展,本科毕业设计的有效改革——毕业设计的几点体会
14、计算机发展对建筑工程专业毕业设计的影响
15、做好计算机专业毕业设计教学环节的探索与实践
第一步. 调研、入门
1. 确定一个感兴趣的大领域,比如分布式系统或者机器学习,或者深度神经网络。读这个领域经典算法和技术,也可以是几本比较好的书,读完然后再实践实践,动手加深理解。这个过程做完就算是初步入门了。
2. 找该领域的顶级会议,比如系统领域的有OSDI、SOSP,机器学习的领域有ICML、CVPR,深度学习的有NIPS、ICLR等等,可以搜CCF会议推荐列表看各领域的顶会列表。然后看近几年这些顶会的论文,因为这代表了最新的研究热点,咱不是说一味的追热点啊,毕竟对于初学者没有足够的领域专业背景,追热点是最快的方法。因为热点往往是该领域最亟待解决的问题,往往是发展最快的小方向,也最容易产生新成果。如果是老问题,人家都研究十几年了,给你留下的待解决的问题就很少或者不是很重要。当然如果是有几十年经验的研究者就不必追热点,他们知道该领域哪些是fundamental的问题,哪些是最值得研究的问题。
3. 读了这些前沿论文后,确定一个小方向,比如分布式系统是个大方向,小方向可能是机器学习分布式训练;大方向是深度学习,小方向可能就是graph embedding;大方向是机器学习,小方向可能是半监督学习等等。确定小方向的过程是个知识不断积累的过程,非常重要,这需要你对大方向有很多了解,对小方向有更深入更全面的理解,需要读好至少100篇以上论文,需要你知道该小方向的研究进展历史,这需要你知道该小方向别人都在哪方面做工作,做该小方向的顶级研究组都有哪些,他们正在干什么。
第二步. 发现问题
这步超级难,如果发现了个好问题,那就是成功的一半。这个问题最好是重要的、本质的、没有直观解决方法的。
4. 确定小方向后,你需要阅读大量的这个小方向的论文和了解开源项目,再不断聚焦,再确定一个要改进和优化的小小方向,这个可能就是论文的主题。小小方向可能是机器学习分布式系统中的parameter server通信模型,可能是dynamic graph embedding等。然后就要更聚焦地读这方面的相关论文,这时候论文就比较少了,几篇到几十篇到几百篇都有可能,这些论文要精读,花几个月时间研究一篇论文也不为过。
5. 挑几个重要的论文工作实现,也可以找开源的运行跑一跑试一试,idea往往从实际运行中来,光靠读是不行的。这个跑一跑可能需要你尝试不同的运行环境,不同的workload数据集,不同的应用场景等。比如,parameter server(PS)模型在本地集群上跑是不是和paper声明的一样、在异构的动态性极强的集群环境下效果怎么样、除了paper提到的算法处理其他算法的时候效果怎么样、除了paper提到的数据集换另外一类数据集怎么样;graph embedding方法处理密集图和稀疏图都怎么样,处理动态变化的图怎么样,等等吧。你要发现X方法仅在a环境下好用,在b环境不好用。这个就是发现问题的过程。当然,没经验的研究者可能很难想到多种环境、多种workload、多种应用场景,这就需要积累。
另外一个发现问题的方法是从实际生产中来,这个当然是最好的,但是往往是大企业环境下才有这个条件。
6. 确定你发现的问题还没有被解决。这又需要广泛的阅读和调研,但是问题已经很聚焦了,搜索也会很容易,用你特定问题的关键字在google 搜索(这里强烈建议用google,其他搜索引擎基本搜不到),找到解决相关问题的论文。看看这些论文是不是已经解决了该问题,如果解决了,你有两种方案:第一,该问题已经解决的非常好了,放弃解决该问题。第二,该问题的解决方案还有问题,我还有更好的办法。我建议后者,最起码尽量尝试尝试。
5和6步是个迭代的过程…
第三步. 分析问题
7. 分析问题产生的本质原因。这个往往和第5步发现问题同时进行。这一步靠的是功底和积累,靠的是对问题的理解程度。理解的越深刻,分析的越透测,你之后产生的解决思路就越有可能正确和有效。比如分布式机器学习的PS模型在异构环境下、和在处理数据不均匀的情况下就不好,本质原因是其同步的集中式通信模型,造成PS集中服务器往往需要等待。传统graph embedding方法采用批处理模式,需要graph的全局信息做embedding,当然无法应付动态性非常强的局部更新情况。
8. 基于分析,就是对该问题的深刻理解,产生改进的idea。这个可能很难,可能靠运气,但我觉得更多的是靠对问题的理解程度,理解的越深刻,本质原因抓的越准,就越可能产生创新idea。读过一本介绍google企业文化的书,google产品的成功,既不是靠技术能力,也不是靠用户需求,而是靠技术洞见(insight),这就是对问题本质的深刻理解。比如,PS模型在某环境下问题的本质原因是集中式的同步模型,那么我们就可以提出尝试异步通信的模型的idea。
分析能力跟个人的批判性思维、独立思考能力都有关,而这正是中国人欠缺的,可以通过读有深刻见地的书籍文章、经常提问来锻炼。
第四步. 解决问题
9. 实现你的idea,做大量实验验证。这需要动手能力,需要编程能力,需要坐得住。
10. 验证你的解决方案,根据实验分析不断优化你的方法。做了大量试验后,得到了若干结果,可能是不好的结果,但是不要一下子否定自己的解决方案,这不能说明你的idea不好用。一个好的方法往往经过千锤百炼,同样,你的idea通常不会一下子就成功。需要你根据实验结果分析不好的原因,然后基于你的理解改进方法,这是一个反复不断迭代的过程。
比如,你发现异步PS模型效果还不如原来的呢。那么关键的是,你要问自己为什么?为什么理应提升的却没有提升?你要看实验运行的日志,看看是哪里慢了,差在哪里,最后你经过不断的实验、分析、思考,你发现了,你提出的异步PS模型虽然没有了等待开销,但是计算的有效性却降低了,结果整体性能反而下降了。那么你下一次迭代就要想怎么把这个计算有效性提上来。我又有了个方法,可以评估每次计算的有效性,然后把计算资源都投到有效性高的计算上。OK,idea不错,那么怎么评估有效性呢?不能开销太大,否则又得不偿失了,你可能想到了一种近似地评估方法。重新实现后,发现效果还不错。OK,恭喜你!你可以准备发论文了!
整个研究过程,导师将起到关键的作用。导师可能会给你个问题,这是难能可贵的,基本帮你做了一半的事了,否则你可能需要花上一年时间找问题。然后整个研究过程,都是在导师的引导下进行,需要定期向导师汇报,与导师讨论idea和请导师分析实验结果。最好自己也要经常找同门讨论,而不是闭门造车。
第五步. 撰写论文
11. 设计你的论文,草拟论文的骨架。每一章都写啥,每一段都写啥,实验都做啥。论文的逻辑往往比语言重要的多,逻辑合理的论文更易读懂,即使咱华人有天生的英语语言缺陷,但是好的逻辑就可以弥补这个不足。写论文就和讲故事一样,怎么能把一个事说明白,不那么简单,甚至说很难,需要不断锻炼。写完给老师看,老师同意后进行下一步
12. 写作论文。这个就是根据骨架填肉的过程,但是这一步也不简单,特别对于英语不好的同学,写出来的东西简直是不忍直视、不堪入目、毁人三观。最近上海某高校老师辱骂学生这事就是因为这个,我可以说,我每次看到学生论文也都是这个心情,给学生通宵改论文在家里一边改一边骂,但是当面对学生还是要以鼓励为主,要耐心,要耐心,要耐心,尽力压制自己的怒火,以平和的心态帮助学生提高,期望他下次能给个更好的版本。但是往往事与愿违,看淡点吧,仅求写作态度好点就行了,毕竟这不是一朝一夕能提高的,需要你不断积累。
有几个写作的方法吧。第一,不要自己想当然,对于不确定的句型,用“”扩上上google搜,看看你这句型有多少人用过,如果没有几个人用,那就别用,换个写法。第二,读别人论文时,遇到好的句型就记下来,不断积累才能提高。第三,避免一切语法错误,我觉得这个是可以做到的,现在网上那么多工具都可以用。语法错误都避免不了那基本就是态度问题。遗憾的是,我很少遇到能避免语法错误的学生,我生气往往是因为态度问题,而不是能力问题。第四,尽量用短句用简单句子,别用长句。你写论文是为了让别人理解你的方法,不是写文艺作品,能说明白就行。
13. 提炼总结,改进方法。写作的过程也是屡顺自己思路的过程,写作的过程中往往也能发现自己方法的漏洞,那么就要继续回到8,重新思考解决方案,又或者你发现需要补实验来支撑你的论点,那么就继续实现系统做实验,得到实验结果。
14. 关于实验。怎么做实验是学生总问的问题,怎么做科学实验也是一个很重要的问题,有对照组、无偏的、定量的,这些都是科学实验的重要要素。如果有解决该问题的其他方法你首先要说明你的方法更好,至少在某一方面更好,这其中可能要涉及到不同的执行环境,或不同的算法数据集。然后设计实验说明你的方法好在哪里,用实验数据说明,比如异步PS和同步PS对比。然后你要进一步用实验数据说明,异步PS的有效性也提高了,如果不考虑有效性的话那么结果就不好。然后你的方法是否有些重要的超参数,试试variation导致各种结果。在实验结果展示方面,要学会用各种工具画各种图,把重要的因素用可视化方式体现出来。
第六步. 投稿和看待审稿意见
15. 接下来就是投稿。选一个合适的会议或期刊投稿,这个可以听老师的,老师基本有这方面的常识,根据你工作的方向和档次选择合适的去处。确定好了哪个会议期刊后,就需要按照会议期刊要求来整理论文格式,latex是必会的工具了。之后赶在deadline之前提交论文,这个最后的几天可能很痛苦,因为你的论文和方法总有改进的地方,老师的要求会让你最后几天是最忙的几天。但是需要认识到,凡事无完美,你总也改不到完美,你需要一个deadline来督促你完成一个milestone。开始进一步工作或下一个工作。
16. 看待评审意见。接下来是漫长的等待,会议一般是2-3个月的时间,结果可能是接收也可能是拒掉,相比于结果,更应该看评审意见,看看这些意见是否合理,是否能解决,无论是接收还是拒绝,然后接下来就再次回到解决问题的部分,再次开始优化方法的过程。如果是接收了,那就可以准备订机票开会旅游去了。如果是拒掉那一般是有比较大的问题,那就再仔细深思下一下你的方法。继续优化,还是降低档次投个差点的会,就看你导师的了。
第七步. 后续
17. 宣传你的工作,扩大影响力。首先你可能是要去参加会议,做个漂亮的ppt,反复演练,争取有比较好的演讲效果。有时你导师有机会去一些地方做报告,把这个工作介绍一下,都是扩大影响力的方法。
18. 开放源码。还有是尽量把自己工作的代码和数据开放,挂到网上,让别人来使用,接受别人的改进意见或者是简单的debug。咱不是专业的工程人员,也不用指望你的成果可以马上用于生产,个人觉得开放代码主要是为了让别人更好滴了解你的方法,这有助于扩大影响力,产生后续研究工作。如果有人引用你的论文、或咨询论文内容、又或是使用了你的代码和数据,这也算是你对整个科研事业有那么一丁点的贡献了,这比水论文有意义多了。
整体来说,发表论文需要你有:批判思维能力,动手能力,知识面,写作能力,表达能力,英语,韧劲(抗打击能力)等等一系列能力,如果在研究生期间真能发表一篇论文,经历了以上这么多磨难和锻炼,我想你的能力也是不知不觉提高了很多,成为了该小小方向的一个小小的专家了。这对你来说,是最最重要的。
这里我提到了韧劲,就是说,在解决问题过程中,你会受到不断的打击,包括来自导师的、来自自己的实验结果方面的、来自评审意见的,但是你要做的就是,站起来,继续凿,直到导师满意,知道reviewer满意,直到大家满意。别把这事想简单了,当你想象一下周围好多人都发好多sci了,而你还在为这么一篇完全未知结果的论文而这么努力的时候,我觉得大部分人可能就是缺少这个韧劲才最终以失败告终的…
最后,我想再强调一下,发论文不是简单地发论文,而是通过发论文宣传你的工作,以便对某技术或人有那么一丁点影响。无论你发哪个档次的论文,只要目标正确,我觉得你都会有收获和有贡献的。相比较于为了发论文而发论文,你会觉得你是那么地高尚和高大,他们只是造废纸,而你已经对社会有贡献了…
(以上内容来源于学术堂)
通常来说大学生在确定论文研究方向的时候,需要先考虑三件事,其一是自身的知识结构和能力特点;其二是目前拥有的研究资源;其三行业发展趋势。
自身的知识结构和能力特点是选择研究方向的基础,因为要想完成一篇合格的论文,有三个基本的要求,具有一定的创新性。具有一定的落地可行性;论述的完整性和可靠性。要想让论文有所创新,首先就要从知识结构上寻求突破,所以自身的知识结构是论文研究方向首先应该考虑的因素。
论文研究方向应该考虑一下当前的行业发展趋势,在产业结构升级的大背景下,如果研究方向能够与大环境相契合,不仅能够获得更多的研究资源,同时对于未来的发展空间也有较大程度的促进作用。以计算机领域为例,当前选择大数据、云计算、边缘计算、人工智能等方向都是不错的选择。
研究资源对于论文方向的选择也有非常直接的影响,所以在选择论文方向的时候,要根据目前能够整合的研究资源进行细分方向的选择。通常来说,导师对于论文研究方向的选择有比较直接的影响,选择导师比较擅长的研究领域会更容易获得突破。
要想完成一篇高质量论文往往需要做大量的基础工作,同时一定要尊重实验结果,否则在进行落地应用的过程中会遇到很多障碍,这一点一定要注意。
据学术堂了解,论文,既是一项研究的终点,也是每个研究人员、大学教师积累个人影响力的起点——做了项目要发论文,评职称也要发论文。当然,仅仅写出来的论文并不能作数,发表到期刊/会议上的论文才能证明其价值的归宿。
1、发论文是个系统工程。
先不论研究选题、研究设计、研究实施、数据收集与分析、论文撰写等一系列问题,即便有了一篇成形的论文,往哪儿投、如何和编辑联系、如何修改也是一项费心费力的事情。
2、每个过程中都存在着被退稿的可能。
俗话说得好,知己知彼,百战不殆。如果将期刊杂志作为你征战的目标的话,你首先要做到的事情就是全面了解你的目标。
就计算机领域而言,假设你已经做了一项研究,完成了一篇论文,想要投递出去,你需要解决以下两个问题:
①. 你可以投哪些期刊/会议?
②. 如何选择适合自己的期刊?
知道自己有哪些可以选择是第一步,所以有一份计算机领域的期刊/会议目录是非常有帮助的。
中国计算机学会会按照专业领域和期刊/会议等级(分为A、B、C三类)整理一些计算机国际学术会议和期刊目录(《中国计算机学会推荐国际学术会与和期刊目录》)。
2015年版的目录一共提供了以下几大领域的国际学术会议和期刊:计算机体系结构/并行与分布计算/存储系统、计算机网络、网络与信息安全、软件工程/系统软件/程序设计语言、数据库/数据挖掘/内容检索、计算机科学理论、计算机图形学与多媒体、人工智能、人机交互与普适计算、交叉/综合/新兴。
目录中的每一项会说明会议简称、会议全程、出版社和网址等信息。
国内的话,共整理了128本国内的计算机期刊信息(《国内计算机领域期刊目录》),囊括了期刊的级别、发行审稿速度、投稿要求、主办单位等信息,帮助您了解:
1. 计算机领域中有哪些期刊可以投?
2. 核心期刊有哪些?
3. 这些期刊主要接收哪种主题的论文?
4. 这些期刊又有哪些投稿要求?
5. 期刊的审稿速度如何?能不能赶得上职称评选的截止日期?
基本上投稿需要的介绍信息这里都包括了,投稿的老师可以依着这份目录根据自己的情况以及期刊的信息来选择,省去了一个一个去期刊网站看信息的麻烦。
如何选择适合自己的期刊?
这里主要说说期刊的投递。
如果稿件投向了不适合的期刊,会存在几个比较负面影响,主要有以下三项:
(1)退稿:这是大概率事件了,内容不适合此期刊,退稿之后还要继续寻找其他的期刊,会使得稿件延迟数周或数月发表,延误原本的工作计划。
(2)不公正的同行评议:由于编辑和审稿人对作者研究领域的了解比较模糊,从而有可能导致稿件收到较差或不公正的同行评议。
(3)少有同行关注:埋没在一份同行很少问津的期刊中,达不到与同行交流的目的,也很难被他人引用。
所以在选择拟投期刊的过程中要将自己的需求条件和期刊方进行匹配,选择适合的期刊。
筛选时一般需要确定以下几个问题:
1. 论文的主题是否是期刊所规定的范围?
投稿之前阅读“投稿要求”或者“作者须知”是非常有必要的,这些信息能够帮助你判断期刊的领域是否与你的论文契合。同时这些信息往往也包括论文的格式、投递方式等。
2. 期刊的级别如何?
学校对评职称的论文是有级别要求的, 有的看引证指标(复合影响因子、综合影响因子);有的看是否是核心期刊,是CSCD核心还是北大核心;有的评选条件则是看期刊是不是国家级核心期刊/省级核心期刊等。
3. 期刊的审稿时间如何?
如果审稿速度慢,超过职称评选限定时间,那么你就要慎重考虑。
4、其他因素要考虑
还有一些其他因素要考虑,例如版面费。总的来说,选择拟投期刊也是一件需要综合考量的事情。如果自己没把握,可以咨询比较有经验的领导,学生就可以咨询自己的导师,他们的经验会帮助你少走很多弯路。