计算机科学的科研

会议的等级

国内计算机学会的 CCF 划分是比较权威的,虽然它受到了政治立场的影响,对某些会议的评级可能存在偏差,但总体上还是在合理范围内。CCF将会议分为A、B、C三个等级:

  • A类会议:质量很高,是公认的顶级会议。
  • B类会议:部分质量很高,但整体略低于A类。
  • C类会议:质量相对较低,影响力有限。

一般而言,专注于发表A类会议论文,并选择能够发表A类会议的研究课题,是一个很好的科研策略。值得注意的是,国际认可度高的会议和期刊通常都是英文的,其他语言的学术活动在声望和影响力上往往难以相提并论。

除了CCF的分类,还有一个重要的参考是Core Conference Rankings。这个系统汇集了全球多个国家和地区的会议评级标准,为研究人员提供了更全面的参考。它可能包含了如下的标准

  • SCI(Science Citation Index):主要用于评估期刊影响力。
  • SCIE(Science Citation Index Expanded):SCI的扩展版本。
  • ERA(Excellence in Research for Australia):澳大利亚的研究评估体系。

在A类会议中,不同领域的难度和影响力会有所差别,即使都是顶级会议,某些领域的会议由于其研究门槛、竞争激烈程度和技术积累要求,更难被接受。

网络领域的A类会议,如 SIGCOMM 是公认的顶级会议,接受率极低。对论文的创新性要求极高,需对网络性能、架构优化等具有实质性突破。研究门槛高,需要有扎实的理论基础(如排队论、博弈论等),并结合真实系统实现或大规模实验。NSDI 也是很有挑战性的。INFOCOM 今年给注水,被玩坏了,声望下降的厉害。

安全领域的顶级会议如 CCS(ACM Conference on Computer and Communications Security) 和 S&P(IEEE Symposium on Security and Privacy),需要论文的实用性,比如发现了一个影响较大的漏洞,设计了新颖的协议或者安全模型。但是不同的主题难度也不一样,做工具的需要在工具的效率上有非常大的创新,做某个领域安全检测的需要做非常彻底的实验,但是也存在一些糊弄审稿人,一些没啥用的漏洞去极端条件下实验的。存在做一些emperical study的,很讲究运气还有关系。

软件工程领域就更加容易注水了,CCF 给软工的许多会都列做A,从质量上来说是合理的。但是存在非常扎实的做了有用的工具的论文,也有只是提到某中模式的经验分析,还有更加一般的调查问卷之类的,比如调查开发流程。一般来说,这里的论文虽然参差不齐,是国人注水的重灾区,但是还是有很多很好的工作的。

人工智能的顶会我不太熟悉,投稿数量非常大,热点集中,可能是其他领域的十几倍。这种情况很难把握会议的整体论文质量。一般认为 AI 相关的论文更加容易中一些,一般比较短小。13页和8页的论文不是差了5页,而是3页的背景讲完了,你的实质内容和原创贡献10页和5页的区别。

一些学科交叉的论文,很容易因为审稿人不太懂,导致事实不是很清楚,但是就中了的情况。比如一些人机交互,不是很推荐投这些会议。

一般来说研究软件、安全,会关注安全四大,软工四大,其次IMC,SIGMETRICS,其次是WWW。如果偏向系统和存储方向,可能会投OSDI、SOSP、USENIX ATC、EuroSys、FAST这些。偏向网络方向的可能投IMC、SIGMETRICS、NSDI。偏向编程语言方面的,可能投 PLDI、PODL、OOPSLA。

如果以上的会议没有中,会开始投期刊,因为上面那一轮下来基本已经快一年了吧,期刊可能还需要半年。期刊一般也是按着 CCF A 的顺序投稿。

文献习惯

首先,文献一定要多读,读文献就像喝水吃饭一样正常。读文献就是你的工作。但是也一定要行动,去做实验,去验证自己的猜想还有假设。

对于每一篇论文,要记住它的:1)会议名称+年份。2)论文标题。3)作者小组,以及一作名字。4)主要关注点和解决的问题,使用的方法论。

记住论文,才是你和同行交流 idea 的共同语言,尤其是两个来自完全不一样的地方的人,你们的共同语言可能就剩下这个了。其次就是你记得住对方组的论文,甚至能想起来他的论文,你们还能侃侃而谈,说到了很多其他人的工作,那么就很容易给对方很好的印象。一般名校的同学都会这样做到。

虽然强调要多看论文,但是计算机科学是动手的学科,当你觉得是个好的idea的时候,你就该去动手。虽然新手的idea大概率不会有多好,但是动手去做,真正的写出一篇13页的论文,从实验设计、数据收集、数据分析和绘图、论文写作、投稿和rebuttal走一遍,你会有非常大的进步。所以,请你赶快完成你的第一个课题,投稿第一篇文章。然后等着被审稿人批评,接着去找师兄、老师、同一个方向的其他老师虚心修改。

好的课题比一直投入更加重要。我在给论文库里的论文加上标签的时候,我发现自己之前做的网络测量参考的论文,很多都是B期刊,甚至C期刊。这说明老师一开始给我的课题就不太行,还好是我找到了新的突破点,不然就完蛋了。

如何发现好的课题呢?首先吧你的方向的顶会的论文,最近3年的,全部看一遍标题和摘要,快速浏览。这一步是知道你最优秀的同行他们关心着什么,在做什么。接着你就会对一个课题的层次,有了模糊的判断。此时,你很容易分不清什么是重要的和可做的。因为看到太多的论文,你会发现他们有没做完的东西,或者按照你对系统的理解,存在拓展的方向,那就会产生非常多的idea。那么我觉得,如果你想投入去做,那可以去做,但是可能会经历很长时间的写代码、做系统原型。总之,不是轻松的工作。

什么是轻松好出论文的工作呢?第一种模式,第一个提出某种现象,并且做了现象的解释,数据的分析。这种模式关键是快,而且选题要比较准,要是真的关注的重点。比如说你在安全公司上班,你整天处理的东西。这个就要贴近业界才会有更多的发现。

第二种模式,用同类的方法快速的扩张。方法论都有了,你只需迁移和实现,并且实现并不难的工作。可以去类比和迁移其他事物。

困难模式:你去挖掘一个系统是否存在bug,并且从某种设计中看到着这种设计的缺陷,然后非常深入的开了一个可以持续研究的话题。这种模式前期投入非常大,一般属于师门没啥帮助,自己摸索求生,接着有点悟性找到了可以做的点。相比于解决热点问题,自己找到问题,或许这种悟性是比较难得的。不过也要注意论文产出,毕竟硬通货才是前途的基石。

实用的网站 dblp

dblp: computer science bibliography

  • 搜索想要的论文,直接输入名字。
  • 搜索论文集,直接输入名字。
  • 搜索作者,直接输入名字。

一般已经发表,在出版社的论文,都能搜索得到。

Google Scholar

google scholar 是最常用的找论文的地方,一般是最全的。不过不如dblp好用。

其次还有各个出版社的网站:

IEEE Xplore

ACM Digital Library

Connected Papers | Find and explore academic papers

Connected Papers 是一个非常有用的文献可视化工具。它的主要功能包括:

  • 生成论文关系图:输入一篇核心论文后,它会生成与之相关的论文网络图。
  • 发现相关研究:通过图形化展示,可以轻松找到与你感兴趣主题相关的其他论文。
  • 追踪研究发展:可以看到某一研究领域的发展脉络和趋势。
  • 识别关键文献:帮助你快速定位某一领域的重要文献和核心作者。

这个工具对于文献综述、了解研究前沿、寻找新的研究方向都很有帮助。它通过可视化的方式,让文献检索和阅读变得更加直观和高效。

Sci-Hub 可以找到大量的免费的论文。

文献整理

文献要使用工具整理,我使用的是zotero,开源免费,更新到 7 之后更加美观好用了。可以尝试社区推荐的插件,基本上靠前的插件都是比较有用的。

Zotero 中文社区