计算机专业的学生必须掌握的五门课程 不能掌握他们就不应该获得学位
2014-11-15 15:49
375 查看
计算机专业概念有点大。就计算机科学与技术专业而言,以下这些是必修的:http://www.nowamagic.net/librarys/veda/detail/2192
1、计算机组成原理(包括先修课程“数字逻辑与数字系统”,简称“数电”):这是一门硬件基础课,学完后你能清楚的知道如何从用最简单的数字元件,像搭积木一样构成整个计算机系统,那就算及格了。
2、线性代数,概率论和离散数学:要知道,凡是能称之为“科学”的专业,就必须有一定的数学功底,否则难以称作“科学”。这三门课我觉得是本科时期最重要的三门数学课,比高等数学重要。如果你想在计算机科学的道路上走远点,那这三门可是必修的。
3、MIT开设的《Introduction To algorithm》,中文版叫《算法导论》:我觉得应该学习它而不是国内习惯开设的《数据结构》。数据结构仅仅是算法的一部分,国内的数据结构课程回避了很多本质的东西,仅仅是对一些常见的数据结构的罗列,学起来总有些不痛不痒的感觉。《Introduction To algorithm》虽然有些章节夹杂着很多很让人讨厌的“数学”,但却能从本质上带你领略这门十分必要而且有趣儿的课。
4、操作系统与编译原理:操作系统可以说是《算法导论》的实验课,最好能在学习期间自己实现一个小型的操作系统,或者操作系统各分系统的Demo。编译原理可能是普遍本科生觉得难的一门课,但是作为软件科学家,这是基础中的基础,学完之后所有的语言在你看来应该没有太大的区别,这么课应该是离散数学+算法导论的实验课。最好能在学习期间自己实现一个小型的编译器,语言最好是自创。
5、掌握一门常用的编程语言和编程技术:能了解你用过的所有的程序内部大致是怎样的,能用你熟悉的语言编写大部分的程序,至少不能是对任何一个程序满头雾水。
以上这些不难做到,我觉得是基础中的基础,我偏激的以为,不能掌握他们就不应该获得学位。
简而言之:
数学课 (概率,统计,微积分等等)
语言课(java,c++等)
数据结构和算法
计算机网络
操作系统和编译原理
其实只要算法和数学牛,可以吃遍硅谷大多数的IT公司。
Introduction to Algorithms 算法导论,所有的程序都需要算法作为基础,所以算法是不得不学的。
Introduction to Computer Science and Programming 整体的介绍了计算机,同时也让学生了解CS能干嘛,自己该干嘛。
Operating System Engineering 操作系统的重要性不言而喻,同时也介绍了编译器。
Network 网络编程,中国 大学的本科生们有多少能熟练于网络编程。当今又有多少程序不需要考虑到网络。
有时候问自己几个问题:
当你学完各种数学、原理、算法之后,你能用这些知识解决什么问题?
你能开发出什么应用或系统吗?你具备多强的开发能力?
是更多人对这个专业更感兴趣了,还是心生厌倦、恐惧、甚至放弃了?
大学毕业到现在,还有多少知识你还记着?有多少还在用?
其实能解决问题的课程才是最重要的。
1、计算机组成原理(包括先修课程“数字逻辑与数字系统”,简称“数电”):这是一门硬件基础课,学完后你能清楚的知道如何从用最简单的数字元件,像搭积木一样构成整个计算机系统,那就算及格了。
2、线性代数,概率论和离散数学:要知道,凡是能称之为“科学”的专业,就必须有一定的数学功底,否则难以称作“科学”。这三门课我觉得是本科时期最重要的三门数学课,比高等数学重要。如果你想在计算机科学的道路上走远点,那这三门可是必修的。
3、MIT开设的《Introduction To algorithm》,中文版叫《算法导论》:我觉得应该学习它而不是国内习惯开设的《数据结构》。数据结构仅仅是算法的一部分,国内的数据结构课程回避了很多本质的东西,仅仅是对一些常见的数据结构的罗列,学起来总有些不痛不痒的感觉。《Introduction To algorithm》虽然有些章节夹杂着很多很让人讨厌的“数学”,但却能从本质上带你领略这门十分必要而且有趣儿的课。
4、操作系统与编译原理:操作系统可以说是《算法导论》的实验课,最好能在学习期间自己实现一个小型的操作系统,或者操作系统各分系统的Demo。编译原理可能是普遍本科生觉得难的一门课,但是作为软件科学家,这是基础中的基础,学完之后所有的语言在你看来应该没有太大的区别,这么课应该是离散数学+算法导论的实验课。最好能在学习期间自己实现一个小型的编译器,语言最好是自创。
5、掌握一门常用的编程语言和编程技术:能了解你用过的所有的程序内部大致是怎样的,能用你熟悉的语言编写大部分的程序,至少不能是对任何一个程序满头雾水。
以上这些不难做到,我觉得是基础中的基础,我偏激的以为,不能掌握他们就不应该获得学位。
简而言之:
数学课 (概率,统计,微积分等等)
语言课(java,c++等)
数据结构和算法
计算机网络
操作系统和编译原理
其实只要算法和数学牛,可以吃遍硅谷大多数的IT公司。
具体书籍
Concrete Mathematics 具体数学,绝对是计算机科学的数学基础“之一”,国内的计算机科学跟不上国外的一大原因,我始终认为是数学上的差距。Introduction to Algorithms 算法导论,所有的程序都需要算法作为基础,所以算法是不得不学的。
Introduction to Computer Science and Programming 整体的介绍了计算机,同时也让学生了解CS能干嘛,自己该干嘛。
Operating System Engineering 操作系统的重要性不言而喻,同时也介绍了编译器。
Network 网络编程,中国 大学的本科生们有多少能熟练于网络编程。当今又有多少程序不需要考虑到网络。
有时候问自己几个问题:
当你学完各种数学、原理、算法之后,你能用这些知识解决什么问题?
你能开发出什么应用或系统吗?你具备多强的开发能力?
是更多人对这个专业更感兴趣了,还是心生厌倦、恐惧、甚至放弃了?
大学毕业到现在,还有多少知识你还记着?有多少还在用?
其实能解决问题的课程才是最重要的。
相关文章推荐
- 计算机专业的学生必须掌握的五门课程(转)
- 计算机专业的学生必须掌握的五门课程
- 计算机专业的学生必须掌握的五门课程
- 计算机专业的学生必须掌握的五门课程
- 计算机专业的学生必须掌握的五门课程
- 计算机专业的学生必须掌握的五门课程
- (要求使用指针方法)一个班有四名学生,五门课。(1)求第一门课的平均分;(2)找出有两门以上课不及格的学生,输出他们的学号、全部课程成绩和平均成绩;(3)找出平均成绩在90分以上或全部课程成绩均在85
- 计算机专业学生必须掌握的五门课
- 转自《软技能-代码之外的生存指南》--获得成功必须要有学位吗?
- 你们计算机专业的学生应该看看这篇文章
- 例 8.15 在例8.14基础上,查找有一门以上课程不及格的学生,输出他们的全部课程的成绩。
- 每一个班级中每一门课程获得最高分的学生的学号
- 转自《软技能-代码之外的生存指南》--获得成功必须要有学位吗?
- 程序员应该必须掌握的英语
- 计算机应用专业的学生应该掌握的IT技能
- 作为计算机专业学生,最应该学习的课程前五位是什么?【知乎】
- 查找有一门以上课程不及格的学生,输出他们的全部成绩
- 习题 8.15 有一个班4个学生,5门课程。1. 求第1门课程的平均分;2.找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;3.找出平均成绩在90分以上或全部课程成绩在85分以
- 大学必须掌握的软件基础课程