软件工程 (Software Engineering) 是一门研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。

VIP内容

Everyone should enjoy CS if you have a good teacher to teach you a good course.

新冠肆虐,网课当道,CS爆火,这一系列的事件都让自学计算机成为了一种潮流。

随着欧美众多名校将质量极高的计算机课程全部开源,自学CS成了一件可操作性极强的事情。毫不夸张的说,只要你有毅力和兴趣,自学的成果完全不亚于你在国内任何一所大学受到的本科CS教育(当然,这里单指计算机专业领域,大学带给你的显然不止是专业知识)。

我很庆幸在自己大一的时候就选择了自学CS这条路,它让我爱上了计算机这门学科,也无比丰富了我的视野。

但同时,自学这条路也有很多困难和阻力:课程繁多不知如何选择,资料零散甚至残缺,作业难度不知深浅,课内任务还需要花时间应付······这些主客观因素叠加到一起,使得好课虽多,却只能在收藏夹里吃灰。

在北大信科的第四个年头,我想把这一路自学走来的经验和教训,把那些让我受益终身的课程记录下来,分享给大家,形成了这本CS自学指南,以期能给所有想自学计算机的朋友一点帮助。

我的目标是让一个刚刚接触计算机的小白,可以完全凭借这些开源社区的优质资源,少走弯路,在2-3年内成长为一个有扎实的数学功底和代码能力,经历过数十个千行代码量的Project的洗礼,掌握至少C/C++/Java/JS/Python/Go/Rust等主流语言,对算法、电路、体系、网络、操统、编译、人工智能、机器学习、计算机视觉、自然语言处理、强化学习、密码学、信息论、博弈论、数值分析、统计学、分布式、数据库、图形学、Web开发、云服务、超算等等方面均有所涉猎的全能程序员。此后,无论是选择科研还是就业,我相信你都会有相当的竞争力。

https://github.com/PKUFlyingPig/pku-cs-self-learning

成为VIP会员查看完整内容
0
48

最新内容

The field of software verification has produced a wide array of algorithmic techniques that can prove a variety of properties of a given program. It has been demonstrated that the performance of these techniques can vary up to 4 orders of magnitude on the same verification problem. Even for verification experts, it is difficult to decide which tool will perform best on a given problem. For general users, deciding the best tool for their verification problem is effectively impossible. In this work, we present Graves, a selection strategy based on graph neural networks (GNNs). Graves generates a graph representation of a program from which a GNN predicts a score for a verifier that indicates its performance on the program. We evaluate Graves on a set of 10 verification tools and over 8000 verification problems and find that it improves the state-of-the-art in verification algorithm selection by 11\%. We conjecture this is in part due to Graves' use of GNNs with attention mechanisms. Through a qualitative study on model interpretability, we find strong evidence that the Graves' GNN-based model learns to base its predictions on factors that relate to the unique features of the algorithmic techniques.

0
0
下载
预览

最新论文

The field of software verification has produced a wide array of algorithmic techniques that can prove a variety of properties of a given program. It has been demonstrated that the performance of these techniques can vary up to 4 orders of magnitude on the same verification problem. Even for verification experts, it is difficult to decide which tool will perform best on a given problem. For general users, deciding the best tool for their verification problem is effectively impossible. In this work, we present Graves, a selection strategy based on graph neural networks (GNNs). Graves generates a graph representation of a program from which a GNN predicts a score for a verifier that indicates its performance on the program. We evaluate Graves on a set of 10 verification tools and over 8000 verification problems and find that it improves the state-of-the-art in verification algorithm selection by 11\%. We conjecture this is in part due to Graves' use of GNNs with attention mechanisms. Through a qualitative study on model interpretability, we find strong evidence that the Graves' GNN-based model learns to base its predictions on factors that relate to the unique features of the algorithmic techniques.

0
0
下载
预览
Top
微信扫码咨询专知VIP会员