原文链接:Computer Science Courses that Don’t Exist, But Should
原文作者:James Hague
CSCI 2100:忘掉面向对象编程
思考如何创建、使用不属于任何对象的变量。学习“函数(functions)”,它跟方法(methods)很像但是更有用的多。前提是你已经学过一门使用了“抽象基类的课程”。
CSCI 3300:向经典软件学习
讨论并剖析具有划时代意义的软件产品,比如VisiCalc、AppleWorks、Robot Odyssey、Zork、和MacPaint等。学习的重点,在于用户界面,以及由硬件限制激发出的创造力。
CSCI 4020:用低效语言编写高效代码
对性能进行深度分析,用解释型的Python语言来写出能与传统的编译型C++匹敌的代码。而且代码还会更加健壮,写起来也很有意思。
CSCI 2170:用户体验之”命令行工具”
提高用户体验的原则也同样适用于命令行工具的设计,要专注于输出信息的相关性,可读性,简化。UNIX的“ls”命令就是值得好好学习的一个例子。
PSYC 4410(心理学高年级课程):程序员内心强迫症
能辨别和理解那些无关紧要,但是程序员偏偏会去较真的事情:代码格式、如何分类、类型系统,非要将项目分解成很多个。还包括接触到不熟悉的系统时下意识的批评的细节。
HN精彩评论
我能再加一个吗?“网络不像你想的那么简单:分布式系统生存指南”。作为一个在职业生涯中花了很多精力建设高性能网络,也和这个领域里地人公事了很长时间的一个程序员来说,我对现在从名校毕业的学生在这方面的知识之匮乏感到震惊。很多基本的东西,像是应用的无线传输,系统如何处理数据包,等待对应用的影响等等,对于一些程序员来说简直一窍不通。现在看来,网络连接的实质问题,确实被严重忽略了。
程序员分为两种:一种被训练成能在熟悉的环境中称职地编码;另一种则像是《黑客帝国》中选择了红色药丸的人——他们知道事物的本质。
再加一些:
在白板上写翻转二叉树
用COBOL实现Monads
如何正确地纠正网络上的评论
上一条中的槽点可能有哪些
对Twitter的多项式机器人算法有多糟糕的介绍
用Haskell学习函数式编程
上一门课的实际用途
亲爱的机算计学院:请不要再拿“算法导论”课来愚弄你们的学生了,这门课应该改为“组合算法导论”,因为这才是你们教的东西。你们完全忽视了“数字算法”,这是许多其他计算机学科分支的基础(计算机物理、计算机化学、计算机生物学等),同时这也是机器学习和数据科学毕业生薄弱之处。或者也可以保留“算法导论”的名字,但是教50%的算法和数据结构,50%的数字计算方法和科学计算。
“建立端对端软件解决方案”如何?让这门课贯穿所有软件开发流程(想法-设计-原型-公测-发布-迭代)。我好的朋友马上毕业了,可他对软件开发一无所知,根本不了解现在的市场需求。
“Debug”:严肃地讲,这是门完整、系统的课程,而且越早开设越好。这是其他学科/工程不可缺少的技能。
计算机科学和软件工程应该分成两门完全不同的学科。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。